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";
55 linux,code = <KEY_POWER>;
56 gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
61 reg_vdd_cpux: vdd-cpux-regulator {
62 compatible = "regulator-gpio";
63 regulator-name = "vdd-cpux";
64 regulator-type = "voltage";
67 regulator-min-microvolt = <1100000>;
68 regulator-max-microvolt = <1300000>;
69 regulator-ramp-delay = <50>; /* 4ms */
71 gpios = <&r_pio 0 1 GPIO_ACTIVE_HIGH>; /* PL1 */
74 states = <1100000 0>, <1300000 1>;
77 reg_vcc_dram: vcc-dram {
78 compatible = "regulator-fixed";
79 regulator-name = "vcc-dram";
80 regulator-min-microvolt = <1500000>;
81 regulator-max-microvolt = <1500000>;
85 gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */
86 vin-supply = <®_vcc5v0>;
90 compatible = "regulator-fixed";
91 regulator-name = "vcc1v2";
92 regulator-min-microvolt = <1200000>;
93 regulator-max-microvolt = <1200000>;
97 gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
98 vin-supply = <®_vcc5v0>;
102 compatible = "regulator-poweroff";
103 cpu-supply = <®_vcc1v2>;
106 wifi_pwrseq: wifi_pwrseq {
107 compatible = "mmc-pwrseq-simple";
108 reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
109 clocks = <&rtc CLK_OSC32K_FANOUT>;
110 clock-names = "ext_clock";
115 cpu-supply = <®_vdd_cpux>;
131 hdmi_out_con: endpoint {
132 remote-endpoint = <&hdmi_con_in>;
137 vmmc-supply = <®_vcc3v3>;
140 * On the production batch of this board the card detect GPIO is
141 * high active (card inserted), although on the early samples it's
144 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
149 vmmc-supply = <®_vcc3v3>;
150 vqmmc-supply = <®_vcc3v3>;
151 mmc-pwrseq = <&wifi_pwrseq>;
158 compatible = "brcm,bcm4329-fmac";
159 interrupt-parent = <&pio>;
160 interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */
161 interrupt-names = "host-wake";
170 pinctrl-names = "default";
171 pinctrl-0 = <&uart0_pa_pins>;
176 pinctrl-names = "default";
177 pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
182 compatible = "brcm,bcm43438-bt";
183 max-speed = <1500000>;
184 clocks = <&rtc CLK_OSC32K_FANOUT>;
186 vbat-supply = <®_vcc3v3>;
187 vddio-supply = <®_vcc3v3>;
188 device-wakeup-gpios = <&pio 6 13 GPIO_ACTIVE_HIGH>; /* PG13 */
189 host-wakeup-gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
190 shutdown-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
198 "CON2-P13", "CON2-P11", "CON2-P22", "CON2-P15",
199 "CON3-P03", "CON3-P02", "CON2-P07", "CON2-P29",
200 "CON2-P31", "CON2-P33", "CON2-P35", "CON2-P05",
201 "CON2-P03", "CON2-P08", "CON2-P10", "CON2-P16",
202 "CON2-P12", "CON2-P37", "CON2-P28", "CON2-P27",
203 "CON2-P40", "CON2-P38", "", "",
204 "", "", "", "", "", "", "", "",
207 "", "", "", "", "", "", "", "",
208 "", "", "", "", "", "", "", "",
209 "", "", "", "", "", "", "", "",
210 "", "", "", "", "", "", "", "",
213 "CON2-P19", "CON2-P21", "CON2-P23", "CON2-P24",
214 "CON2-P18", "", "", "CON2-P26",
215 "", "", "", "", "", "", "", "",
216 "", "", "", "", "", "", "", "",
217 "", "", "", "", "", "", "", "",
220 "", "", "", "", "", "", "", "",
221 "", "", "", "", "", "", "CSI-PWR-EN", "",
222 "", "", "", "", "", "", "", "",
223 "", "", "", "", "", "", "", "",
226 "CN3-P17", "CN3-P13", "CN3-P09", "CN3-P07",
227 "CN3-P19", "CN3-P21", "CN3-P22", "CN3-P20",
228 "CN3-P18", "CN3-P16", "CN3-P14", "CN3-P12",
229 "CN3-P05", "CN3-P03", "CN3-P06", "CN3-P08",
230 "", "", "", "", "", "", "", "",
231 "", "", "", "", "", "", "", "",
234 "SDC0-D1", "SDC0-D0", "SDC0-CLK", "SDC0-CMD", "SDC0-D3",
235 "SDC0-D2", "SDC0-DET", "",
236 "", "", "", "", "", "", "", "",
237 "", "", "", "", "", "", "", "",
238 "", "", "", "", "", "", "", "",
241 "WL-SDIO-CLK", "WL-SDIO-CMD", "WL-SDIO-D0", "WL-SDIO-D1",
242 "WL-SDIO-D2", "WL-SDIO-D3", "BT-UART-TX", "BT-UART-RX",
243 "BT-UART-RTS", "BT-UART-CTS", "WL-WAKE-AP", "BT-WAKE-AP",
244 "BT-RST-N", "AP-WAKE-BT", "", "",
245 "", "", "", "", "", "", "", "",
246 "", "", "", "", "", "", "", "";
252 "", "CPUX-SET", "CON2-P32", "POWER-KEY", "CON2-P36",
253 "VCC-IO-EN", "USB0-ID", "WL-PWR-EN",
254 "PWR-STB", "PWR-DRAM", "PWR-LED", "IR-RX", "", "", "", "",
255 "", "", "", "", "", "", "", "",
256 "", "", "", "", "", "", "", "";
265 usb0_id_det-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
267 * There're two micro-USB connectors, one is power-only and another is
268 * OTG. The Vbus of these two connectors are connected together, so
269 * the external USB device will be powered just by the power input
270 * from the power-only USB port.