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