1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
3 * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io>
5 * Based on sun8i-h3-bananapi-m2-plus.dts, which is:
6 * Copyright (C) 2016 Chen-Yu Tsai <wens@csie.org>
10 #include "sun8i-h3.dtsi"
11 #include "sunxi-common-regulators.dtsi"
13 #include <dt-bindings/gpio/gpio.h>
14 #include <dt-bindings/input/input.h>
17 model = "Banana Pi BPI-M2-Zero";
18 compatible = "sinovoip,bpi-m2-zero", "allwinner,sun8i-h2-plus";
26 stdout-path = "serial0:115200n8";
30 compatible = "hdmi-connector";
34 hdmi_con_in: endpoint {
35 remote-endpoint = <&hdmi_out_con>;
41 compatible = "gpio-leds";
44 label = "bananapi-m2-zero:red:pwr";
45 gpios = <&r_pio 0 10 GPIO_ACTIVE_LOW>; /* PL10 */
51 compatible = "gpio-keys";
56 gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
60 reg_vdd_cpux: vdd-cpux-regulator {
61 compatible = "regulator-gpio";
62 regulator-name = "vdd-cpux";
63 regulator-type = "voltage";
66 regulator-min-microvolt = <1100000>;
67 regulator-max-microvolt = <1300000>;
68 regulator-ramp-delay = <50>; /* 4ms */
70 gpios = <&r_pio 0 1 GPIO_ACTIVE_HIGH>; /* PL1 */
73 states = <1100000 0>, <1300000 1>;
76 reg_vcc_dram: vcc-dram {
77 compatible = "regulator-fixed";
78 regulator-name = "vcc-dram";
79 regulator-min-microvolt = <1500000>;
80 regulator-max-microvolt = <1500000>;
84 gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */
85 vin-supply = <®_vcc5v0>;
89 compatible = "regulator-fixed";
90 regulator-name = "vcc1v2";
91 regulator-min-microvolt = <1200000>;
92 regulator-max-microvolt = <1200000>;
96 gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
97 vin-supply = <®_vcc5v0>;
101 compatible = "regulator-poweroff";
102 cpu-supply = <®_vcc1v2>;
105 wifi_pwrseq: wifi_pwrseq {
106 compatible = "mmc-pwrseq-simple";
107 reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
109 clock-names = "ext_clock";
114 cpu-supply = <®_vdd_cpux>;
130 hdmi_out_con: endpoint {
131 remote-endpoint = <&hdmi_con_in>;
136 vmmc-supply = <®_vcc3v3>;
139 * On the production batch of this board the card detect GPIO is
140 * high active (card inserted), although on the early samples it's
143 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
148 vmmc-supply = <®_vcc3v3>;
149 vqmmc-supply = <®_vcc3v3>;
150 mmc-pwrseq = <&wifi_pwrseq>;
157 compatible = "brcm,bcm4329-fmac";
158 interrupt-parent = <&pio>;
159 interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */
160 interrupt-names = "host-wake";
169 pinctrl-names = "default";
170 pinctrl-0 = <&uart0_pa_pins>;
175 pinctrl-names = "default";
176 pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
181 compatible = "brcm,bcm43438-bt";
182 max-speed = <1500000>;
185 vbat-supply = <®_vcc3v3>;
186 vddio-supply = <®_vcc3v3>;
187 device-wakeup-gpios = <&pio 6 13 GPIO_ACTIVE_HIGH>; /* PG13 */
188 host-wakeup-gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
189 shutdown-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
197 "CON2-P13", "CON2-P11", "CON2-P22", "CON2-P15",
198 "CON3-P03", "CON3-P02", "CON2-P07", "CON2-P29",
199 "CON2-P31", "CON2-P33", "CON2-P35", "CON2-P05",
200 "CON2-P03", "CON2-P08", "CON2-P10", "CON2-P16",
201 "CON2-P12", "CON2-P37", "CON2-P28", "CON2-P27",
202 "CON2-P40", "CON2-P38", "", "",
203 "", "", "", "", "", "", "", "",
206 "", "", "", "", "", "", "", "",
207 "", "", "", "", "", "", "", "",
208 "", "", "", "", "", "", "", "",
209 "", "", "", "", "", "", "", "",
212 "CON2-P19", "CON2-P21", "CON2-P23", "CON2-P24",
213 "CON2-P18", "", "", "CON2-P26",
214 "", "", "", "", "", "", "", "",
215 "", "", "", "", "", "", "", "",
216 "", "", "", "", "", "", "", "",
219 "", "", "", "", "", "", "", "",
220 "", "", "", "", "", "", "CSI-PWR-EN", "",
221 "", "", "", "", "", "", "", "",
222 "", "", "", "", "", "", "", "",
225 "CN3-P17", "CN3-P13", "CN3-P09", "CN3-P07",
226 "CN3-P19", "CN3-P21", "CN3-P22", "CN3-P20",
227 "CN3-P18", "CN3-P16", "CN3-P14", "CN3-P12",
228 "CN3-P05", "CN3-P03", "CN3-P06", "CN3-P08",
229 "", "", "", "", "", "", "", "",
230 "", "", "", "", "", "", "", "",
233 "SDC0-D1", "SDC0-D0", "SDC0-CLK", "SDC0-CMD", "SDC0-D3",
234 "SDC0-D2", "SDC0-DET", "",
235 "", "", "", "", "", "", "", "",
236 "", "", "", "", "", "", "", "",
237 "", "", "", "", "", "", "", "",
240 "WL-SDIO-CLK", "WL-SDIO-CMD", "WL-SDIO-D0", "WL-SDIO-D1",
241 "WL-SDIO-D2", "WL-SDIO-D3", "BT-UART-TX", "BT-UART-RX",
242 "BT-UART-RTS", "BT-UART-CTS", "WL-WAKE-AP", "BT-WAKE-AP",
243 "BT-RST-N", "AP-WAKE-BT", "", "",
244 "", "", "", "", "", "", "", "",
245 "", "", "", "", "", "", "", "";
251 "", "CPUX-SET", "CON2-P32", "POWER-KEY", "CON2-P36",
252 "VCC-IO-EN", "USB0-ID", "WL-PWR-EN",
253 "PWR-STB", "PWR-DRAM", "PWR-LED", "IR-RX", "", "", "", "",
254 "", "", "", "", "", "", "", "",
255 "", "", "", "", "", "", "", "";
264 usb0_id_det-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
266 * There're two micro-USB connectors, one is power-only and another is
267 * OTG. The Vbus of these two connectors are connected together, so
268 * the external USB device will be powered just by the power input
269 * from the power-only USB port.