75ca00024a77479de753e186725026a67c763529
[openwrt/staging/hauke.git] / target / linux / ipq806x / files-5.4 / arch / arm / boot / dts / qcom-ipq8064-ea8500.dts
1 #include "qcom-ipq8064-v2.0.dtsi"
2
3 #include <dt-bindings/input/input.h>
4
5 / {
6 model = "Linksys EA8500 WiFi Router";
7 compatible = "linksys,ea8500", "qcom,ipq8064";
8
9 memory@0 {
10 reg = <0x42000000 0x1e000000>;
11 device_type = "memory";
12 };
13
14 reserved-memory {
15 #address-cells = <1>;
16 #size-cells = <1>;
17 ranges;
18 rsvd@41200000 {
19 reg = <0x41200000 0x300000>;
20 no-map;
21 };
22 };
23
24 aliases {
25 serial0 = &gsbi4_serial;
26 mdio-gpio0 = &mdio0;
27
28 led-boot = &power;
29 led-failsafe = &power;
30 led-running = &power;
31 led-upgrade = &power;
32 };
33
34 chosen {
35 bootargs = "console=ttyMSM0,115200n8";
36 stdout-path = "serial0:115200n8";
37 append-rootblock = "ubi.mtd="; /* append to bootargs adding the root deviceblock nbr from bootloader */
38 };
39
40 soc {
41 mdio0: mdio@37000000 {
42 #address-cells = <1>;
43 #size-cells = <0>;
44
45 compatible = "qcom,ipq8064-mdio", "syscon";
46 reg = <0x37000000 0x200000>;
47 resets = <&gcc GMAC_CORE1_RESET>;
48 reset-names = "stmmaceth";
49 clocks = <&gcc GMAC_CORE1_CLK>;
50 clock-names = "stmmaceth";
51
52 pinctrl-0 = <&mdio0_pins>;
53 pinctrl-names = "default";
54
55 phy0: ethernet-phy@0 {
56 reg = <0>;
57 qca,ar8327-initvals = <
58 0x00004 0x7600000 /* PAD0_MODE */
59 0x00008 0x1000000 /* PAD5_MODE */
60 0x0000c 0x80 /* PAD6_MODE */
61 0x000e4 0x6a545 /* MAC_POWER_SEL */
62 0x000e0 0xc74164de /* SGMII_CTRL */
63 0x0007c 0x4e /* PORT0_STATUS */
64 0x00094 0x4e /* PORT6_STATUS */
65 >;
66 };
67
68 phy4: ethernet-phy@4 {
69 reg = <4>;
70 };
71 };
72 };
73
74 keys {
75 compatible = "gpio-keys";
76 pinctrl-0 = <&button_pins>;
77 pinctrl-names = "default";
78
79 wifi {
80 label = "wifi";
81 gpios = <&qcom_pinmux 67 GPIO_ACTIVE_LOW>;
82 linux,code = <KEY_RFKILL>;
83 };
84
85 reset {
86 label = "reset";
87 gpios = <&qcom_pinmux 68 GPIO_ACTIVE_LOW>;
88 linux,code = <KEY_RESTART >;
89 };
90
91 wps {
92 label = "wps";
93 gpios = <&qcom_pinmux 65 GPIO_ACTIVE_LOW>;
94 linux,code = <KEY_WPS_BUTTON>;
95 };
96 };
97
98 leds {
99 compatible = "gpio-leds";
100 pinctrl-0 = <&led_pins>;
101 pinctrl-names = "default";
102
103 wps {
104 label = "ea8500:green:wps";
105 gpios = <&qcom_pinmux 53 GPIO_ACTIVE_HIGH>;
106 };
107
108 power: power {
109 label = "ea8500:white:power";
110 gpios = <&qcom_pinmux 6 GPIO_ACTIVE_LOW>;
111 default-state = "keep";
112 };
113
114 wifi {
115 label = "ea8500:green:wifi";
116 gpios = <&qcom_pinmux 54 GPIO_ACTIVE_HIGH>;
117 };
118 };
119 };
120
121 &qcom_pinmux {
122 button_pins: button_pins {
123 mux {
124 pins = "gpio65", "gpio67", "gpio68";
125 function = "gpio";
126 drive-strength = <2>;
127 bias-pull-up;
128 };
129 };
130
131 i2c4_pins: i2c4_pinmux {
132 mux {
133 pins = "gpio12", "gpio13";
134 function = "gsbi4";
135 drive-strength = <12>;
136 bias-disable;
137 };
138 };
139
140 led_pins: led_pins {
141 mux {
142 pins = "gpio6", "gpio53", "gpio54";
143 function = "gpio";
144 drive-strength = <2>;
145 bias-pull-up;
146 };
147 };
148
149 mdio0_pins: mdio0_pins {
150 mux {
151 pins = "gpio0", "gpio1";
152 function = "mdio";
153 drive-strength = <8>;
154 bias-disable;
155 };
156 };
157
158 nand_pins: nand_pins {
159 disable {
160 pins = "gpio34", "gpio35", "gpio36",
161 "gpio37", "gpio38";
162 function = "nand";
163 drive-strength = <10>;
164 bias-disable;
165 };
166
167 pullups {
168 pins = "gpio39";
169 function = "nand";
170 drive-strength = <10>;
171 bias-pull-up;
172 };
173
174 hold {
175 pins = "gpio40", "gpio41", "gpio42",
176 "gpio43", "gpio44", "gpio45",
177 "gpio46", "gpio47";
178 function = "nand";
179 drive-strength = <10>;
180 bias-bus-hold;
181 };
182 };
183
184 rgmii2_pins: rgmii2_pins {
185 mux {
186 pins = "gpio27", "gpio28", "gpio29", "gpio30", "gpio31", "gpio32",
187 "gpio51", "gpio52", "gpio59", "gpio60", "gpio61", "gpio62" ;
188 function = "rgmii2";
189 drive-strength = <8>;
190 bias-disable;
191 };
192 };
193 };
194
195 &gsbi4 {
196 qcom,mode = <GSBI_PROT_I2C_UART>;
197 status = "okay";
198 serial@16340000 {
199 status = "okay";
200 };
201 /*
202 * The i2c device on gsbi4 should not be enabled.
203 * On ipq806x designs gsbi4 i2c is meant for exclusive
204 * RPM usage. Turning this on in kernel manifests as
205 * i2c failure for the RPM.
206 */
207 };
208
209 &sata_phy {
210 status = "okay";
211 };
212
213 &sata {
214 status = "okay";
215 };
216
217 &usb3_0 {
218 status = "okay";
219 };
220
221 &usb3_1 {
222 status = "okay";
223 };
224
225 &pcie0 {
226 status = "okay";
227 force_gen1 = <1>;
228 };
229
230 &pcie1 {
231 status = "okay";
232 };
233
234 &pcie2 {
235 status = "okay";
236 };
237
238 &nand_controller {
239 status = "okay";
240
241 pinctrl-0 = <&nand_pins>;
242 pinctrl-names = "default";
243
244 nand@0 {
245 reg = <0>;
246 compatible = "qcom,nandcs";
247
248 nand-ecc-strength = <4>;
249 nand-bus-width = <8>;
250 nand-ecc-step-size = <512>;
251
252 partitions {
253 compatible = "fixed-partitions";
254 #address-cells = <1>;
255 #size-cells = <1>;
256
257 SBL1@0 {
258 label = "SBL1";
259 reg = <0x0000000 0x0040000>;
260 read-only;
261 };
262
263 MIBIB@40000 {
264 label = "MIBIB";
265 reg = <0x0040000 0x0140000>;
266 read-only;
267 };
268
269 SBL2@180000 {
270 label = "SBL2";
271 reg = <0x0180000 0x0140000>;
272 read-only;
273 };
274
275 SBL3@2c0000 {
276 label = "SBL3";
277 reg = <0x02c0000 0x0280000>;
278 read-only;
279 };
280
281 DDRCONFIG@540000 {
282 label = "DDRCONFIG";
283 reg = <0x0540000 0x0120000>;
284 read-only;
285 };
286
287 SSD@660000 {
288 label = "SSD";
289 reg = <0x0660000 0x0120000>;
290 read-only;
291 };
292
293 TZ@780000 {
294 label = "TZ";
295 reg = <0x0780000 0x0280000>;
296 read-only;
297 };
298
299 RPM@a00000 {
300 label = "RPM";
301 reg = <0x0a00000 0x0280000>;
302 read-only;
303 };
304
305 art: art@c80000 {
306 label = "art";
307 reg = <0x0c80000 0x0140000>;
308 read-only;
309 };
310
311 APPSBL@dc0000 {
312 label = "APPSBL";
313 reg = <0x0dc0000 0x0100000>;
314 read-only;
315 };
316
317 u_env@ec0000 {
318 label = "u_env";
319 reg = <0x0ec0000 0x0040000>;
320 };
321
322 s_env@f00000 {
323 label = "s_env";
324 reg = <0x0f00000 0x0040000>;
325 };
326
327 devinfo@f40000 {
328 label = "devinfo";
329 reg = <0x0f40000 0x0040000>;
330 };
331
332 linux@f80000 {
333 label = "kernel1";
334 reg = <0x0f80000 0x2800000>; /* 3 MB spill to rootfs*/
335 };
336
337 rootfs@1280000 {
338 label = "rootfs1";
339 reg = <0x1280000 0x2500000>;
340 };
341
342 linux2@3780000 {
343 label = "kernel2";
344 reg = <0x3780000 0x2800000>;
345 };
346
347 rootfs2@3a80000 {
348 label = "rootfs2";
349 reg = <0x3a80000 0x2500000>;
350 };
351
352 syscfg@5f80000 {
353 label = "syscfg";
354 reg = <0x5f80000 0x2080000>;
355 };
356 };
357 };
358 };
359
360 &gmac1 {
361 status = "okay";
362 phy-mode = "rgmii";
363 qcom,id = <1>;
364 qcom,phy_mdio_addr = <4>;
365 qcom,poll_required = <1>;
366 qcom,rgmii_delay = <0>;
367 qcom,emulation = <0>;
368 pinctrl-0 = <&rgmii2_pins>;
369 pinctrl-names = "default";
370 fixed-link {
371 speed = <1000>;
372 full-duplex;
373 };
374 };
375 /* LAN */
376 &gmac2 {
377 status = "okay";
378 phy-mode = "sgmii";
379 qcom,id = <2>;
380 qcom,phy_mdio_addr = <0>; /* none */
381 qcom,poll_required = <0>; /* no polling */
382 qcom,rgmii_delay = <0>;
383 qcom,emulation = <0>;
384 fixed-link {
385 speed = <1000>;
386 full-duplex;
387 };
388 };
389
390 &adm_dma {
391 status = "okay";
392 };