1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (C) 2018 Amarula Solutions B.V. 4 * Author: Jagan Teki <jagan@amarulasolutions.com> 5 */ 6 7/dts-v1/; 8 9#include "sun50i-a64.dtsi" 10 11#include <dt-bindings/gpio/gpio.h> 12 13/ { 14 model = "Amarula A64-Relic"; 15 compatible = "amarula,a64-relic", "allwinner,sun50i-a64"; 16 17 aliases { 18 serial0 = &uart0; 19 }; 20 21 chosen { 22 stdout-path = "serial0:115200n8"; 23 }; 24 25 wifi_pwrseq: wifi-pwrseq { 26 compatible = "mmc-pwrseq-simple"; 27 clocks = <&rtc 1>; 28 clock-names = "ext_clock"; 29 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* WL-PMU-EN: PL2 */ 30 }; 31}; 32 33&ehci0 { 34 status = "okay"; 35}; 36 37&mmc1 { 38 pinctrl-names = "default"; 39 pinctrl-0 = <&mmc1_pins>; 40 vmmc-supply = <®_dcdc1>; 41 /* 42 * Schematic shows both dldo4 and eldo1 connected for vcc-io-wifi, but 43 * dldo4 connection shows DNP(Do Not Populate) and eldo1 connected with 44 * 0Ohm register to vcc-io-wifi so eldo1 is used. 45 */ 46 vqmmc-supply = <®_eldo1>; 47 mmc-pwrseq = <&wifi_pwrseq>; 48 bus-width = <4>; 49 non-removable; 50 status = "okay"; 51 52 brcmf: wifi@1 { 53 reg = <1>; 54 compatible = "brcm,bcm4329-fmac"; 55 interrupt-parent = <&r_pio>; 56 interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* WL-WAKE-AP: PL3 */ 57 interrupt-names = "host-wake"; 58 }; 59}; 60 61&mmc2 { 62 pinctrl-names = "default"; 63 pinctrl-0 = <&mmc2_pins>; 64 vmmc-supply = <®_dcdc1>; 65 bus-width = <8>; 66 non-removable; 67 cap-mmc-hw-reset; 68 status = "okay"; 69}; 70 71&ohci0 { 72 status = "okay"; 73}; 74 75&r_rsb { 76 status = "okay"; 77 78 axp803: pmic@3a3 { 79 compatible = "x-powers,axp803"; 80 reg = <0x3a3>; 81 interrupt-parent = <&r_intc>; 82 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 83 x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */ 84 }; 85}; 86 87#include "axp803.dtsi" 88 89®_aldo1 { 90 regulator-always-on; 91 regulator-min-microvolt = <2800000>; 92 regulator-max-microvolt = <2800000>; 93 regulator-name = "avdd-csi"; 94}; 95 96®_aldo2 { 97 regulator-always-on; 98 regulator-min-microvolt = <1800000>; 99 regulator-max-microvolt = <3300000>; 100 regulator-name = "vcc-pl"; 101}; 102 103®_aldo3 { 104 regulator-always-on; 105 regulator-min-microvolt = <3000000>; 106 regulator-max-microvolt = <3000000>; 107 regulator-name = "vcc-pll-avcc"; 108}; 109 110®_dcdc1 { 111 regulator-always-on; 112 regulator-min-microvolt = <3300000>; 113 regulator-max-microvolt = <3300000>; 114 regulator-name = "vcc-3v3"; 115}; 116 117®_dcdc2 { 118 regulator-always-on; 119 regulator-min-microvolt = <1040000>; 120 regulator-max-microvolt = <1300000>; 121 regulator-name = "vdd-cpux"; 122}; 123 124/* DCDC3 is polyphased with DCDC2 */ 125 126®_dcdc5 { 127 regulator-always-on; 128 regulator-min-microvolt = <1500000>; 129 regulator-max-microvolt = <1500000>; 130 regulator-name = "vcc-dram"; 131}; 132 133®_dcdc6 { 134 regulator-always-on; 135 regulator-min-microvolt = <1100000>; 136 regulator-max-microvolt = <1100000>; 137 regulator-name = "vdd-sys"; 138}; 139 140®_dldo1 { 141 regulator-min-microvolt = <3300000>; 142 regulator-max-microvolt = <3300000>; 143 regulator-name = "vcc-hdmi-dsi-sensor"; 144}; 145 146®_dldo2 { 147 regulator-min-microvolt = <3300000>; 148 regulator-max-microvolt = <3300000>; 149 regulator-name = "vcc-mipi"; 150}; 151 152®_dldo3 { 153 regulator-min-microvolt = <2800000>; 154 regulator-max-microvolt = <2800000>; 155 regulator-name = "dovdd-csi"; 156}; 157 158®_dldo4 { 159 regulator-min-microvolt = <3300000>; 160 regulator-max-microvolt = <3300000>; 161 regulator-name = "vcc-wifi-io"; 162}; 163 164®_drivevbus { 165 regulator-name = "usb0-vbus"; 166 status = "okay"; 167}; 168 169®_eldo1 { 170 regulator-always-on; 171 regulator-min-microvolt = <1800000>; 172 regulator-max-microvolt = <1800000>; 173 regulator-name = "cpvdd"; 174}; 175 176®_eldo3 { 177 regulator-min-microvolt = <1800000>; 178 regulator-max-microvolt = <1800000>; 179 regulator-name = "dvdd-csi"; 180}; 181 182®_fldo1 { 183 regulator-min-microvolt = <1200000>; 184 regulator-max-microvolt = <1200000>; 185 regulator-name = "vcc-1v2-hsic"; 186}; 187 188/* 189 * The A64 chip cannot work without this regulator off, although 190 * it seems to be only driving the AR100 core. 191 * Maybe we don't still know well about CPUs domain. 192 */ 193®_fldo2 { 194 regulator-always-on; 195 regulator-min-microvolt = <1100000>; 196 regulator-max-microvolt = <1100000>; 197 regulator-name = "vdd-cpus"; 198}; 199 200®_rtc_ldo { 201 regulator-name = "vcc-rtc"; 202}; 203 204&uart0 { 205 pinctrl-names = "default"; 206 pinctrl-0 = <&uart0_pins_a>; 207 status = "okay"; 208}; 209 210&usb_otg { 211 dr_mode = "otg"; 212 status = "okay"; 213}; 214 215&usbphy { 216 usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ 217 usb0_vbus-supply = <®_drivevbus>; 218 status = "okay"; 219}; 220