// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * Copyright (C) 2018 Amarula Solutions B.V. * Author: Jagan Teki */ /dts-v1/; #include "sun50i-a64.dtsi" #include / { model = "Amarula A64-Relic"; compatible = "amarula,a64-relic", "allwinner,sun50i-a64"; aliases { serial0 = &uart0; }; chosen { stdout-path = "serial0:115200n8"; }; wifi_pwrseq: wifi-pwrseq { compatible = "mmc-pwrseq-simple"; clocks = <&rtc 1>; clock-names = "ext_clock"; reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* WL-PMU-EN: PL2 */ }; }; &ehci0 { status = "okay"; }; &mmc1 { pinctrl-names = "default"; pinctrl-0 = <&mmc1_pins>; vmmc-supply = <®_dcdc1>; /* * Schematic shows both dldo4 and eldo1 connected for vcc-io-wifi, but * dldo4 connection shows DNP(Do Not Populate) and eldo1 connected with * 0Ohm register to vcc-io-wifi so eldo1 is used. */ vqmmc-supply = <®_eldo1>; mmc-pwrseq = <&wifi_pwrseq>; bus-width = <4>; non-removable; status = "okay"; brcmf: wifi@1 { reg = <1>; compatible = "brcm,bcm4329-fmac"; interrupt-parent = <&r_pio>; interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* WL-WAKE-AP: PL3 */ interrupt-names = "host-wake"; }; }; &mmc2 { pinctrl-names = "default"; pinctrl-0 = <&mmc2_pins>; vmmc-supply = <®_dcdc1>; bus-width = <8>; non-removable; cap-mmc-hw-reset; status = "okay"; }; &ohci0 { status = "okay"; }; &r_rsb { status = "okay"; axp803: pmic@3a3 { compatible = "x-powers,axp803"; reg = <0x3a3>; interrupt-parent = <&r_intc>; interrupts = <0 IRQ_TYPE_LEVEL_LOW>; x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */ }; }; #include "axp803.dtsi" ®_aldo1 { regulator-always-on; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; regulator-name = "avdd-csi"; }; ®_aldo2 { regulator-always-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc-pl"; }; ®_aldo3 { regulator-always-on; regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3000000>; regulator-name = "vcc-pll-avcc"; }; ®_dcdc1 { regulator-always-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc-3v3"; }; ®_dcdc2 { regulator-always-on; regulator-min-microvolt = <1040000>; regulator-max-microvolt = <1300000>; regulator-name = "vdd-cpux"; }; /* DCDC3 is polyphased with DCDC2 */ ®_dcdc5 { regulator-always-on; regulator-min-microvolt = <1500000>; regulator-max-microvolt = <1500000>; regulator-name = "vcc-dram"; }; ®_dcdc6 { regulator-always-on; regulator-min-microvolt = <1100000>; regulator-max-microvolt = <1100000>; regulator-name = "vdd-sys"; }; ®_dldo1 { regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc-hdmi-dsi-sensor"; }; ®_dldo2 { regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc-mipi"; }; ®_dldo3 { regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; regulator-name = "dovdd-csi"; }; ®_dldo4 { regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc-wifi-io"; }; ®_drivevbus { regulator-name = "usb0-vbus"; status = "okay"; }; ®_eldo1 { regulator-always-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-name = "cpvdd"; }; ®_eldo3 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-name = "dvdd-csi"; }; ®_fldo1 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; regulator-name = "vcc-1v2-hsic"; }; /* * The A64 chip cannot work without this regulator off, although * it seems to be only driving the AR100 core. * Maybe we don't still know well about CPUs domain. */ ®_fldo2 { regulator-always-on; regulator-min-microvolt = <1100000>; regulator-max-microvolt = <1100000>; regulator-name = "vdd-cpus"; }; ®_rtc_ldo { regulator-name = "vcc-rtc"; }; &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_pb_pins>; status = "okay"; }; &usb_otg { dr_mode = "otg"; status = "okay"; }; &usbphy { usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ usb0_vbus-supply = <®_drivevbus>; status = "okay"; };