1*7204944dSAlexander Sverdlin// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*7204944dSAlexander Sverdlin/* 3*7204944dSAlexander Sverdlin * Copyright (c) 2025 Arm Ltd. 4*7204944dSAlexander Sverdlin * Copyright (c) 2026 Alexander Sverdlin <alexander.sverdlin@gmail.com> 5*7204944dSAlexander Sverdlin */ 6*7204944dSAlexander Sverdlin 7*7204944dSAlexander Sverdlin/dts-v1/; 8*7204944dSAlexander Sverdlin 9*7204944dSAlexander Sverdlin#include "sun50i-a100.dtsi" 10*7204944dSAlexander Sverdlin#include "sun50i-a100-cpu-opp.dtsi" 11*7204944dSAlexander Sverdlin 12*7204944dSAlexander Sverdlin/{ 13*7204944dSAlexander Sverdlin model = "Baijie A133 HelperBoard Core"; 14*7204944dSAlexander Sverdlin compatible = "baijie,helperboard-a133-core", 15*7204944dSAlexander Sverdlin "allwinner,sun50i-a100"; 16*7204944dSAlexander Sverdlin 17*7204944dSAlexander Sverdlin aliases { 18*7204944dSAlexander Sverdlin serial1 = &uart1; /* BT module */ 19*7204944dSAlexander Sverdlin }; 20*7204944dSAlexander Sverdlin}; 21*7204944dSAlexander Sverdlin 22*7204944dSAlexander Sverdlin&cpu0 { 23*7204944dSAlexander Sverdlin cpu-supply = <®_dcdc2>; 24*7204944dSAlexander Sverdlin}; 25*7204944dSAlexander Sverdlin 26*7204944dSAlexander Sverdlin&lradc { 27*7204944dSAlexander Sverdlin vref-supply = <®_aldo1>; 28*7204944dSAlexander Sverdlin}; 29*7204944dSAlexander Sverdlin 30*7204944dSAlexander Sverdlin&mmc2 { 31*7204944dSAlexander Sverdlin vmmc-supply = <®_dcdc1>; 32*7204944dSAlexander Sverdlin vqmmc-supply = <®_eldo1>; 33*7204944dSAlexander Sverdlin cap-mmc-highspeed; 34*7204944dSAlexander Sverdlin cap-mmc-hw-reset; 35*7204944dSAlexander Sverdlin max-frequency = <100000000>; 36*7204944dSAlexander Sverdlin non-removable; 37*7204944dSAlexander Sverdlin bus-width = <8>; 38*7204944dSAlexander Sverdlin mmc-ddr-1_8v; 39*7204944dSAlexander Sverdlin mmc-hs200-1_8v; 40*7204944dSAlexander Sverdlin status = "okay"; 41*7204944dSAlexander Sverdlin}; 42*7204944dSAlexander Sverdlin 43*7204944dSAlexander Sverdlin&pio { 44*7204944dSAlexander Sverdlin vcc-pb-supply = <®_dcdc1>; 45*7204944dSAlexander Sverdlin vcc-pc-supply = <®_eldo1>; 46*7204944dSAlexander Sverdlin vcc-pd-supply = <®_dcdc1>; 47*7204944dSAlexander Sverdlin vcc-pe-supply = <®_dldo2>; 48*7204944dSAlexander Sverdlin vcc-pf-supply = <®_dcdc1>; 49*7204944dSAlexander Sverdlin vcc-pg-supply = <®_dldo1>; 50*7204944dSAlexander Sverdlin vcc-ph-supply = <®_dcdc1>; 51*7204944dSAlexander Sverdlin /* 52*7204944dSAlexander Sverdlin * PL0/PL1 are the I2C connection to PMIC, but it would create a 53*7204944dSAlexander Sverdlin * circular dependency: 54*7204944dSAlexander Sverdlin * vcc-pl-supply = <®_aldo3>; 55*7204944dSAlexander Sverdlin */ 56*7204944dSAlexander Sverdlin}; 57*7204944dSAlexander Sverdlin 58*7204944dSAlexander Sverdlin&r_i2c0 { 59*7204944dSAlexander Sverdlin status = "okay"; 60*7204944dSAlexander Sverdlin 61*7204944dSAlexander Sverdlin axp803: pmic@34 { 62*7204944dSAlexander Sverdlin compatible = "x-powers,axp803"; 63*7204944dSAlexander Sverdlin reg = <0x34>; 64*7204944dSAlexander Sverdlin interrupt-parent = <&r_intc>; 65*7204944dSAlexander Sverdlin interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 66*7204944dSAlexander Sverdlin x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */ 67*7204944dSAlexander Sverdlin aldoin-supply = <®_vdd5v>; 68*7204944dSAlexander Sverdlin dldoin-supply = <®_vdd5v>; 69*7204944dSAlexander Sverdlin eldoin-supply = <®_vdd5v>; 70*7204944dSAlexander Sverdlin fldoin-supply = <®_dcdc5>; 71*7204944dSAlexander Sverdlin vin1-supply = <®_vdd5v>; 72*7204944dSAlexander Sverdlin vin2-supply = <®_vdd5v>; 73*7204944dSAlexander Sverdlin vin3-supply = <®_vdd5v>; 74*7204944dSAlexander Sverdlin vin4-supply = <®_vdd5v>; 75*7204944dSAlexander Sverdlin vin5-supply = <®_vdd5v>; 76*7204944dSAlexander Sverdlin vin6-supply = <®_vdd5v>; 77*7204944dSAlexander Sverdlin drivevbus-supply = <®_vdd5v>; 78*7204944dSAlexander Sverdlin }; 79*7204944dSAlexander Sverdlin}; 80*7204944dSAlexander Sverdlin 81*7204944dSAlexander Sverdlin#include "axp803.dtsi" 82*7204944dSAlexander Sverdlin 83*7204944dSAlexander Sverdlin&ac_power_supply { 84*7204944dSAlexander Sverdlin status = "okay"; 85*7204944dSAlexander Sverdlin}; 86*7204944dSAlexander Sverdlin 87*7204944dSAlexander Sverdlin®_aldo1 { 88*7204944dSAlexander Sverdlin /* PLL + LRADC analog reference */ 89*7204944dSAlexander Sverdlin regulator-always-on; 90*7204944dSAlexander Sverdlin regulator-min-microvolt = <1800000>; 91*7204944dSAlexander Sverdlin regulator-max-microvolt = <1800000>; 92*7204944dSAlexander Sverdlin regulator-name = "vcc-pll"; 93*7204944dSAlexander Sverdlin}; 94*7204944dSAlexander Sverdlin 95*7204944dSAlexander Sverdlin®_aldo2 { 96*7204944dSAlexander Sverdlin /* LPDDR */ 97*7204944dSAlexander Sverdlin regulator-always-on; 98*7204944dSAlexander Sverdlin regulator-min-microvolt = <1800000>; 99*7204944dSAlexander Sverdlin regulator-max-microvolt = <1800000>; 100*7204944dSAlexander Sverdlin regulator-name = "vdd18-lpddr"; 101*7204944dSAlexander Sverdlin}; 102*7204944dSAlexander Sverdlin 103*7204944dSAlexander Sverdlin®_aldo3 { 104*7204944dSAlexander Sverdlin /* 105*7204944dSAlexander Sverdlin * Port L, but linking it to &pio node would create a circular 106*7204944dSAlexander Sverdlin * dependency because of PL0/PL1 I2C connection to PMIC 107*7204944dSAlexander Sverdlin */ 108*7204944dSAlexander Sverdlin regulator-always-on; 109*7204944dSAlexander Sverdlin regulator-min-microvolt = <1800000>; 110*7204944dSAlexander Sverdlin regulator-max-microvolt = <1800000>; 111*7204944dSAlexander Sverdlin regulator-name = "vcc-pl"; 112*7204944dSAlexander Sverdlin}; 113*7204944dSAlexander Sverdlin 114*7204944dSAlexander Sverdlin®_dcdc1 { 115*7204944dSAlexander Sverdlin /* Besides Port D it also powers analog part of USB IP and SoC I/O */ 116*7204944dSAlexander Sverdlin regulator-always-on; 117*7204944dSAlexander Sverdlin regulator-min-microvolt = <3300000>; 118*7204944dSAlexander Sverdlin regulator-max-microvolt = <3300000>; 119*7204944dSAlexander Sverdlin regulator-name = "vcc-3v3"; 120*7204944dSAlexander Sverdlin}; 121*7204944dSAlexander Sverdlin 122*7204944dSAlexander Sverdlin®_dcdc2 { 123*7204944dSAlexander Sverdlin regulator-always-on; 124*7204944dSAlexander Sverdlin regulator-min-microvolt = <810000>; 125*7204944dSAlexander Sverdlin regulator-max-microvolt = <1200000>; 126*7204944dSAlexander Sverdlin regulator-name = "vdd-cpu"; 127*7204944dSAlexander Sverdlin}; 128*7204944dSAlexander Sverdlin 129*7204944dSAlexander Sverdlin/* DCDC3 is polyphased with DCDC2 */ 130*7204944dSAlexander Sverdlin 131*7204944dSAlexander Sverdlin®_dcdc4 { 132*7204944dSAlexander Sverdlin /* Digital part of USB IP, "System" SoC power rail */ 133*7204944dSAlexander Sverdlin regulator-always-on; 134*7204944dSAlexander Sverdlin regulator-min-microvolt = <950000>; 135*7204944dSAlexander Sverdlin regulator-max-microvolt = <950000>; 136*7204944dSAlexander Sverdlin regulator-name = "vdd-sys"; 137*7204944dSAlexander Sverdlin}; 138*7204944dSAlexander Sverdlin 139*7204944dSAlexander Sverdlin®_dcdc5 { 140*7204944dSAlexander Sverdlin regulator-always-on; 141*7204944dSAlexander Sverdlin regulator-min-microvolt = <1100000>; 142*7204944dSAlexander Sverdlin regulator-max-microvolt = <1100000>; 143*7204944dSAlexander Sverdlin regulator-name = "vcc-dram"; 144*7204944dSAlexander Sverdlin}; 145*7204944dSAlexander Sverdlin 146*7204944dSAlexander Sverdlin/* DCDC6 unused */ 147*7204944dSAlexander Sverdlin®_dcdc6 { 148*7204944dSAlexander Sverdlin status = "disabled"; 149*7204944dSAlexander Sverdlin}; 150*7204944dSAlexander Sverdlin 151*7204944dSAlexander Sverdlin®_dldo1 { 152*7204944dSAlexander Sverdlin regulator-min-microvolt = <1800000>; 153*7204944dSAlexander Sverdlin regulator-max-microvolt = <1800000>; 154*7204944dSAlexander Sverdlin regulator-name = "vcc-pg"; 155*7204944dSAlexander Sverdlin}; 156*7204944dSAlexander Sverdlin 157*7204944dSAlexander Sverdlin®_dldo2 { 158*7204944dSAlexander Sverdlin regulator-min-microvolt = <1800000>; 159*7204944dSAlexander Sverdlin regulator-max-microvolt = <1800000>; 160*7204944dSAlexander Sverdlin regulator-name = "vcc-pe"; 161*7204944dSAlexander Sverdlin}; 162*7204944dSAlexander Sverdlin 163*7204944dSAlexander Sverdlin®_dldo3 { 164*7204944dSAlexander Sverdlin regulator-min-microvolt = <2800000>; 165*7204944dSAlexander Sverdlin regulator-max-microvolt = <2800000>; 166*7204944dSAlexander Sverdlin regulator-name = "avdd-csi"; 167*7204944dSAlexander Sverdlin}; 168*7204944dSAlexander Sverdlin 169*7204944dSAlexander Sverdlin®_dldo4 { 170*7204944dSAlexander Sverdlin regulator-min-microvolt = <2800000>; 171*7204944dSAlexander Sverdlin regulator-max-microvolt = <2800000>; 172*7204944dSAlexander Sverdlin regulator-name = "afvcc-csi"; 173*7204944dSAlexander Sverdlin}; 174*7204944dSAlexander Sverdlin 175*7204944dSAlexander Sverdlin®_eldo1 { 176*7204944dSAlexander Sverdlin regulator-min-microvolt = <1800000>; 177*7204944dSAlexander Sverdlin regulator-max-microvolt = <1800000>; 178*7204944dSAlexander Sverdlin regulator-name = "vcc-pc"; 179*7204944dSAlexander Sverdlin}; 180*7204944dSAlexander Sverdlin 181*7204944dSAlexander Sverdlin®_eldo2 { 182*7204944dSAlexander Sverdlin regulator-min-microvolt = <1200000>; 183*7204944dSAlexander Sverdlin regulator-max-microvolt = <1200000>; 184*7204944dSAlexander Sverdlin regulator-name = "dvdd-csi"; 185*7204944dSAlexander Sverdlin}; 186*7204944dSAlexander Sverdlin 187*7204944dSAlexander Sverdlin/* ELDO3 unused */ 188*7204944dSAlexander Sverdlin 189*7204944dSAlexander Sverdlin®_fldo1 { 190*7204944dSAlexander Sverdlin /* CPUS power rail */ 191*7204944dSAlexander Sverdlin regulator-always-on; 192*7204944dSAlexander Sverdlin regulator-min-microvolt = <900000>; 193*7204944dSAlexander Sverdlin regulator-max-microvolt = <900000>; 194*7204944dSAlexander Sverdlin regulator-name = "vdd-cpus"; 195*7204944dSAlexander Sverdlin}; 196*7204944dSAlexander Sverdlin 197*7204944dSAlexander Sverdlin/* reg_drivevbus unused */ 198