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