163886760491ce4ac3540ab015cae1656b646cd8
[openwrt/staging/hauke.git] / target / linux / mediatek / files-5.4 / arch / arm64 / boot / dts / mediatek / mt7622-bananapi-bpi-r64-rootdisk.dts
1 /*
2 * Copyright (c) 2018 MediaTek Inc.
3 * Author: Ryder Lee <ryder.lee@mediatek.com>
4 *
5 * SPDX-License-Identifier: (GPL-2.0 OR MIT)
6 */
7
8 /dts-v1/;
9 #include <dt-bindings/input/input.h>
10 #include <dt-bindings/gpio/gpio.h>
11
12 #include "mt7622.dtsi"
13 #include "mt6380.dtsi"
14
15 / {
16 model = "Bananapi BPI-R64";
17 compatible = "bananapi,bpi-r64-rootdisk", "mediatek,mt7622";
18
19 aliases {
20 serial0 = &uart0;
21 };
22
23 chosen {
24 stdout-path = "serial0:115200n8";
25 bootargs = "earlycon=uart8250,mmio32,0x11002000 console=ttyS0,115200n1 swiotlb=512 root=/dev/mmcblk0p7 rootfstype=squashfs,f2fs";
26 };
27
28 cpus {
29 cpu@0 {
30 proc-supply = <&mt6380_vcpu_reg>;
31 sram-supply = <&mt6380_vm_reg>;
32 };
33
34 cpu@1 {
35 proc-supply = <&mt6380_vcpu_reg>;
36 sram-supply = <&mt6380_vm_reg>;
37 };
38 };
39
40 gpio-keys {
41 compatible = "gpio-keys";
42
43 factory {
44 label = "factory";
45 linux,code = <BTN_0>;
46 gpios = <&pio 0 GPIO_ACTIVE_HIGH>;
47 };
48
49 wps {
50 label = "wps";
51 linux,code = <KEY_WPS_BUTTON>;
52 gpios = <&pio 102 GPIO_ACTIVE_HIGH>;
53 };
54 };
55
56 leds {
57 compatible = "gpio-leds";
58
59 green {
60 label = "bpi-r64:pio:green";
61 gpios = <&pio 89 GPIO_ACTIVE_HIGH>;
62 default-state = "off";
63 };
64
65 red {
66 label = "bpi-r64:pio:red";
67 gpios = <&pio 88 GPIO_ACTIVE_HIGH>;
68 default-state = "off";
69 };
70 };
71
72 memory {
73 reg = <0 0x40000000 0 0x40000000>;
74 };
75
76 reg_1p8v: regulator-1p8v {
77 compatible = "regulator-fixed";
78 regulator-name = "fixed-1.8V";
79 regulator-min-microvolt = <1800000>;
80 regulator-max-microvolt = <1800000>;
81 regulator-always-on;
82 };
83
84 reg_3p3v: regulator-3p3v {
85 compatible = "regulator-fixed";
86 regulator-name = "fixed-3.3V";
87 regulator-min-microvolt = <3300000>;
88 regulator-max-microvolt = <3300000>;
89 regulator-boot-on;
90 regulator-always-on;
91 };
92
93 reg_5v: regulator-5v {
94 compatible = "regulator-fixed";
95 regulator-name = "fixed-5V";
96 regulator-min-microvolt = <5000000>;
97 regulator-max-microvolt = <5000000>;
98 regulator-boot-on;
99 regulator-always-on;
100 };
101 };
102
103 &bch {
104 status = "disabled";
105 };
106
107 &btif {
108 status = "okay";
109 };
110
111 &cir {
112 pinctrl-names = "default";
113 pinctrl-0 = <&irrx_pins>;
114 status = "okay";
115 };
116
117 &eth {
118 status = "okay";
119 gmac0: mac@0 {
120 compatible = "mediatek,eth-mac";
121 reg = <0>;
122 phy-mode = "2500base-x";
123
124 fixed-link {
125 speed = <2500>;
126 full-duplex;
127 pause;
128 };
129 };
130
131 gmac1: mac@1 {
132 compatible = "mediatek,eth-mac";
133 reg = <1>;
134 phy-mode = "rgmii";
135
136 fixed-link {
137 speed = <1000>;
138 full-duplex;
139 pause;
140 };
141 };
142
143 mdio: mdio-bus {
144 #address-cells = <1>;
145 #size-cells = <0>;
146
147 switch@1f {
148 compatible = "mediatek,mt7531";
149 reg = <0x1f>;
150 reset-gpios = <&pio 54 0>;
151
152 ports {
153 #address-cells = <1>;
154 #size-cells = <0>;
155
156 wan: port@0 {
157 reg = <0>;
158 label = "wan";
159 };
160
161 port@1 {
162 reg = <1>;
163 label = "lan0";
164 };
165
166 port@2 {
167 reg = <2>;
168 label = "lan1";
169 };
170
171 port@3 {
172 reg = <3>;
173 label = "lan2";
174 };
175
176 port@4 {
177 reg = <4>;
178 label = "lan3";
179 };
180
181 port@6 {
182 reg = <6>;
183 label = "cpu";
184 ethernet = <&gmac0>;
185 phy-mode = "2500base-x";
186
187 fixed-link {
188 speed = <2500>;
189 full-duplex;
190 pause;
191 };
192 };
193 };
194 };
195
196 };
197 };
198
199 &i2c1 {
200 pinctrl-names = "default";
201 pinctrl-0 = <&i2c1_pins>;
202 status = "okay";
203 };
204
205 &i2c2 {
206 pinctrl-names = "default";
207 pinctrl-0 = <&i2c2_pins>;
208 status = "okay";
209 };
210
211 &mmc0 {
212 pinctrl-names = "default", "state_uhs";
213 pinctrl-0 = <&emmc_pins_default>;
214 pinctrl-1 = <&emmc_pins_uhs>;
215 status = "okay";
216 bus-width = <8>;
217 max-frequency = <50000000>;
218 cap-mmc-highspeed;
219 mmc-hs200-1_8v;
220 vmmc-supply = <&reg_3p3v>;
221 vqmmc-supply = <&reg_1p8v>;
222 assigned-clocks = <&topckgen CLK_TOP_MSDC30_0_SEL>;
223 assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
224 non-removable;
225 };
226
227 &mmc1 {
228 pinctrl-names = "default", "state_uhs";
229 pinctrl-0 = <&sd0_pins_default>;
230 pinctrl-1 = <&sd0_pins_uhs>;
231 status = "okay";
232 bus-width = <4>;
233 max-frequency = <50000000>;
234 cap-sd-highspeed;
235 r_smpl = <1>;
236 cd-gpios = <&pio 81 GPIO_ACTIVE_LOW>;
237 vmmc-supply = <&reg_3p3v>;
238 vqmmc-supply = <&reg_3p3v>;
239 assigned-clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>;
240 assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
241 };
242
243 &nandc {
244 pinctrl-names = "default";
245 pinctrl-0 = <&parallel_nand_pins>;
246 status = "disabled";
247 };
248
249 &nor_flash {
250 pinctrl-names = "default";
251 pinctrl-0 = <&spi_nor_pins>;
252 status = "disabled";
253
254 flash@0 {
255 compatible = "jedec,spi-nor";
256 reg = <0>;
257 };
258 };
259
260 &pcie0 {
261 pinctrl-names = "default";
262 pinctrl-0 = <&pcie0_pins>;
263 status = "okay";
264 };
265
266 &pcie1 {
267 pinctrl-names = "default";
268 pinctrl-0 = <&pcie1_pins>;
269 status = "okay";
270 };
271
272 &pio {
273 /* Attention: GPIO 90 is used to switch between PCIe@1,0 and
274 * SATA functions. i.e. output-high: PCIe, output-low: SATA
275 */
276 asm_sel {
277 gpio-hog;
278 gpios = <90 GPIO_ACTIVE_HIGH>;
279 output-high;
280 };
281
282 /* eMMC is shared pin with parallel NAND */
283 emmc_pins_default: emmc-pins-default {
284 mux {
285 function = "emmc", "emmc_rst";
286 groups = "emmc";
287 };
288
289 /* "NDL0","NDL1","NDL2","NDL3","NDL4","NDL5","NDL6","NDL7",
290 * "NRB","NCLE" pins are used as DAT0,DAT1,DAT2,DAT3,DAT4,
291 * DAT5,DAT6,DAT7,CMD,CLK for eMMC respectively
292 */
293 conf-cmd-dat {
294 pins = "NDL0", "NDL1", "NDL2",
295 "NDL3", "NDL4", "NDL5",
296 "NDL6", "NDL7", "NRB";
297 input-enable;
298 bias-pull-up;
299 };
300
301 conf-clk {
302 pins = "NCLE";
303 bias-pull-down;
304 };
305 };
306
307 emmc_pins_uhs: emmc-pins-uhs {
308 mux {
309 function = "emmc";
310 groups = "emmc";
311 };
312
313 conf-cmd-dat {
314 pins = "NDL0", "NDL1", "NDL2",
315 "NDL3", "NDL4", "NDL5",
316 "NDL6", "NDL7", "NRB";
317 input-enable;
318 drive-strength = <4>;
319 bias-pull-up;
320 };
321
322 conf-clk {
323 pins = "NCLE";
324 drive-strength = <4>;
325 bias-pull-down;
326 };
327 };
328
329 eth_pins: eth-pins {
330 mux {
331 function = "eth";
332 groups = "mdc_mdio", "rgmii_via_gmac2";
333 };
334 };
335
336 i2c1_pins: i2c1-pins {
337 mux {
338 function = "i2c";
339 groups = "i2c1_0";
340 };
341 };
342
343 i2c2_pins: i2c2-pins {
344 mux {
345 function = "i2c";
346 groups = "i2c2_0";
347 };
348 };
349
350 i2s1_pins: i2s1-pins {
351 mux {
352 function = "i2s";
353 groups = "i2s_out_mclk_bclk_ws",
354 "i2s1_in_data",
355 "i2s1_out_data";
356 };
357
358 conf {
359 pins = "I2S1_IN", "I2S1_OUT", "I2S_BCLK",
360 "I2S_WS", "I2S_MCLK";
361 drive-strength = <12>;
362 bias-pull-down;
363 };
364 };
365
366 irrx_pins: irrx-pins {
367 mux {
368 function = "ir";
369 groups = "ir_1_rx";
370 };
371 };
372
373 irtx_pins: irtx-pins {
374 mux {
375 function = "ir";
376 groups = "ir_1_tx";
377 };
378 };
379
380 /* Parallel nand is shared pin with eMMC */
381 parallel_nand_pins: parallel-nand-pins {
382 mux {
383 function = "flash";
384 groups = "par_nand";
385 };
386 };
387
388 pcie0_pins: pcie0-pins {
389 mux {
390 function = "pcie";
391 groups = "pcie0_pad_perst",
392 "pcie0_1_waken",
393 "pcie0_1_clkreq";
394 };
395 };
396
397 pcie1_pins: pcie1-pins {
398 mux {
399 function = "pcie";
400 groups = "pcie1_pad_perst",
401 "pcie1_0_waken",
402 "pcie1_0_clkreq";
403 };
404 };
405
406 pmic_bus_pins: pmic-bus-pins {
407 mux {
408 function = "pmic";
409 groups = "pmic_bus";
410 };
411 };
412
413 pwm7_pins: pwm1-2-pins {
414 mux {
415 function = "pwm";
416 groups = "pwm_ch7_2";
417 };
418 };
419
420 wled_pins: wled-pins {
421 mux {
422 function = "led";
423 groups = "wled";
424 };
425 };
426
427 sd0_pins_default: sd0-pins-default {
428 mux {
429 function = "sd";
430 groups = "sd_0";
431 };
432
433 /* "I2S2_OUT, "I2S4_IN"", "I2S3_IN", "I2S2_IN",
434 * "I2S4_OUT", "I2S3_OUT" are used as DAT0, DAT1,
435 * DAT2, DAT3, CMD, CLK for SD respectively.
436 */
437 conf-cmd-data {
438 pins = "I2S2_OUT", "I2S4_IN", "I2S3_IN",
439 "I2S2_IN","I2S4_OUT";
440 input-enable;
441 drive-strength = <8>;
442 bias-pull-up;
443 };
444 conf-clk {
445 pins = "I2S3_OUT";
446 drive-strength = <12>;
447 bias-pull-down;
448 };
449 conf-cd {
450 pins = "TXD3";
451 bias-pull-up;
452 };
453 };
454
455 sd0_pins_uhs: sd0-pins-uhs {
456 mux {
457 function = "sd";
458 groups = "sd_0";
459 };
460
461 conf-cmd-data {
462 pins = "I2S2_OUT", "I2S4_IN", "I2S3_IN",
463 "I2S2_IN","I2S4_OUT";
464 input-enable;
465 bias-pull-up;
466 };
467
468 conf-clk {
469 pins = "I2S3_OUT";
470 bias-pull-down;
471 };
472 };
473
474 /* Serial NAND is shared pin with SPI-NOR */
475 serial_nand_pins: serial-nand-pins {
476 mux {
477 function = "flash";
478 groups = "snfi";
479 };
480 };
481
482 spic0_pins: spic0-pins {
483 mux {
484 function = "spi";
485 groups = "spic0_0";
486 };
487 };
488
489 spic1_pins: spic1-pins {
490 mux {
491 function = "spi";
492 groups = "spic1_0";
493 };
494 };
495
496 /* SPI-NOR is shared pin with serial NAND */
497 spi_nor_pins: spi-nor-pins {
498 mux {
499 function = "flash";
500 groups = "spi_nor";
501 };
502 };
503
504 /* serial NAND is shared pin with SPI-NOR */
505 serial_nand_pins: serial-nand-pins {
506 mux {
507 function = "flash";
508 groups = "snfi";
509 };
510 };
511
512 uart0_pins: uart0-pins {
513 mux {
514 function = "uart";
515 groups = "uart0_0_tx_rx" ;
516 };
517 };
518
519 uart2_pins: uart2-pins {
520 mux {
521 function = "uart";
522 groups = "uart2_1_tx_rx" ;
523 };
524 };
525
526 watchdog_pins: watchdog-pins {
527 mux {
528 function = "watchdog";
529 groups = "watchdog";
530 };
531 };
532 };
533
534 &pwm {
535 pinctrl-names = "default";
536 pinctrl-0 = <&pwm7_pins>;
537 status = "okay";
538 };
539
540 &pwrap {
541 pinctrl-names = "default";
542 pinctrl-0 = <&pmic_bus_pins>;
543
544 status = "okay";
545 };
546
547 &sata {
548 status = "disable";
549 };
550
551 &sata_phy {
552 status = "disable";
553 };
554
555 &spi0 {
556 pinctrl-names = "default";
557 pinctrl-0 = <&spic0_pins>;
558 status = "okay";
559 };
560
561 &spi1 {
562 pinctrl-names = "default";
563 pinctrl-0 = <&spic1_pins>;
564 status = "okay";
565 };
566
567 &ssusb {
568 vusb33-supply = <&reg_3p3v>;
569 vbus-supply = <&reg_5v>;
570 status = "okay";
571 };
572
573 &u3phy {
574 status = "okay";
575 };
576
577 &uart0 {
578 pinctrl-names = "default";
579 pinctrl-0 = <&uart0_pins>;
580 status = "okay";
581 };
582
583 &uart2 {
584 pinctrl-names = "default";
585 pinctrl-0 = <&uart2_pins>;
586 status = "okay";
587 };
588
589 &watchdog {
590 pinctrl-names = "default";
591 pinctrl-0 = <&watchdog_pins>;
592 status = "okay";
593 };