1*c66ec88fSEmmanuel Vadot* Qualcomm Atheros QCA8xxx switch family 2*c66ec88fSEmmanuel Vadot 3*c66ec88fSEmmanuel VadotRequired properties: 4*c66ec88fSEmmanuel Vadot 5*c66ec88fSEmmanuel Vadot- compatible: should be one of: 6*c66ec88fSEmmanuel Vadot "qca,qca8334" 7*c66ec88fSEmmanuel Vadot "qca,qca8337" 8*c66ec88fSEmmanuel Vadot 9*c66ec88fSEmmanuel Vadot- #size-cells: must be 0 10*c66ec88fSEmmanuel Vadot- #address-cells: must be 1 11*c66ec88fSEmmanuel Vadot 12*c66ec88fSEmmanuel VadotOptional properties: 13*c66ec88fSEmmanuel Vadot 14*c66ec88fSEmmanuel Vadot- reset-gpios: GPIO to be used to reset the whole device 15*c66ec88fSEmmanuel Vadot 16*c66ec88fSEmmanuel VadotSubnodes: 17*c66ec88fSEmmanuel Vadot 18*c66ec88fSEmmanuel VadotThe integrated switch subnode should be specified according to the binding 19*c66ec88fSEmmanuel Vadotdescribed in dsa/dsa.txt. If the QCA8K switch is connect to a SoC's external 20*c66ec88fSEmmanuel Vadotmdio-bus each subnode describing a port needs to have a valid phandle 21*c66ec88fSEmmanuel Vadotreferencing the internal PHY it is connected to. This is because there's no 22*c66ec88fSEmmanuel VadotN:N mapping of port and PHY id. 23*c66ec88fSEmmanuel Vadot 24*c66ec88fSEmmanuel VadotDon't use mixed external and internal mdio-bus configurations, as this is 25*c66ec88fSEmmanuel Vadotnot supported by the hardware. 26*c66ec88fSEmmanuel Vadot 27*c66ec88fSEmmanuel VadotThe CPU port of this switch is always port 0. 28*c66ec88fSEmmanuel Vadot 29*c66ec88fSEmmanuel VadotA CPU port node has the following optional node: 30*c66ec88fSEmmanuel Vadot 31*c66ec88fSEmmanuel Vadot- fixed-link : Fixed-link subnode describing a link to a non-MDIO 32*c66ec88fSEmmanuel Vadot managed entity. See 33*c66ec88fSEmmanuel Vadot Documentation/devicetree/bindings/net/fixed-link.txt 34*c66ec88fSEmmanuel Vadot for details. 35*c66ec88fSEmmanuel Vadot 36*c66ec88fSEmmanuel VadotFor QCA8K the 'fixed-link' sub-node supports only the following properties: 37*c66ec88fSEmmanuel Vadot 38*c66ec88fSEmmanuel Vadot- 'speed' (integer, mandatory), to indicate the link speed. Accepted 39*c66ec88fSEmmanuel Vadot values are 10, 100 and 1000 40*c66ec88fSEmmanuel Vadot- 'full-duplex' (boolean, optional), to indicate that full duplex is 41*c66ec88fSEmmanuel Vadot used. When absent, half duplex is assumed. 42*c66ec88fSEmmanuel Vadot 43*c66ec88fSEmmanuel VadotExamples: 44*c66ec88fSEmmanuel Vadot 45*c66ec88fSEmmanuel Vadotfor the external mdio-bus configuration: 46*c66ec88fSEmmanuel Vadot 47*c66ec88fSEmmanuel Vadot &mdio0 { 48*c66ec88fSEmmanuel Vadot phy_port1: phy@0 { 49*c66ec88fSEmmanuel Vadot reg = <0>; 50*c66ec88fSEmmanuel Vadot }; 51*c66ec88fSEmmanuel Vadot 52*c66ec88fSEmmanuel Vadot phy_port2: phy@1 { 53*c66ec88fSEmmanuel Vadot reg = <1>; 54*c66ec88fSEmmanuel Vadot }; 55*c66ec88fSEmmanuel Vadot 56*c66ec88fSEmmanuel Vadot phy_port3: phy@2 { 57*c66ec88fSEmmanuel Vadot reg = <2>; 58*c66ec88fSEmmanuel Vadot }; 59*c66ec88fSEmmanuel Vadot 60*c66ec88fSEmmanuel Vadot phy_port4: phy@3 { 61*c66ec88fSEmmanuel Vadot reg = <3>; 62*c66ec88fSEmmanuel Vadot }; 63*c66ec88fSEmmanuel Vadot 64*c66ec88fSEmmanuel Vadot phy_port5: phy@4 { 65*c66ec88fSEmmanuel Vadot reg = <4>; 66*c66ec88fSEmmanuel Vadot }; 67*c66ec88fSEmmanuel Vadot 68*c66ec88fSEmmanuel Vadot switch@10 { 69*c66ec88fSEmmanuel Vadot compatible = "qca,qca8337"; 70*c66ec88fSEmmanuel Vadot #address-cells = <1>; 71*c66ec88fSEmmanuel Vadot #size-cells = <0>; 72*c66ec88fSEmmanuel Vadot 73*c66ec88fSEmmanuel Vadot reset-gpios = <&gpio 42 GPIO_ACTIVE_LOW>; 74*c66ec88fSEmmanuel Vadot reg = <0x10>; 75*c66ec88fSEmmanuel Vadot 76*c66ec88fSEmmanuel Vadot ports { 77*c66ec88fSEmmanuel Vadot #address-cells = <1>; 78*c66ec88fSEmmanuel Vadot #size-cells = <0>; 79*c66ec88fSEmmanuel Vadot port@0 { 80*c66ec88fSEmmanuel Vadot reg = <0>; 81*c66ec88fSEmmanuel Vadot label = "cpu"; 82*c66ec88fSEmmanuel Vadot ethernet = <&gmac1>; 83*c66ec88fSEmmanuel Vadot phy-mode = "rgmii"; 84*c66ec88fSEmmanuel Vadot fixed-link { 85*c66ec88fSEmmanuel Vadot speed = 1000; 86*c66ec88fSEmmanuel Vadot full-duplex; 87*c66ec88fSEmmanuel Vadot }; 88*c66ec88fSEmmanuel Vadot }; 89*c66ec88fSEmmanuel Vadot 90*c66ec88fSEmmanuel Vadot port@1 { 91*c66ec88fSEmmanuel Vadot reg = <1>; 92*c66ec88fSEmmanuel Vadot label = "lan1"; 93*c66ec88fSEmmanuel Vadot phy-handle = <&phy_port1>; 94*c66ec88fSEmmanuel Vadot }; 95*c66ec88fSEmmanuel Vadot 96*c66ec88fSEmmanuel Vadot port@2 { 97*c66ec88fSEmmanuel Vadot reg = <2>; 98*c66ec88fSEmmanuel Vadot label = "lan2"; 99*c66ec88fSEmmanuel Vadot phy-handle = <&phy_port2>; 100*c66ec88fSEmmanuel Vadot }; 101*c66ec88fSEmmanuel Vadot 102*c66ec88fSEmmanuel Vadot port@3 { 103*c66ec88fSEmmanuel Vadot reg = <3>; 104*c66ec88fSEmmanuel Vadot label = "lan3"; 105*c66ec88fSEmmanuel Vadot phy-handle = <&phy_port3>; 106*c66ec88fSEmmanuel Vadot }; 107*c66ec88fSEmmanuel Vadot 108*c66ec88fSEmmanuel Vadot port@4 { 109*c66ec88fSEmmanuel Vadot reg = <4>; 110*c66ec88fSEmmanuel Vadot label = "lan4"; 111*c66ec88fSEmmanuel Vadot phy-handle = <&phy_port4>; 112*c66ec88fSEmmanuel Vadot }; 113*c66ec88fSEmmanuel Vadot 114*c66ec88fSEmmanuel Vadot port@5 { 115*c66ec88fSEmmanuel Vadot reg = <5>; 116*c66ec88fSEmmanuel Vadot label = "wan"; 117*c66ec88fSEmmanuel Vadot phy-handle = <&phy_port5>; 118*c66ec88fSEmmanuel Vadot }; 119*c66ec88fSEmmanuel Vadot }; 120*c66ec88fSEmmanuel Vadot }; 121*c66ec88fSEmmanuel Vadot }; 122*c66ec88fSEmmanuel Vadot 123*c66ec88fSEmmanuel Vadotfor the internal master mdio-bus configuration: 124*c66ec88fSEmmanuel Vadot 125*c66ec88fSEmmanuel Vadot &mdio0 { 126*c66ec88fSEmmanuel Vadot switch@10 { 127*c66ec88fSEmmanuel Vadot compatible = "qca,qca8337"; 128*c66ec88fSEmmanuel Vadot #address-cells = <1>; 129*c66ec88fSEmmanuel Vadot #size-cells = <0>; 130*c66ec88fSEmmanuel Vadot 131*c66ec88fSEmmanuel Vadot reset-gpios = <&gpio 42 GPIO_ACTIVE_LOW>; 132*c66ec88fSEmmanuel Vadot reg = <0x10>; 133*c66ec88fSEmmanuel Vadot 134*c66ec88fSEmmanuel Vadot ports { 135*c66ec88fSEmmanuel Vadot #address-cells = <1>; 136*c66ec88fSEmmanuel Vadot #size-cells = <0>; 137*c66ec88fSEmmanuel Vadot 138*c66ec88fSEmmanuel Vadot port@0 { 139*c66ec88fSEmmanuel Vadot reg = <0>; 140*c66ec88fSEmmanuel Vadot label = "cpu"; 141*c66ec88fSEmmanuel Vadot ethernet = <&gmac1>; 142*c66ec88fSEmmanuel Vadot phy-mode = "rgmii"; 143*c66ec88fSEmmanuel Vadot fixed-link { 144*c66ec88fSEmmanuel Vadot speed = 1000; 145*c66ec88fSEmmanuel Vadot full-duplex; 146*c66ec88fSEmmanuel Vadot }; 147*c66ec88fSEmmanuel Vadot }; 148*c66ec88fSEmmanuel Vadot 149*c66ec88fSEmmanuel Vadot port@1 { 150*c66ec88fSEmmanuel Vadot reg = <1>; 151*c66ec88fSEmmanuel Vadot label = "lan1"; 152*c66ec88fSEmmanuel Vadot }; 153*c66ec88fSEmmanuel Vadot 154*c66ec88fSEmmanuel Vadot port@2 { 155*c66ec88fSEmmanuel Vadot reg = <2>; 156*c66ec88fSEmmanuel Vadot label = "lan2"; 157*c66ec88fSEmmanuel Vadot }; 158*c66ec88fSEmmanuel Vadot 159*c66ec88fSEmmanuel Vadot port@3 { 160*c66ec88fSEmmanuel Vadot reg = <3>; 161*c66ec88fSEmmanuel Vadot label = "lan3"; 162*c66ec88fSEmmanuel Vadot }; 163*c66ec88fSEmmanuel Vadot 164*c66ec88fSEmmanuel Vadot port@4 { 165*c66ec88fSEmmanuel Vadot reg = <4>; 166*c66ec88fSEmmanuel Vadot label = "lan4"; 167*c66ec88fSEmmanuel Vadot }; 168*c66ec88fSEmmanuel Vadot 169*c66ec88fSEmmanuel Vadot port@5 { 170*c66ec88fSEmmanuel Vadot reg = <5>; 171*c66ec88fSEmmanuel Vadot label = "wan"; 172*c66ec88fSEmmanuel Vadot }; 173*c66ec88fSEmmanuel Vadot }; 174*c66ec88fSEmmanuel Vadot }; 175*c66ec88fSEmmanuel Vadot }; 176