1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 // Copyright (c) 2016 ARM Ltd.
6 #include "sun50i-a64.dtsi"
7 #include "sun50i-a64-cpu-opp.dtsi"
9 #include <dt-bindings/gpio/gpio.h>
12 model = "BananaPi-M64";
13 compatible = "sinovoip,bananapi-m64", "allwinner,sun50i-a64";
22 stdout-path = "serial0:115200n8";
26 compatible = "hdmi-connector";
30 hdmi_con_in: endpoint {
31 remote-endpoint = <&hdmi_out_con>;
37 compatible = "gpio-leds";
40 label = "bananapi-m64:red:pwr";
41 gpios = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */
46 label = "bananapi-m64:green:user";
47 gpios = <&pio 4 14 GPIO_ACTIVE_HIGH>; /* PE14 */
51 label = "bananapi-m64:blue:user";
52 gpios = <&pio 4 15 GPIO_ACTIVE_HIGH>; /* PE15 */
56 wifi_pwrseq: wifi_pwrseq {
57 compatible = "mmc-pwrseq-simple";
58 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
60 clock-names = "ext_clock";
69 cpvdd-supply = <®_eldo1>;
74 cpu-supply = <®_dcdc2>;
78 cpu-supply = <®_dcdc2>;
82 cpu-supply = <®_dcdc2>;
86 cpu-supply = <®_dcdc2>;
106 pinctrl-names = "default";
107 pinctrl-0 = <&rgmii_pins>;
108 phy-mode = "rgmii-id";
109 phy-handle = <&ext_rgmii_phy>;
110 phy-supply = <®_dc1sw>;
115 hvcc-supply = <®_dldo1>;
120 hdmi_out_con: endpoint {
121 remote-endpoint = <&hdmi_con_in>;
134 ext_rgmii_phy: ethernet-phy@1 {
135 compatible = "ethernet-phy-ieee802.3-c22";
141 pinctrl-names = "default";
142 pinctrl-0 = <&mmc0_pins>;
143 vmmc-supply = <®_dcdc1>;
144 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
151 pinctrl-names = "default";
152 pinctrl-0 = <&mmc1_pins>;
153 vmmc-supply = <®_dldo2>;
154 vqmmc-supply = <®_dldo4>;
155 mmc-pwrseq = <&wifi_pwrseq>;
162 compatible = "brcm,bcm4329-fmac";
163 interrupt-parent = <&r_pio>;
164 interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */
165 interrupt-names = "host-wake";
170 pinctrl-names = "default";
171 pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>;
172 vmmc-supply = <®_dcdc1>;
191 compatible = "x-powers,axp803";
193 interrupt-parent = <&r_intc>;
194 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
195 x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */
199 #include "axp803.dtsi"
205 &battery_power_supply {
211 * This regulator also drives the PE pingroup GPIOs,
212 * which also controls two LEDs.
215 regulator-min-microvolt = <2800000>;
216 regulator-max-microvolt = <2800000>;
217 regulator-name = "afvcc-csi";
222 regulator-min-microvolt = <1800000>;
223 regulator-max-microvolt = <3300000>;
224 regulator-name = "vcc-pl";
229 regulator-min-microvolt = <3000000>;
230 regulator-max-microvolt = <3000000>;
231 regulator-name = "vcc-pll-avcc";
236 * This regulator also indirectly drives the PD pingroup GPIOs,
237 * which also controls the power LED.
240 regulator-name = "vcc-phy";
245 regulator-min-microvolt = <3300000>;
246 regulator-max-microvolt = <3300000>;
247 regulator-name = "vcc-3v3";
252 regulator-min-microvolt = <1040000>;
253 regulator-max-microvolt = <1300000>;
254 regulator-name = "vdd-cpux";
257 /* DCDC3 is polyphased with DCDC2 */
261 regulator-min-microvolt = <1500000>;
262 regulator-max-microvolt = <1500000>;
263 regulator-name = "vcc-dram";
268 regulator-min-microvolt = <1100000>;
269 regulator-max-microvolt = <1100000>;
270 regulator-name = "vdd-sys";
274 regulator-min-microvolt = <3300000>;
275 regulator-max-microvolt = <3300000>;
276 regulator-name = "vcc-hdmi-dsi";
280 regulator-min-microvolt = <3300000>;
281 regulator-max-microvolt = <3300000>;
282 regulator-name = "vcc-wifi";
286 regulator-min-microvolt = <1800000>;
287 regulator-max-microvolt = <3300000>;
288 regulator-name = "vcc-wifi-io";
292 regulator-name = "usb0-vbus";
297 regulator-min-microvolt = <1800000>;
298 regulator-max-microvolt = <1800000>;
299 regulator-name = "cpvdd";
303 regulator-min-microvolt = <1200000>;
304 regulator-max-microvolt = <1200000>;
305 regulator-name = "vcc-1v2-hsic";
309 * The A64 chip cannot work without this regulator off, although
310 * it seems to be only driving the AR100 core.
311 * Maybe we don't still know well about CPUs domain.
315 regulator-min-microvolt = <1100000>;
316 regulator-max-microvolt = <1100000>;
317 regulator-name = "vdd-cpus";
321 regulator-name = "vcc-rtc";
325 vcc-hdmi-supply = <®_dldo1>;
330 simple-audio-card,widgets = "Headphone", "Headphone Jack",
331 "Microphone", "Microphone Jack",
332 "Microphone", "Onboard Microphone";
333 simple-audio-card,routing =
338 "Headphone Jack", "HP",
339 "MIC2", "Microphone Jack",
340 "Onboard Microphone", "MBIAS",
341 "MIC1", "Onboard Microphone";
345 pinctrl-names = "default";
346 pinctrl-0 = <&uart0_pb_pins>;
351 pinctrl-names = "default";
352 pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
357 compatible = "brcm,bcm43438-bt";
360 vbat-supply = <®_dldo2>;
361 vddio-supply = <®_dldo4>;
362 device-wakeup-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
363 host-wakeup-gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */
364 shutdown-gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
378 usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
379 usb0_vbus_power-supply = <&usb_power_supply>;
380 usb0_vbus-supply = <®_drivevbus>;