1*a0f29a07SLinus Walleij# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*a0f29a07SLinus Walleij%YAML 1.2 3*a0f29a07SLinus Walleij--- 4*a0f29a07SLinus Walleij$id: http://devicetree.org/schemas/net/dsa/micrel,ks8995.yaml# 5*a0f29a07SLinus Walleij$schema: http://devicetree.org/meta-schemas/core.yaml# 6*a0f29a07SLinus Walleij 7*a0f29a07SLinus Walleijtitle: Micrel KS8995 Family DSA Switches 8*a0f29a07SLinus Walleij 9*a0f29a07SLinus Walleijmaintainers: 10*a0f29a07SLinus Walleij - Linus Walleij <linus.walleij@linaro.org> 11*a0f29a07SLinus Walleij 12*a0f29a07SLinus Walleijdescription: 13*a0f29a07SLinus Walleij The Micrel KS8995 DSA Switches are 100 Mbit switches that were produced in 14*a0f29a07SLinus Walleij the early-to-mid 2000s. The chip features a CPU port and four outgoing ports, 15*a0f29a07SLinus Walleij each with an internal PHY. The chip itself is managed over SPI, but all the 16*a0f29a07SLinus Walleij PHYs need to be accessed from an external MDIO channel. 17*a0f29a07SLinus Walleij 18*a0f29a07SLinus Walleij Further, a fifth PHY is available and can be used separately from the switch 19*a0f29a07SLinus Walleij fabric, connected to an external MII interface name MII-P5. This is 20*a0f29a07SLinus Walleij unrelated from the CPU-facing port 5 which is used for DSA MII traffic. 21*a0f29a07SLinus Walleij 22*a0f29a07SLinus Walleijproperties: 23*a0f29a07SLinus Walleij compatible: 24*a0f29a07SLinus Walleij enum: 25*a0f29a07SLinus Walleij - micrel,ks8995 26*a0f29a07SLinus Walleij - micrel,ksz8795 27*a0f29a07SLinus Walleij - micrel,ksz8864 28*a0f29a07SLinus Walleij 29*a0f29a07SLinus Walleij reg: 30*a0f29a07SLinus Walleij maxItems: 1 31*a0f29a07SLinus Walleij 32*a0f29a07SLinus Walleij reset-gpios: 33*a0f29a07SLinus Walleij description: GPIO to be used to reset the whole device 34*a0f29a07SLinus Walleij maxItems: 1 35*a0f29a07SLinus Walleij 36*a0f29a07SLinus WalleijallOf: 37*a0f29a07SLinus Walleij - $ref: dsa.yaml#/$defs/ethernet-ports 38*a0f29a07SLinus Walleij - $ref: /schemas/spi/spi-peripheral-props.yaml# 39*a0f29a07SLinus Walleij 40*a0f29a07SLinus Walleijrequired: 41*a0f29a07SLinus Walleij - compatible 42*a0f29a07SLinus Walleij - reg 43*a0f29a07SLinus Walleij 44*a0f29a07SLinus WalleijunevaluatedProperties: false 45*a0f29a07SLinus Walleij 46*a0f29a07SLinus Walleijexamples: 47*a0f29a07SLinus Walleij - | 48*a0f29a07SLinus Walleij #include <dt-bindings/gpio/gpio.h> 49*a0f29a07SLinus Walleij 50*a0f29a07SLinus Walleij spi { 51*a0f29a07SLinus Walleij #address-cells = <1>; 52*a0f29a07SLinus Walleij #size-cells = <0>; 53*a0f29a07SLinus Walleij 54*a0f29a07SLinus Walleij ethernet-switch@0 { 55*a0f29a07SLinus Walleij compatible = "micrel,ks8995"; 56*a0f29a07SLinus Walleij reg = <0>; 57*a0f29a07SLinus Walleij spi-max-frequency = <25000000>; 58*a0f29a07SLinus Walleij 59*a0f29a07SLinus Walleij ethernet-ports { 60*a0f29a07SLinus Walleij #address-cells = <1>; 61*a0f29a07SLinus Walleij #size-cells = <0>; 62*a0f29a07SLinus Walleij 63*a0f29a07SLinus Walleij ethernet-port@0 { 64*a0f29a07SLinus Walleij reg = <0>; 65*a0f29a07SLinus Walleij label = "lan1"; 66*a0f29a07SLinus Walleij }; 67*a0f29a07SLinus Walleij ethernet-port@1 { 68*a0f29a07SLinus Walleij reg = <1>; 69*a0f29a07SLinus Walleij label = "lan2"; 70*a0f29a07SLinus Walleij }; 71*a0f29a07SLinus Walleij ethernet-port@2 { 72*a0f29a07SLinus Walleij reg = <2>; 73*a0f29a07SLinus Walleij label = "lan3"; 74*a0f29a07SLinus Walleij }; 75*a0f29a07SLinus Walleij ethernet-port@3 { 76*a0f29a07SLinus Walleij reg = <3>; 77*a0f29a07SLinus Walleij label = "lan4"; 78*a0f29a07SLinus Walleij }; 79*a0f29a07SLinus Walleij ethernet-port@4 { 80*a0f29a07SLinus Walleij reg = <4>; 81*a0f29a07SLinus Walleij ethernet = <&mac2>; 82*a0f29a07SLinus Walleij phy-mode = "mii"; 83*a0f29a07SLinus Walleij fixed-link { 84*a0f29a07SLinus Walleij speed = <100>; 85*a0f29a07SLinus Walleij full-duplex; 86*a0f29a07SLinus Walleij }; 87*a0f29a07SLinus Walleij }; 88*a0f29a07SLinus Walleij }; 89*a0f29a07SLinus Walleij }; 90*a0f29a07SLinus Walleij }; 91*a0f29a07SLinus Walleij 92*a0f29a07SLinus Walleij soc { 93*a0f29a07SLinus Walleij #address-cells = <1>; 94*a0f29a07SLinus Walleij #size-cells = <1>; 95*a0f29a07SLinus Walleij 96*a0f29a07SLinus Walleij /* The WAN port connected on MII-P5 */ 97*a0f29a07SLinus Walleij ethernet-port@1000 { 98*a0f29a07SLinus Walleij reg = <0x00001000 0x1000>; 99*a0f29a07SLinus Walleij label = "wan"; 100*a0f29a07SLinus Walleij phy-mode = "mii"; 101*a0f29a07SLinus Walleij phy-handle = <&phy5>; 102*a0f29a07SLinus Walleij }; 103*a0f29a07SLinus Walleij 104*a0f29a07SLinus Walleij mac2: ethernet-port@2000 { 105*a0f29a07SLinus Walleij reg = <0x00002000 0x1000>; 106*a0f29a07SLinus Walleij phy-mode = "mii"; 107*a0f29a07SLinus Walleij fixed-link { 108*a0f29a07SLinus Walleij speed = <100>; 109*a0f29a07SLinus Walleij full-duplex; 110*a0f29a07SLinus Walleij }; 111*a0f29a07SLinus Walleij }; 112*a0f29a07SLinus Walleij }; 113*a0f29a07SLinus Walleij 114*a0f29a07SLinus Walleij mdio { 115*a0f29a07SLinus Walleij #address-cells = <1>; 116*a0f29a07SLinus Walleij #size-cells = <0>; 117*a0f29a07SLinus Walleij 118*a0f29a07SLinus Walleij /* LAN PHYs 1-4 accessible over external MDIO */ 119*a0f29a07SLinus Walleij phy1: ethernet-phy@1 { 120*a0f29a07SLinus Walleij reg = <1>; 121*a0f29a07SLinus Walleij }; 122*a0f29a07SLinus Walleij phy2: ethernet-phy@2 { 123*a0f29a07SLinus Walleij reg = <2>; 124*a0f29a07SLinus Walleij }; 125*a0f29a07SLinus Walleij phy3: ethernet-phy@3 { 126*a0f29a07SLinus Walleij reg = <3>; 127*a0f29a07SLinus Walleij }; 128*a0f29a07SLinus Walleij phy4: ethernet-phy@4 { 129*a0f29a07SLinus Walleij reg = <4>; 130*a0f29a07SLinus Walleij }; 131*a0f29a07SLinus Walleij /* WAN PHY accessible over external MDIO */ 132*a0f29a07SLinus Walleij phy5: ethernet-phy@5 { 133*a0f29a07SLinus Walleij reg = <5>; 134*a0f29a07SLinus Walleij }; 135*a0f29a07SLinus Walleij }; 136