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