2 * Copyright (c) 2018 MediaTek Inc.
3 * Author: Ryder Lee <ryder.lee@mediatek.com>
5 * SPDX-License-Identifier: (GPL-2.0 OR MIT)
9 #include <dt-bindings/input/input.h>
10 #include <dt-bindings/gpio/gpio.h>
12 #include "mt7622.dtsi"
13 #include "mt6380.dtsi"
16 model = "Bananapi BPI-R64";
17 compatible = "bananapi,bpi-r64", "mediatek,mt7622";
24 stdout-path = "serial0:115200n8";
25 bootargs = "earlycon=uart8250,mmio32,0x11002000 swiotlb=512";
30 proc-supply = <&mt6380_vcpu_reg>;
31 sram-supply = <&mt6380_vm_reg>;
35 proc-supply = <&mt6380_vcpu_reg>;
36 sram-supply = <&mt6380_vm_reg>;
41 compatible = "gpio-keys";
46 gpios = <&pio 0 GPIO_ACTIVE_HIGH>;
51 linux,code = <KEY_WPS_BUTTON>;
52 gpios = <&pio 102 GPIO_ACTIVE_HIGH>;
57 compatible = "gpio-leds";
60 label = "bpi-r64:pio:green";
61 gpios = <&pio 89 GPIO_ACTIVE_HIGH>;
62 default-state = "off";
66 label = "bpi-r64:pio:red";
67 gpios = <&pio 88 GPIO_ACTIVE_HIGH>;
68 default-state = "off";
73 reg = <0 0x40000000 0 0x40000000>;
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>;
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>;
93 reg_5v: regulator-5v {
94 compatible = "regulator-fixed";
95 regulator-name = "fixed-5V";
96 regulator-min-microvolt = <5000000>;
97 regulator-max-microvolt = <5000000>;
112 pinctrl-names = "default";
113 pinctrl-0 = <&irrx_pins>;
118 pinctrl-names = "default";
119 pinctrl-0 = <ð_pins>;
123 compatible = "mediatek,eth-mac";
125 phy-handle = <&phy5>;
129 #address-cells = <1>;
132 phy5: ethernet-phy@5 {
140 pinctrl-names = "default";
141 pinctrl-0 = <&i2c1_pins>;
146 pinctrl-names = "default";
147 pinctrl-0 = <&i2c2_pins>;
152 pinctrl-names = "default", "state_uhs";
153 pinctrl-0 = <&emmc_pins_default>;
154 pinctrl-1 = <&emmc_pins_uhs>;
157 max-frequency = <50000000>;
160 vmmc-supply = <®_3p3v>;
161 vqmmc-supply = <®_1p8v>;
162 assigned-clocks = <&topckgen CLK_TOP_MSDC30_0_SEL>;
163 assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
168 pinctrl-names = "default", "state_uhs";
169 pinctrl-0 = <&sd0_pins_default>;
170 pinctrl-1 = <&sd0_pins_uhs>;
173 max-frequency = <50000000>;
176 cd-gpios = <&pio 81 GPIO_ACTIVE_LOW>;
177 vmmc-supply = <®_3p3v>;
178 vqmmc-supply = <®_3p3v>;
179 assigned-clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>;
180 assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
184 pinctrl-names = "default";
185 pinctrl-0 = <¶llel_nand_pins>;
190 pinctrl-names = "default";
191 pinctrl-0 = <&spi_nor_pins>;
195 compatible = "jedec,spi-nor";
201 pinctrl-names = "default";
202 pinctrl-0 = <&pcie0_pins>, <&pcie1_pins>;
215 /* Attention: GPIO 90 is used to switch between PCIe@1,0 and
216 * SATA functions. i.e. output-high: PCIe, output-low: SATA
220 gpios = <90 GPIO_ACTIVE_HIGH>;
224 /* eMMC is shared pin with parallel NAND */
225 emmc_pins_default: emmc-pins-default {
227 function = "emmc", "emmc_rst";
231 /* "NDL0","NDL1","NDL2","NDL3","NDL4","NDL5","NDL6","NDL7",
232 * "NRB","NCLE" pins are used as DAT0,DAT1,DAT2,DAT3,DAT4,
233 * DAT5,DAT6,DAT7,CMD,CLK for eMMC respectively
236 pins = "NDL0", "NDL1", "NDL2",
237 "NDL3", "NDL4", "NDL5",
238 "NDL6", "NDL7", "NRB";
249 emmc_pins_uhs: emmc-pins-uhs {
256 pins = "NDL0", "NDL1", "NDL2",
257 "NDL3", "NDL4", "NDL5",
258 "NDL6", "NDL7", "NRB";
260 drive-strength = <4>;
266 drive-strength = <4>;
274 groups = "mdc_mdio", "rgmii_via_gmac2";
278 i2c1_pins: i2c1-pins {
285 i2c2_pins: i2c2-pins {
292 i2s1_pins: i2s1-pins {
295 groups = "i2s_out_mclk_bclk_ws",
301 pins = "I2S1_IN", "I2S1_OUT", "I2S_BCLK",
302 "I2S_WS", "I2S_MCLK";
303 drive-strength = <12>;
308 irrx_pins: irrx-pins {
315 irtx_pins: irtx-pins {
322 /* Parallel nand is shared pin with eMMC */
323 parallel_nand_pins: parallel-nand-pins {
330 pcie0_pins: pcie0-pins {
333 groups = "pcie0_pad_perst",
339 pcie1_pins: pcie1-pins {
342 groups = "pcie1_pad_perst",
348 pmic_bus_pins: pmic-bus-pins {
355 pwm7_pins: pwm1-2-pins {
358 groups = "pwm_ch7_2";
362 wled_pins: wled-pins {
369 sd0_pins_default: sd0-pins-default {
375 /* "I2S2_OUT, "I2S4_IN"", "I2S3_IN", "I2S2_IN",
376 * "I2S4_OUT", "I2S3_OUT" are used as DAT0, DAT1,
377 * DAT2, DAT3, CMD, CLK for SD respectively.
380 pins = "I2S2_OUT", "I2S4_IN", "I2S3_IN",
381 "I2S2_IN","I2S4_OUT";
383 drive-strength = <8>;
388 drive-strength = <12>;
397 sd0_pins_uhs: sd0-pins-uhs {
404 pins = "I2S2_OUT", "I2S4_IN", "I2S3_IN",
405 "I2S2_IN","I2S4_OUT";
416 /* Serial NAND is shared pin with SPI-NOR */
417 serial_nand_pins: serial-nand-pins {
424 spic0_pins: spic0-pins {
431 spic1_pins: spic1-pins {
438 /* SPI-NOR is shared pin with serial NAND */
439 spi_nor_pins: spi-nor-pins {
446 /* serial NAND is shared pin with SPI-NOR */
447 serial_nand_pins: serial-nand-pins {
454 uart0_pins: uart0-pins {
457 groups = "uart0_0_tx_rx" ;
461 uart2_pins: uart2-pins {
464 groups = "uart2_1_tx_rx" ;
468 watchdog_pins: watchdog-pins {
470 function = "watchdog";
477 pinctrl-names = "default";
478 pinctrl-0 = <&pwm7_pins>;
483 pinctrl-names = "default";
484 pinctrl-0 = <&pmic_bus_pins>;
498 pinctrl-names = "default";
499 pinctrl-0 = <&spic0_pins>;
504 pinctrl-names = "default";
505 pinctrl-0 = <&spic1_pins>;
510 vusb33-supply = <®_3p3v>;
511 vbus-supply = <®_5v>;
520 pinctrl-names = "default";
521 pinctrl-0 = <&uart0_pins>;
526 pinctrl-names = "default";
527 pinctrl-0 = <&uart2_pins>;
532 pinctrl-names = "default";
533 pinctrl-0 = <&watchdog_pins>;