1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Copyright (C) 2017 Rafał Miłecki <rafal@milecki.pl>
4*724ba675SRob Herring */
5*724ba675SRob Herring
6*724ba675SRob Herring/dts-v1/;
7*724ba675SRob Herring
8*724ba675SRob Herring#include "bcm47094.dtsi"
9*724ba675SRob Herring#include "bcm5301x-nand-cs0-bch8.dtsi"
10*724ba675SRob Herring
11*724ba675SRob Herring/ {
12*724ba675SRob Herring	compatible = "linksys,panamera", "brcm,bcm47094", "brcm,bcm4708";
13*724ba675SRob Herring	model = "Linksys EA9500";
14*724ba675SRob Herring
15*724ba675SRob Herring	chosen {
16*724ba675SRob Herring		bootargs = "console=ttyS0,115200";
17*724ba675SRob Herring	};
18*724ba675SRob Herring
19*724ba675SRob Herring	memory@0 {
20*724ba675SRob Herring		device_type = "memory";
21*724ba675SRob Herring		reg = <0x00000000 0x08000000>,
22*724ba675SRob Herring		      <0x88000000 0x08000000>;
23*724ba675SRob Herring	};
24*724ba675SRob Herring
25*724ba675SRob Herring	nvram@1c080000 {
26*724ba675SRob Herring		compatible = "brcm,nvram";
27*724ba675SRob Herring		reg = <0x1c080000 0x100000>;
28*724ba675SRob Herring	};
29*724ba675SRob Herring
30*724ba675SRob Herring	gpio-keys {
31*724ba675SRob Herring		compatible = "gpio-keys";
32*724ba675SRob Herring
33*724ba675SRob Herring		button-wps {
34*724ba675SRob Herring			label = "WPS";
35*724ba675SRob Herring			linux,code = <KEY_WPS_BUTTON>;
36*724ba675SRob Herring			gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
37*724ba675SRob Herring		};
38*724ba675SRob Herring
39*724ba675SRob Herring		button-rfkill {
40*724ba675SRob Herring				label = "WiFi";
41*724ba675SRob Herring				linux,code = <KEY_RFKILL>;
42*724ba675SRob Herring				gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>;
43*724ba675SRob Herring		};
44*724ba675SRob Herring
45*724ba675SRob Herring		button-reset {
46*724ba675SRob Herring				label = "Reset";
47*724ba675SRob Herring				linux,code = <KEY_RESTART>;
48*724ba675SRob Herring				gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
49*724ba675SRob Herring		};
50*724ba675SRob Herring	};
51*724ba675SRob Herring
52*724ba675SRob Herring	leds {
53*724ba675SRob Herring		compatible = "gpio-leds";
54*724ba675SRob Herring
55*724ba675SRob Herring		led-wps {
56*724ba675SRob Herring			label = "bcm53xx:white:wps";
57*724ba675SRob Herring			gpios = <&chipcommon 22 GPIO_ACTIVE_LOW>;
58*724ba675SRob Herring		};
59*724ba675SRob Herring
60*724ba675SRob Herring		led-usb2 {
61*724ba675SRob Herring			label = "bcm53xx:green:usb2";
62*724ba675SRob Herring			gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
63*724ba675SRob Herring			trigger-sources = <&ohci_port2>, <&ehci_port2>;
64*724ba675SRob Herring			linux,default-trigger = "usbport";
65*724ba675SRob Herring		};
66*724ba675SRob Herring
67*724ba675SRob Herring		led-usb3 {
68*724ba675SRob Herring			label = "bcm53xx:green:usb3";
69*724ba675SRob Herring			gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
70*724ba675SRob Herring			trigger-sources = <&ohci_port1>, <&ehci_port1>,
71*724ba675SRob Herring					  <&xhci_port1>;
72*724ba675SRob Herring			linux,default-trigger = "usbport";
73*724ba675SRob Herring		};
74*724ba675SRob Herring
75*724ba675SRob Herring		led-power {
76*724ba675SRob Herring			label = "bcm53xx:white:power";
77*724ba675SRob Herring			gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
78*724ba675SRob Herring			linux,default-trigger = "default-on";
79*724ba675SRob Herring		};
80*724ba675SRob Herring
81*724ba675SRob Herring		led-wifi-disabled {
82*724ba675SRob Herring			label = "bcm53xx:amber:wifi-disabled";
83*724ba675SRob Herring			gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
84*724ba675SRob Herring		};
85*724ba675SRob Herring
86*724ba675SRob Herring		led-wifi-enabled {
87*724ba675SRob Herring			label = "bcm53xx:white:wifi-enabled";
88*724ba675SRob Herring			gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
89*724ba675SRob Herring		};
90*724ba675SRob Herring
91*724ba675SRob Herring		led-bluebar1 {
92*724ba675SRob Herring			label = "bcm53xx:white:bluebar1";
93*724ba675SRob Herring			gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
94*724ba675SRob Herring		};
95*724ba675SRob Herring
96*724ba675SRob Herring		led-bluebar2 {
97*724ba675SRob Herring			label = "bcm53xx:white:bluebar2";
98*724ba675SRob Herring			gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
99*724ba675SRob Herring		};
100*724ba675SRob Herring
101*724ba675SRob Herring		led-bluebar3 {
102*724ba675SRob Herring			label = "bcm53xx:white:bluebar3";
103*724ba675SRob Herring			gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
104*724ba675SRob Herring		};
105*724ba675SRob Herring
106*724ba675SRob Herring		led-bluebar4 {
107*724ba675SRob Herring			label = "bcm53xx:white:bluebar4";
108*724ba675SRob Herring			gpios = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
109*724ba675SRob Herring		};
110*724ba675SRob Herring
111*724ba675SRob Herring		led-bluebar5 {
112*724ba675SRob Herring			label = "bcm53xx:white:bluebar5";
113*724ba675SRob Herring			gpios = <&chipcommon 19 GPIO_ACTIVE_HIGH>;
114*724ba675SRob Herring		};
115*724ba675SRob Herring
116*724ba675SRob Herring		led-bluebar6 {
117*724ba675SRob Herring			label = "bcm53xx:white:bluebar6";
118*724ba675SRob Herring			gpios = <&chipcommon 20 GPIO_ACTIVE_HIGH>;
119*724ba675SRob Herring		};
120*724ba675SRob Herring
121*724ba675SRob Herring		led-bluebar7 {
122*724ba675SRob Herring			label = "bcm53xx:white:bluebar7";
123*724ba675SRob Herring			gpios = <&chipcommon 21 GPIO_ACTIVE_HIGH>;
124*724ba675SRob Herring		};
125*724ba675SRob Herring
126*724ba675SRob Herring		led-bluebar8 {
127*724ba675SRob Herring			label = "bcm53xx:white:bluebar8";
128*724ba675SRob Herring			gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
129*724ba675SRob Herring		};
130*724ba675SRob Herring	};
131*724ba675SRob Herring
132*724ba675SRob Herring	mdio-mux@18003000 {
133*724ba675SRob Herring
134*724ba675SRob Herring		/* BIT(9) = 1 => external mdio */
135*724ba675SRob Herring		mdio@200 {
136*724ba675SRob Herring			reg = <0x200>;
137*724ba675SRob Herring			#address-cells = <1>;
138*724ba675SRob Herring			#size-cells = <0>;
139*724ba675SRob Herring
140*724ba675SRob Herring			switch@0  {
141*724ba675SRob Herring				compatible = "brcm,bcm53125";
142*724ba675SRob Herring				#address-cells = <1>;
143*724ba675SRob Herring				#size-cells = <0>;
144*724ba675SRob Herring				reset-gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
145*724ba675SRob Herring				reset-names = "robo_reset";
146*724ba675SRob Herring				reg = <0>;
147*724ba675SRob Herring				dsa,member = <1 0>;
148*724ba675SRob Herring				pinctrl-names = "default";
149*724ba675SRob Herring				pinctrl-0 = <&pinmux_mdio>;
150*724ba675SRob Herring
151*724ba675SRob Herring				ports {
152*724ba675SRob Herring					#address-cells = <1>;
153*724ba675SRob Herring					#size-cells = <0>;
154*724ba675SRob Herring
155*724ba675SRob Herring					port@0 {
156*724ba675SRob Herring						reg = <0>;
157*724ba675SRob Herring						label = "lan1";
158*724ba675SRob Herring					};
159*724ba675SRob Herring
160*724ba675SRob Herring					port@1 {
161*724ba675SRob Herring						reg = <1>;
162*724ba675SRob Herring						label = "lan5";
163*724ba675SRob Herring					};
164*724ba675SRob Herring
165*724ba675SRob Herring					port@2 {
166*724ba675SRob Herring						reg = <2>;
167*724ba675SRob Herring						label = "lan2";
168*724ba675SRob Herring					};
169*724ba675SRob Herring
170*724ba675SRob Herring					port@3 {
171*724ba675SRob Herring						reg = <3>;
172*724ba675SRob Herring						label = "lan6";
173*724ba675SRob Herring					};
174*724ba675SRob Herring
175*724ba675SRob Herring					port@4 {
176*724ba675SRob Herring						reg = <4>;
177*724ba675SRob Herring						label = "lan3";
178*724ba675SRob Herring					};
179*724ba675SRob Herring
180*724ba675SRob Herring					sw1_p8: port@8 {
181*724ba675SRob Herring						reg = <8>;
182*724ba675SRob Herring						ethernet = <&sw0_p0>;
183*724ba675SRob Herring						label = "cpu";
184*724ba675SRob Herring
185*724ba675SRob Herring						fixed-link {
186*724ba675SRob Herring							speed = <1000>;
187*724ba675SRob Herring							full-duplex;
188*724ba675SRob Herring						};
189*724ba675SRob Herring					};
190*724ba675SRob Herring				};
191*724ba675SRob Herring			};
192*724ba675SRob Herring		};
193*724ba675SRob Herring	};
194*724ba675SRob Herring};
195*724ba675SRob Herring
196*724ba675SRob Herring&usb2 {
197*724ba675SRob Herring	vcc-gpio = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
198*724ba675SRob Herring};
199*724ba675SRob Herring
200*724ba675SRob Herring&usb3 {
201*724ba675SRob Herring	vcc-gpio = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
202*724ba675SRob Herring};
203*724ba675SRob Herring
204*724ba675SRob Herring&srab {
205*724ba675SRob Herring	compatible = "brcm,bcm53012-srab", "brcm,bcm5301x-srab";
206*724ba675SRob Herring	status = "okay";
207*724ba675SRob Herring	dsa,member = <0 0>;
208*724ba675SRob Herring
209*724ba675SRob Herring	ports {
210*724ba675SRob Herring		sw0_p0: port@0 {
211*724ba675SRob Herring			label = "extsw";
212*724ba675SRob Herring
213*724ba675SRob Herring			fixed-link {
214*724ba675SRob Herring				speed = <1000>;
215*724ba675SRob Herring				full-duplex;
216*724ba675SRob Herring			};
217*724ba675SRob Herring		};
218*724ba675SRob Herring
219*724ba675SRob Herring		port@1 {
220*724ba675SRob Herring			label = "lan7";
221*724ba675SRob Herring		};
222*724ba675SRob Herring
223*724ba675SRob Herring		port@2 {
224*724ba675SRob Herring			label = "lan4";
225*724ba675SRob Herring		};
226*724ba675SRob Herring
227*724ba675SRob Herring		port@3 {
228*724ba675SRob Herring			label = "lan8";
229*724ba675SRob Herring		};
230*724ba675SRob Herring
231*724ba675SRob Herring		port@4 {
232*724ba675SRob Herring			label = "wan";
233*724ba675SRob Herring		};
234*724ba675SRob Herring
235*724ba675SRob Herring		port@5 {
236*724ba675SRob Herring			label = "cpu";
237*724ba675SRob Herring			status = "disabled";
238*724ba675SRob Herring
239*724ba675SRob Herring			fixed-link {
240*724ba675SRob Herring				speed = <1000>;
241*724ba675SRob Herring				full-duplex;
242*724ba675SRob Herring			};
243*724ba675SRob Herring		};
244*724ba675SRob Herring
245*724ba675SRob Herring		port@7 {
246*724ba675SRob Herring			label = "cpu";
247*724ba675SRob Herring			status = "disabled";
248*724ba675SRob Herring
249*724ba675SRob Herring			fixed-link {
250*724ba675SRob Herring				speed = <1000>;
251*724ba675SRob Herring				full-duplex;
252*724ba675SRob Herring			};
253*724ba675SRob Herring		};
254*724ba675SRob Herring
255*724ba675SRob Herring		port@8 {
256*724ba675SRob Herring			label = "cpu";
257*724ba675SRob Herring		};
258*724ba675SRob Herring	};
259*724ba675SRob Herring};
260*724ba675SRob Herring
261*724ba675SRob Herring&usb3_phy {
262*724ba675SRob Herring	status = "okay";
263*724ba675SRob Herring};
264*724ba675SRob Herring
265*724ba675SRob Herring&nandcs {
266*724ba675SRob Herring	partitions {
267*724ba675SRob Herring		compatible = "linksys,ns-partitions";
268*724ba675SRob Herring		#address-cells = <1>;
269*724ba675SRob Herring		#size-cells = <1>;
270*724ba675SRob Herring
271*724ba675SRob Herring		partition@0 {
272*724ba675SRob Herring			label = "boot";
273*724ba675SRob Herring			reg = <0x0000000 0x0080000>;
274*724ba675SRob Herring			read-only;
275*724ba675SRob Herring		};
276*724ba675SRob Herring
277*724ba675SRob Herring		partition@80000 {
278*724ba675SRob Herring			label = "nvram";
279*724ba675SRob Herring			reg = <0x080000 0x0100000>;
280*724ba675SRob Herring		};
281*724ba675SRob Herring
282*724ba675SRob Herring		partition@180000 {
283*724ba675SRob Herring			label = "devinfo";
284*724ba675SRob Herring			reg = <0x0180000 0x080000>;
285*724ba675SRob Herring		};
286*724ba675SRob Herring
287*724ba675SRob Herring		partition@200000 {
288*724ba675SRob Herring			reg = <0x0200000 0x01d00000>;
289*724ba675SRob Herring			compatible = "linksys,ns-firmware", "brcm,trx";
290*724ba675SRob Herring		};
291*724ba675SRob Herring
292*724ba675SRob Herring		partition@1f00000 {
293*724ba675SRob Herring			reg = <0x01f00000 0x01d00000>;
294*724ba675SRob Herring			compatible = "linksys,ns-firmware", "brcm,trx";
295*724ba675SRob Herring		};
296*724ba675SRob Herring
297*724ba675SRob Herring		partition@5200000 {
298*724ba675SRob Herring			label = "system";
299*724ba675SRob Herring			reg = <0x05200000 0x02e00000>;
300*724ba675SRob Herring		};
301*724ba675SRob Herring	};
302*724ba675SRob Herring};
303