ipq806x: improve mdio gpios list
[openwrt/staging/wigyori.git] / target / linux / ipq806x / files-4.19 / arch / arm / boot / dts / qcom-ipq8064-wpq864.dts
1 /*
2 * BSD LICENSE
3 *
4 * Copyright (C) 2017 Christian Mehlis <christian@m3hlis.de>
5 * Copyright (C) 2018 Mathias Kresin <dev@kresin.me>
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 *
12 * 1. Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 * 2. Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in the
16 * documentation and/or other materials provided with the distribution.
17 * 3. Neither the names of the copyright holders nor the names of any
18 * contributors may be used to endorse or promote products derived
19 * from this software without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 */
33
34 #include "qcom-ipq8064-v1.0.dtsi"
35
36 #include <dt-bindings/input/input.h>
37 #include <dt-bindings/soc/qcom,tcsr.h>
38
39 / {
40 compatible = "compex,wpq864", "qcom,ipq8064";
41 model = "Compex WPQ864";
42
43 aliases {
44 mdio-gpio0 = &mdio0;
45 serial0 = &gsbi4_serial;
46 ethernet0 = &gmac1;
47 ethernet1 = &gmac0;
48
49 led-boot = &led_pass;
50 led-failsafe = &led_fail;
51 led-running = &led_pass;
52 led-upgrade = &led_pass;
53 };
54
55 chosen {
56 stdout-path = "serial0:115200n8";
57 };
58
59 soc {
60 rpm@108000 {
61 pinctrl-0 = <&rpm_pins>;
62 pinctrl-names = "default";
63 };
64
65 nand@1ac00000 {
66 status = "okay";
67
68 pinctrl-0 = <&nand_pins>;
69 pinctrl-names = "default";
70
71 mt29f2g08abbeah4@0 {
72 compatible = "qcom,nandcs";
73
74 reg = <0>;
75
76 nand-ecc-strength = <4>;
77 nand-bus-width = <8>;
78 nand-ecc-step-size = <512>;
79
80 partitions {
81 compatible = "fixed-partitions";
82 #address-cells = <1>;
83 #size-cells = <1>;
84
85 SBL1@0 {
86 label = "SBL1";
87 reg = <0x0000000 0x0040000>;
88 read-only;
89 };
90
91 MIBIB@40000 {
92 label = "MIBIB";
93 reg = <0x0040000 0x0140000>;
94 read-only;
95 };
96
97 SBL2@180000 {
98 label = "SBL2";
99 reg = <0x0180000 0x0140000>;
100 read-only;
101 };
102
103 SBL3@2c0000 {
104 label = "SBL3";
105 reg = <0x02c0000 0x0280000>;
106 read-only;
107 };
108
109 DDRCONFIG@540000 {
110 label = "DDRCONFIG";
111 reg = <0x0540000 0x0120000>;
112 read-only;
113 };
114
115 SSD@660000 {
116 label = "SSD";
117 reg = <0x0660000 0x0120000>;
118 read-only;
119 };
120
121 TZ@780000 {
122 label = "TZ";
123 reg = <0x0780000 0x0280000>;
124 read-only;
125 };
126
127 RPM@a00000 {
128 label = "RPM";
129 reg = <0x0a00000 0x0280000>;
130 read-only;
131 };
132
133 APPSBL@c80000 {
134 label = "APPSBL";
135 reg = <0x0c80000 0x0500000>;
136 read-only;
137 };
138
139 APPSBLENV@1180000 {
140 label = "APPSBLENV";
141 reg = <0x1180000 0x0080000>;
142 };
143
144 ART@1200000 {
145 label = "ART";
146 reg = <0x1200000 0x0140000>;
147 };
148
149 ubi@1340000 {
150 label = "ubi";
151 reg = <0x1340000 0x4000000>;
152 };
153
154 BOOTCONFIG@5340000 {
155 label = "BOOTCONFIG";
156 reg = <0x5340000 0x0060000>;
157 };
158
159 SBL2-1@53a0000- {
160 label = "SBL2_1";
161 reg = <0x53a0000 0x0140000>;
162 read-only;
163 };
164
165 SBL3-1@54e0000 {
166 label = "SBL3_1";
167 reg = <0x54e0000 0x0280000>;
168 read-only;
169 };
170
171 DDRCONFIG-1@5760000 {
172 label = "DDRCONFIG_1";
173 reg = <0x5760000 0x0120000>;
174 read-only;
175 };
176
177 SSD-1@5880000 {
178 label = "SSD_1";
179 reg = <0x5880000 0x0120000>;
180 read-only;
181 };
182
183 TZ-1@59a0000 {
184 label = "TZ_1";
185 reg = <0x59a0000 0x0280000>;
186 read-only;
187 };
188
189 RPM-1@5c20000 {
190 label = "RPM_1";
191 reg = <0x5c20000 0x0280000>;
192 read-only;
193 };
194
195 BOOTCONFIG1@5ea0000 {
196 label = "BOOTCONFIG1";
197 reg = <0x5ea0000 0x0060000>;
198 };
199
200 APPSBL-1@5f00000 {
201 label = "APPSBL_1";
202 reg = <0x5f00000 0x0500000>;
203 read-only;
204 };
205
206 ubi-1@6400000 {
207 label = "ubi_1";
208 reg = <0x6400000 0x4000000>;
209 };
210
211 unused@a400000 {
212 label = "unused";
213 reg = <0xa400000 0x5c00000>;
214 };
215 };
216 };
217 };
218 };
219
220 mdio0: mdio {
221 #address-cells = <1>;
222 #size-cells = <0>;
223
224 compatible = "virtual,mdio-gpio";
225
226 pinctrl-0 = <&mdio0_pins>;
227 pinctrl-names = "default";
228
229 gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH>,
230 <&qcom_pinmux 0 GPIO_ACTIVE_HIGH>;
231
232 ethernet-phy@0 {
233 reg = <0>;
234 qca,ar8327-initvals = <
235 0x00004 0x7600000 /* PAD0_MODE */
236 0x00008 0x1000000 /* PAD5_MODE */
237 0x0000c 0x80 /* PAD6_MODE */
238 0x000e4 0x6a545 /* MAC_POWER_SEL */
239 0x000e0 0xc74164de /* SGMII_CTRL */
240 0x0007c 0x4e /* PORT0_STATUS */
241 0x00094 0x4e /* PORT6_STATUS */
242 >;
243 };
244
245 ethernet-phy@4 {
246 reg = <4>;
247 };
248 };
249
250 leds {
251 compatible = "gpio-leds";
252
253 pinctrl-0 = <&led_pins>;
254 pinctrl-names = "default";
255
256 rss4 {
257 label = "wpq864:green:rss4";
258 gpios = <&qcom_pinmux 23 GPIO_ACTIVE_HIGH>;
259 };
260
261 rss3 {
262 label = "wpq864:green:rss3";
263 gpios = <&qcom_pinmux 24 GPIO_ACTIVE_HIGH>;
264 default-state = "keep";
265 };
266
267 rss2 {
268 label = "wpq864:orange:rss2";
269 gpios = <&qcom_pinmux 25 GPIO_ACTIVE_HIGH>;
270 };
271
272 rss1 {
273 label = "wpq864:red:rss1";
274 gpios = <&qcom_pinmux 22 GPIO_ACTIVE_HIGH>;
275 };
276
277 led_pass: pass {
278 label = "wpq864:green:pass";
279 gpios = <&qcom_pinmux 53 GPIO_ACTIVE_HIGH>;
280 };
281
282 led_fail: fail {
283 label = "wpq864:green:fail";
284 gpios = <&qcom_pinmux 9 GPIO_ACTIVE_HIGH>;
285 };
286
287 usb {
288 label = "wpq864:green:usb";
289 gpios = <&qcom_pinmux 7 GPIO_ACTIVE_HIGH>;
290 };
291
292 usb-pcie {
293 label = "wpq864:green:usb-pcie";
294 gpios = <&qcom_pinmux 8 GPIO_ACTIVE_HIGH>;
295 };
296 };
297
298 keys {
299 compatible = "gpio-keys";
300
301 pinctrl-0 = <&button_pins>;
302 pinctrl-names = "default";
303
304 reset {
305 label = "reset";
306 gpios = <&qcom_pinmux 54 GPIO_ACTIVE_LOW>;
307 linux,code = <KEY_RESTART>;
308 };
309 };
310
311 beeper {
312 compatible = "gpio-beeper";
313
314 pinctrl-0 = <&beeper_pins>;
315 pinctrl-names = "default";
316
317 gpios = <&qcom_pinmux 55 GPIO_ACTIVE_HIGH>;
318 };
319 };
320
321 &adm_dma {
322 status = "okay";
323 };
324
325 &gmac1 {
326 status = "okay";
327
328 pinctrl-0 = <&rgmii2_pins>;
329 pinctrl-names = "default";
330
331 phy-mode = "rgmii";
332 qcom,id = <1>;
333
334 fixed-link {
335 speed = <1000>;
336 full-duplex;
337 };
338 };
339
340 &gmac2 {
341 status = "okay";
342
343 phy-mode = "sgmii";
344 qcom,id = <2>;
345
346 fixed-link {
347 speed = <1000>;
348 full-duplex;
349 };
350 };
351
352 &gsbi4 {
353 status = "okay";
354 qcom,mode = <GSBI_PROT_I2C_UART>;
355 };
356
357 &gsbi4_serial {
358 status = "okay";
359
360 pinctrl-0 = <&uart0_pins>;
361 pinctrl-names = "default";
362 };
363
364 &gsbi5 {
365 status = "okay";
366
367 qcom,mode = <GSBI_PROT_SPI>;
368
369 spi@1a280000 {
370 status = "okay";
371
372 pinctrl-0 = <&spi_pins>;
373 pinctrl-names = "default";
374
375 cs-gpios = <&qcom_pinmux 20 GPIO_ACTIVE_HIGH>;
376
377 s25fl256s1@0 {
378 compatible = "jedec,spi-nor";
379 #address-cells = <1>;
380 #size-cells = <1>;
381 reg = <0>;
382 spi-max-frequency = <50000000>;
383 };
384 };
385 };
386
387 &ss_phy_0 { /* USB3 port 0 SS phy */
388 status = "okay";
389
390 rx_eq = <2>;
391 tx_deamp_3_5db = <32>;
392 mpll = <160>;
393 };
394
395 &ss_phy_1 { /* USB3 port 1 SS phy */
396 status = "okay";
397
398 rx_eq = <2>;
399 tx_deamp_3_5db = <32>;
400 mpll = <160>;
401 };
402
403 &pcie0 {
404 status = "okay";
405
406 /delete-property/ pinctrl-0;
407 /delete-property/ pinctrl-names;
408 /delete-property/ perst-gpios;
409 };
410
411 &pcie1 {
412 status = "okay";
413 };
414
415 &pcie2 {
416 status = "okay";
417
418 /delete-property/ pinctrl-0;
419 /delete-property/ pinctrl-names;
420 /delete-property/ perst-gpios;
421 };
422
423 &qcom_pinmux {
424 pinctrl-names = "default";
425 pinctrl-0 = <&state_default>;
426
427 state_default: pinctrl0 {
428 pcie0_pcie2_perst {
429 pins = "gpio3";
430 function = "gpio";
431 drive-strength = <2>;
432 bias-disable;
433 output-high;
434 };
435 };
436
437 led_pins: led_pins {
438 mux {
439 pins = "gpio7", "gpio8", "gpio9", "gpio22",
440 "gpio23", "gpio24", "gpio25", "gpio53";
441 function = "gpio";
442 drive-strength = <2>;
443 bias-pull-up;
444 };
445 };
446
447 button_pins: button_pins {
448 mux {
449 pins = "gpio54";
450 function = "gpio";
451 drive-strength = <2>;
452 bias-pull-up;
453 };
454 };
455
456 beeper_pins: beeper_pins {
457 mux {
458 pins = "gpio55";
459 function = "gpio";
460 drive-strength = <2>;
461 bias-pull-up;
462 };
463 };
464
465 rpm_pins: rpm_pins {
466 mux {
467 pins = "gpio12", "gpio13";
468 function = "gsbi4";
469 drive-strength = <10>;
470 bias-disable;
471 };
472 };
473
474 uart0_pins: uart0_pins {
475 mux {
476 pins = "gpio10", "gpio11";
477 function = "gsbi4";
478 drive-strength = <10>;
479 bias-disable;
480 };
481 };
482
483 spi_pins: spi_pins {
484 mux {
485 pins = "gpio18", "gpio19";
486 function = "gsbi5";
487 drive-strength = <10>;
488 bias-pull-down;
489 };
490
491 clk {
492 pins = "gpio21";
493 function = "gsbi5";
494 drive-strength = <12>;
495 bias-pull-down;
496 };
497
498 cs {
499 pins = "gpio20";
500 function = "gpio";
501 drive-strength = <10>;
502 bias-pull-up;
503 };
504 };
505
506 nand_pins: nand_pins {
507 mux {
508 pins = "gpio34", "gpio35", "gpio36", "gpio37",
509 "gpio38", "gpio39", "gpio40", "gpio41",
510 "gpio42", "gpio43", "gpio44", "gpio45",
511 "gpio46", "gpio47";
512 function = "nand";
513 drive-strength = <10>;
514 bias-disable;
515 };
516
517 pullups {
518 pins = "gpio39";
519 bias-pull-up;
520 };
521
522 hold {
523 pins = "gpio40", "gpio41", "gpio42", "gpio43",
524 "gpio44", "gpio45", "gpio46", "gpio47";
525 bias-bus-hold;
526 };
527 };
528
529 mdio0_pins: mdio0_pins {
530 mux {
531 pins = "gpio0", "gpio1";
532 function = "gpio";
533 drive-strength = <8>;
534 bias-disable;
535 };
536 };
537
538 rgmii2_pins: rgmii2_pins {
539 mux {
540 pins = "gpio27", "gpio28", "gpio29", "gpio30",
541 "gpio31", "gpio32", "gpio51", "gpio52",
542 "gpio59", "gpio60", "gpio61", "gpio62";
543 function = "rgmii2";
544 drive-strength = <8>;
545 bias-disable;
546 };
547 };
548 };
549
550 &usb3_0 {
551 status = "okay";
552 };
553
554
555 &usb3_1 {
556 status = "okay";
557 };
558
559 &tcsr {
560 qcom,usb-ctrl-select = <TCSR_USB_SELECT_USB3_DUAL>;
561 };