xref: /openbmc/linux/Documentation/devicetree/bindings/net/dsa/ar9331.txt (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
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 = <&eth1>;
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