1*dba261f3SOleksij RempelAtheros AR9331 built-in switch 2*dba261f3SOleksij Rempel============================= 3*dba261f3SOleksij Rempel 4*dba261f3SOleksij RempelIt is a switch built-in to Atheros AR9331 WiSoC and addressable over internal 5*dba261f3SOleksij RempelMDIO bus. All PHYs are built-in as well. 6*dba261f3SOleksij Rempel 7*dba261f3SOleksij RempelRequired properties: 8*dba261f3SOleksij Rempel 9*dba261f3SOleksij Rempel - compatible: should be: "qca,ar9331-switch" 10*dba261f3SOleksij Rempel - reg: Address on the MII bus for the switch. 11*dba261f3SOleksij Rempel - resets : Must contain an entry for each entry in reset-names. 12*dba261f3SOleksij Rempel - reset-names : Must include the following entries: "switch" 13*dba261f3SOleksij Rempel - interrupt-parent: Phandle to the parent interrupt controller 14*dba261f3SOleksij Rempel - interrupts: IRQ line for the switch 15*dba261f3SOleksij Rempel - interrupt-controller: Indicates the switch is itself an interrupt 16*dba261f3SOleksij Rempel controller. This is used for the PHY interrupts. 17*dba261f3SOleksij Rempel - #interrupt-cells: must be 1 18*dba261f3SOleksij Rempel - mdio: Container of PHY and devices on the switches MDIO bus. 19*dba261f3SOleksij Rempel 20*dba261f3SOleksij RempelSee Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of additional 21*dba261f3SOleksij Rempelrequired and optional properties. 22*dba261f3SOleksij RempelExamples: 23*dba261f3SOleksij Rempel 24*dba261f3SOleksij Rempeleth0: ethernet@19000000 { 25*dba261f3SOleksij Rempel compatible = "qca,ar9330-eth"; 26*dba261f3SOleksij Rempel reg = <0x19000000 0x200>; 27*dba261f3SOleksij Rempel interrupts = <4>; 28*dba261f3SOleksij Rempel 29*dba261f3SOleksij Rempel resets = <&rst 9>, <&rst 22>; 30*dba261f3SOleksij Rempel reset-names = "mac", "mdio"; 31*dba261f3SOleksij Rempel clocks = <&pll ATH79_CLK_AHB>, <&pll ATH79_CLK_AHB>; 32*dba261f3SOleksij Rempel clock-names = "eth", "mdio"; 33*dba261f3SOleksij Rempel 34*dba261f3SOleksij Rempel phy-mode = "mii"; 35*dba261f3SOleksij Rempel phy-handle = <&phy_port4>; 36*dba261f3SOleksij Rempel}; 37*dba261f3SOleksij Rempel 38*dba261f3SOleksij Rempeleth1: ethernet@1a000000 { 39*dba261f3SOleksij Rempel compatible = "qca,ar9330-eth"; 40*dba261f3SOleksij Rempel reg = <0x1a000000 0x200>; 41*dba261f3SOleksij Rempel interrupts = <5>; 42*dba261f3SOleksij Rempel resets = <&rst 13>, <&rst 23>; 43*dba261f3SOleksij Rempel reset-names = "mac", "mdio"; 44*dba261f3SOleksij Rempel clocks = <&pll ATH79_CLK_AHB>, <&pll ATH79_CLK_AHB>; 45*dba261f3SOleksij Rempel clock-names = "eth", "mdio"; 46*dba261f3SOleksij Rempel 47*dba261f3SOleksij Rempel phy-mode = "gmii"; 48*dba261f3SOleksij Rempel 49*dba261f3SOleksij Rempel fixed-link { 50*dba261f3SOleksij Rempel speed = <1000>; 51*dba261f3SOleksij Rempel full-duplex; 52*dba261f3SOleksij Rempel }; 53*dba261f3SOleksij Rempel 54*dba261f3SOleksij Rempel mdio { 55*dba261f3SOleksij Rempel #address-cells = <1>; 56*dba261f3SOleksij Rempel #size-cells = <0>; 57*dba261f3SOleksij Rempel 58*dba261f3SOleksij Rempel switch10: switch@10 { 59*dba261f3SOleksij Rempel #address-cells = <1>; 60*dba261f3SOleksij Rempel #size-cells = <0>; 61*dba261f3SOleksij Rempel 62*dba261f3SOleksij Rempel compatible = "qca,ar9331-switch"; 63*dba261f3SOleksij Rempel reg = <0x10>; 64*dba261f3SOleksij Rempel resets = <&rst 8>; 65*dba261f3SOleksij Rempel reset-names = "switch"; 66*dba261f3SOleksij Rempel 67*dba261f3SOleksij Rempel interrupt-parent = <&miscintc>; 68*dba261f3SOleksij Rempel interrupts = <12>; 69*dba261f3SOleksij Rempel 70*dba261f3SOleksij Rempel interrupt-controller; 71*dba261f3SOleksij Rempel #interrupt-cells = <1>; 72*dba261f3SOleksij Rempel 73*dba261f3SOleksij Rempel ports { 74*dba261f3SOleksij Rempel #address-cells = <1>; 75*dba261f3SOleksij Rempel #size-cells = <0>; 76*dba261f3SOleksij Rempel 77*dba261f3SOleksij Rempel switch_port0: port@0 { 78*dba261f3SOleksij Rempel reg = <0x0>; 79*dba261f3SOleksij Rempel ethernet = <ð1>; 80*dba261f3SOleksij Rempel 81*dba261f3SOleksij Rempel phy-mode = "gmii"; 82*dba261f3SOleksij Rempel 83*dba261f3SOleksij Rempel fixed-link { 84*dba261f3SOleksij Rempel speed = <1000>; 85*dba261f3SOleksij Rempel full-duplex; 86*dba261f3SOleksij Rempel }; 87*dba261f3SOleksij Rempel }; 88*dba261f3SOleksij Rempel 89*dba261f3SOleksij Rempel switch_port1: port@1 { 90*dba261f3SOleksij Rempel reg = <0x1>; 91*dba261f3SOleksij Rempel phy-handle = <&phy_port0>; 92*dba261f3SOleksij Rempel phy-mode = "internal"; 93*dba261f3SOleksij Rempel }; 94*dba261f3SOleksij Rempel 95*dba261f3SOleksij Rempel switch_port2: port@2 { 96*dba261f3SOleksij Rempel reg = <0x2>; 97*dba261f3SOleksij Rempel phy-handle = <&phy_port1>; 98*dba261f3SOleksij Rempel phy-mode = "internal"; 99*dba261f3SOleksij Rempel }; 100*dba261f3SOleksij Rempel 101*dba261f3SOleksij Rempel switch_port3: port@3 { 102*dba261f3SOleksij Rempel reg = <0x3>; 103*dba261f3SOleksij Rempel phy-handle = <&phy_port2>; 104*dba261f3SOleksij Rempel phy-mode = "internal"; 105*dba261f3SOleksij Rempel }; 106*dba261f3SOleksij Rempel 107*dba261f3SOleksij Rempel switch_port4: port@4 { 108*dba261f3SOleksij Rempel reg = <0x4>; 109*dba261f3SOleksij Rempel phy-handle = <&phy_port3>; 110*dba261f3SOleksij Rempel phy-mode = "internal"; 111*dba261f3SOleksij Rempel }; 112*dba261f3SOleksij Rempel }; 113*dba261f3SOleksij Rempel 114*dba261f3SOleksij Rempel mdio { 115*dba261f3SOleksij Rempel #address-cells = <1>; 116*dba261f3SOleksij Rempel #size-cells = <0>; 117*dba261f3SOleksij Rempel 118*dba261f3SOleksij Rempel interrupt-parent = <&switch10>; 119*dba261f3SOleksij Rempel 120*dba261f3SOleksij Rempel phy_port0: phy@0 { 121*dba261f3SOleksij Rempel reg = <0x0>; 122*dba261f3SOleksij Rempel interrupts = <0>; 123*dba261f3SOleksij Rempel }; 124*dba261f3SOleksij Rempel 125*dba261f3SOleksij Rempel phy_port1: phy@1 { 126*dba261f3SOleksij Rempel reg = <0x1>; 127*dba261f3SOleksij Rempel interrupts = <0>; 128*dba261f3SOleksij Rempel }; 129*dba261f3SOleksij Rempel 130*dba261f3SOleksij Rempel phy_port2: phy@2 { 131*dba261f3SOleksij Rempel reg = <0x2>; 132*dba261f3SOleksij Rempel interrupts = <0>; 133*dba261f3SOleksij Rempel }; 134*dba261f3SOleksij Rempel 135*dba261f3SOleksij Rempel phy_port3: phy@3 { 136*dba261f3SOleksij Rempel reg = <0x3>; 137*dba261f3SOleksij Rempel interrupts = <0>; 138*dba261f3SOleksij Rempel }; 139*dba261f3SOleksij Rempel 140*dba261f3SOleksij Rempel phy_port4: phy@4 { 141*dba261f3SOleksij Rempel reg = <0x4>; 142*dba261f3SOleksij Rempel interrupts = <0>; 143*dba261f3SOleksij Rempel }; 144*dba261f3SOleksij Rempel }; 145*dba261f3SOleksij Rempel }; 146*dba261f3SOleksij Rempel }; 147*dba261f3SOleksij Rempel}; 148