60a88c1741882b68358202704adabd1357e086d4
[openwrt/staging/hauke.git] / target / linux / ipq40xx / files / arch / arm / boot / dts / qcom-ipq4019-whw03v2.dts
1 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2
3 #include "qcom-ipq4019.dtsi"
4 #include <dt-bindings/gpio/gpio.h>
5 #include <dt-bindings/input/input.h>
6 #include <dt-bindings/soc/qcom,tcsr.h>
7 #include <dt-bindings/leds/common.h>
8
9 / {
10 model = "Linksys WHW03 V2 (Velop)";
11 compatible = "linksys,whw03v2", "qcom,ipq4019";
12
13 aliases {
14 led-boot = &led_blue;
15 led-failsafe = &led_red;
16 led-running = &led_green;
17 led-upgrade = &led_red;
18 };
19
20 // The arguments rootfstype and ro are needed
21 // to override the default bootargs
22 chosen {
23 bootargs-append = " root=/dev/ubiblock0_0 rootfstype=squashfs ro";
24 stdout-path = &blsp1_uart1;
25 };
26
27 soc {
28 ess-tcsr@1953000 {
29 compatible = "qcom,tcsr";
30 reg = <0x1953000 0x1000>;
31 qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
32 };
33
34
35 tcsr@1949000 {
36 compatible = "qcom,tcsr";
37 reg = <0x1949000 0x100>;
38 qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
39 };
40
41 tcsr@194b000 {
42 compatible = "qcom,tcsr";
43 reg = <0x194b000 0x100>;
44 qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
45 };
46
47 tcsr@1957000 {
48 compatible = "qcom,tcsr";
49 reg = <0x1957000 0x100>;
50 qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
51 };
52 };
53
54
55 keys {
56 compatible = "gpio-keys";
57
58 reset {
59 label = "reset";
60 gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
61 linux,code = <KEY_RESTART>;
62 };
63 };
64 };
65
66
67 &tlmm {
68 mdio_pins: mdio-pinmux {
69 mux-1 {
70 pins = "gpio6";
71 function = "mdio";
72 bias-pull-up;
73 };
74
75 mux-2 {
76 pins = "gpio7";
77 function = "mdc";
78 bias-pull-up;
79 };
80 };
81
82 i2c_0_pins: i2c-0-pinmux {
83 mux {
84 function = "blsp_i2c0";
85 pins = "gpio20", "gpio21";
86 bias-disable;
87 };
88 };
89
90 serial_0_pins: serial0-pinmux {
91 mux {
92 pins = "gpio16", "gpio17";
93 function = "blsp_uart0";
94 bias-disable;
95 };
96 };
97
98 serial_1_pins: serial1-pinmux {
99 mux {
100 pins = "gpio8", "gpio9", "gpio10", "gpio11";
101 function = "blsp_uart1";
102 bias-disable;
103 };
104 };
105
106 spi_0_pins: spi-0-pinmux {
107 mux {
108 function = "blsp_spi0";
109 pins = "gpio13", "gpio14", "gpio15";
110 drive-strength = <12>;
111 bias-disable;
112 };
113
114 mux-cs {
115 pins = "gpio12";
116 drive-strength = <2>;
117 bias-disable;
118 output-high;
119 };
120 };
121
122 spi_1_pins: spi-1-pinmux {
123 mux-1 {
124 function = "blsp_spi1";
125 pins = "gpio44", "gpio46","gpio47";
126 bias-disable;
127 };
128
129 mux-2 {
130 pins = "gpio31", "gpio45", "gpio49";
131 function = "gpio";
132 bias-pull-up;
133 output-high;
134 };
135
136 host-interrupt {
137 pins = "gpio42";
138 function = "gpio";
139 input;
140 };
141 };
142
143 wifi_0_pins: wifi0-pinmux {
144 btcoexist {
145 bias-pull-up;
146 drive-strength = <6>;
147 function = "gpio";
148 output-high;
149 pins = "gpio52";
150 };
151 };
152
153 zigbee-0 {
154 gpio-hog;
155 gpios = <29 GPIO_ACTIVE_HIGH>;
156 bias-disable;
157 output-low;
158 };
159
160 zigbee-1 {
161 gpio-hog;
162 gpios = <50 GPIO_ACTIVE_HIGH>;
163 bias-disable;
164 input;
165 };
166
167 bluetooth-enable {
168 gpio-hog;
169 gpios = <32 GPIO_ACTIVE_HIGH>;
170 output-high;
171 };
172 };
173
174 &mdio {
175 status = "okay";
176 pinctrl-0 = <&mdio_pins>;
177 pinctrl-names = "default";
178 phy-reset-gpios = <&tlmm 19 GPIO_ACTIVE_LOW>;
179 };
180
181 &ethphy0 {
182 status = "disabled";
183 };
184
185 &ethphy1 {
186 status = "disabled";
187 };
188
189 &ethphy2 {
190 status = "disabled";
191 };
192
193 &ethphy3 {
194 reg = <0x1b>;
195 };
196
197 &ethphy4 {
198 reg = <0x1c>;
199 };
200
201 &psgmiiphy {
202 reg = <0x1d>;
203 };
204
205 &watchdog {
206 status = "okay";
207 };
208
209 &prng {
210 status = "okay";
211 };
212
213 &blsp_dma {
214 status = "okay";
215 };
216
217 &cryptobam {
218 num-channels = <4>;
219 qcom,num-ees = <2>;
220
221 status = "okay";
222 };
223
224 &crypto {
225 status = "okay";
226 };
227
228 &blsp1_uart1 {
229 status = "okay";
230 pinctrl-0 = <&serial_0_pins>;
231 pinctrl-names = "default";
232 };
233
234 &blsp1_uart2 {
235 status = "okay";
236 pinctrl-0 = <&serial_1_pins>;
237 pinctrl-names = "default";
238
239 bluetooth {
240 compatible = "csr,8811";
241
242 enable-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
243 };
244 };
245
246 &blsp1_spi2 {
247 pinctrl-0 = <&spi_1_pins>;
248 pinctrl-names = "default";
249 status = "okay";
250
251 cs-gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>;
252
253 zigbee@0 {
254 #address-cells = <1>;
255 #size-cells = <0>;
256
257 compatible = "silabs,em3581";
258 reg = <0>;
259 spi-max-frequency = <12000000>;
260 };
261 };
262
263 &blsp1_i2c3 {
264 pinctrl-0 = <&i2c_0_pins>;
265 pinctrl-names = "default";
266
267 status = "okay";
268
269 // RGB LEDs
270 pca9633: led-controller@62 {
271 compatible = "nxp,pca9633";
272 nxp,hw-blink;
273 reg = <0x62>;
274 #address-cells = <1>;
275 #size-cells = <0>;
276
277 led_red: red@0 {
278 label = "red";
279 color = <LED_COLOR_ID_RED>;
280 function = LED_FUNCTION_INDICATOR;
281 linux,default-trigger = "none";
282 reg = <0>;
283 };
284
285 led_green: green@1 {
286 label = "green";
287 color = <LED_COLOR_ID_GREEN>;
288 function = LED_FUNCTION_INDICATOR;
289 linux,default-trigger = "none";
290 reg = <1>;
291 };
292
293 led_blue: blue@2 {
294 label = "blue";
295 color = <LED_COLOR_ID_BLUE>;
296 function = LED_FUNCTION_INDICATOR;
297 linux,default-trigger = "default-on";
298 reg = <2>;
299 };
300 };
301 };
302
303 &usb3_ss_phy {
304 status = "okay";
305 };
306
307 &usb3_hs_phy {
308 status = "okay";
309 };
310
311 &usb2_hs_phy {
312 status = "okay";
313 };
314
315 &nand {
316 status = "okay";
317
318 nand@0 {
319 partitions {
320 compatible = "fixed-partitions";
321 #address-cells = <1>;
322 #size-cells = <1>;
323
324 partition@0 {
325 label = "SBL1";
326 reg = <0x0 0x100000>;
327 read-only;
328 };
329
330 partition@100000 {
331 label = "MIBIB";
332 reg = <0x100000 0x100000>;
333 read-only;
334 };
335
336 partition@200000 {
337 label = "QSEE";
338 reg = <0x200000 0x100000>;
339 read-only;
340 };
341
342 partition@300000 {
343 label = "CDT";
344 reg = <0x300000 0x80000>;
345 read-only;
346 };
347
348 partition@380000 {
349 label = "APPSBL";
350 reg = <0x380000 0x200000>;
351 read-only;
352 };
353
354 partition@580000 {
355 label = "ART";
356 reg = <0x580000 0x80000>;
357 read-only;
358
359 nvmem-layout {
360 compatible = "fixed-layout";
361 #address-cells = <1>;
362 #size-cells = <1>;
363
364 macaddr_gmac0: macaddr@0 {
365 reg = <0x0 0x6>;
366 };
367
368 macaddr_gmac1: macaddr@6 {
369 reg = <0x6 0x6>;
370 };
371
372 precal_art_1000: precal@1000 {
373 reg = <0x1000 0x2f20>;
374 };
375
376 precal_art_5000: precal@5000 {
377 reg = <0x5000 0x2f20>;
378 };
379
380 precal_art_9000: precal@9000 {
381 reg = <0x9000 0x2f20>;
382 };
383 };
384 };
385
386 partition@600000 {
387 label = "u_env";
388 reg = <0x600000 0x80000>;
389 };
390
391 partition@680000 {
392 label = "s_env";
393 reg = <0x680000 0x40000>;
394 };
395
396 partition@6c0000 {
397 label = "devinfo";
398 reg = <0x6c0000 0x40000>;
399 read-only;
400 };
401
402 partition@700000 {
403 label = "kernel";
404 reg = <0x700000 0xa100000>;
405 };
406
407 partition@d00000 {
408 label = "rootfs";
409 reg = <0xd00000 0x9b00000>;
410 };
411
412 partition@a800000 {
413 label = "alt_kernel";
414 reg = <0xa800000 0xa100000>;
415 };
416
417 partition@ae00000 {
418 label = "alt_rootfs";
419 reg = <0xae00000 0x9b00000>;
420 };
421
422 partition@14900000 {
423 label = "sysdiag";
424 reg = <0x14900000 0x200000>;
425 read-only;
426 };
427
428 partition@14b00000 {
429 label = "syscfg";
430 reg = <0x14b00000 0xb500000>;
431 read-only;
432 };
433 };
434 };
435 };
436
437 &pcie0 {
438 status = "okay";
439
440 perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
441 wake-gpios = <&tlmm 40 GPIO_ACTIVE_LOW>;
442 clkreq-gpios = <&tlmm 39 GPIO_ACTIVE_LOW>;
443
444 bridge@0,0 {
445 reg = <0x00000000 0 0 0 0>;
446 #address-cells = <3>;
447 #size-cells = <2>;
448 ranges;
449
450 wifi2: wifi@1,0 {
451 compatible = "qcom,ath10k";
452 reg = <0x00010000 0 0 0 0>;
453 };
454 };
455 };
456
457 &qpic_bam {
458 status = "okay";
459 };
460
461 &gmac {
462 status = "okay";
463 };
464
465 &switch {
466 status = "okay";
467 };
468
469 &swport4 {
470 status = "okay";
471 label = "lan";
472
473 nvmem-cell-names = "mac-address";
474 nvmem-cells = <&macaddr_gmac1>;
475 };
476
477 &swport5 {
478 status = "okay";
479 label = "wan";
480
481 nvmem-cell-names = "mac-address";
482 nvmem-cells = <&macaddr_gmac0>;
483 };
484
485 &wifi0 {
486 pinctrl-0 = <&wifi_0_pins>;
487 pinctrl-names = "default";
488
489 status = "okay";
490
491 qcom,coexist-support = <1>;
492 qcom,coexist-gpio-pin = <0x34>;
493
494 ieee80211-freq-limit = <2401000 2473000>;
495 qcom,ath10k-calibration-variant = "linksys-whw03v2";
496
497 nvmem-cell-names = "pre-calibration", "mac-address";
498 nvmem-cells = <&precal_art_1000>, <&macaddr_gmac0>;
499 mac-address-increment = <1>;
500 };
501
502 &wifi1 {
503 status = "okay";
504
505 ieee80211-freq-limit = <5170000 5250000>;
506 qcom,ath10k-calibration-variant = "linksys-whw03v2";
507
508 nvmem-cell-names = "pre-calibration", "mac-address";
509 nvmem-cells = <&precal_art_5000>, <&macaddr_gmac0>;
510 mac-address-increment = <2>;
511 };
512
513 &wifi2 {
514 status = "okay";
515
516 ieee80211-freq-limit = <5735000 5835000>;
517 qcom,ath10k-calibration-variant = "linksys-whw03v2";
518
519 nvmem-cell-names = "pre-calibration", "mac-address";
520 nvmem-cells = <&precal_art_9000>, <&macaddr_gmac0>;
521 mac-address-increment = <3>;
522 };