xref: /linux/scripts/dtc/include-prefixes/arm64/allwinner/sun50i-a133-helperboard-core.dtsi (revision 67f8bc848ee31831336bd478e57d2f993551902e)
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 = <&reg_dcdc2>;
24*7204944dSAlexander Sverdlin};
25*7204944dSAlexander Sverdlin
26*7204944dSAlexander Sverdlin&lradc {
27*7204944dSAlexander Sverdlin	vref-supply = <&reg_aldo1>;
28*7204944dSAlexander Sverdlin};
29*7204944dSAlexander Sverdlin
30*7204944dSAlexander Sverdlin&mmc2 {
31*7204944dSAlexander Sverdlin	vmmc-supply = <&reg_dcdc1>;
32*7204944dSAlexander Sverdlin	vqmmc-supply = <&reg_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 = <&reg_dcdc1>;
45*7204944dSAlexander Sverdlin	vcc-pc-supply = <&reg_eldo1>;
46*7204944dSAlexander Sverdlin	vcc-pd-supply = <&reg_dcdc1>;
47*7204944dSAlexander Sverdlin	vcc-pe-supply = <&reg_dldo2>;
48*7204944dSAlexander Sverdlin	vcc-pf-supply = <&reg_dcdc1>;
49*7204944dSAlexander Sverdlin	vcc-pg-supply = <&reg_dldo1>;
50*7204944dSAlexander Sverdlin	vcc-ph-supply = <&reg_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 = <&reg_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 = <&reg_vdd5v>;
68*7204944dSAlexander Sverdlin		dldoin-supply = <&reg_vdd5v>;
69*7204944dSAlexander Sverdlin		eldoin-supply = <&reg_vdd5v>;
70*7204944dSAlexander Sverdlin		fldoin-supply = <&reg_dcdc5>;
71*7204944dSAlexander Sverdlin		vin1-supply = <&reg_vdd5v>;
72*7204944dSAlexander Sverdlin		vin2-supply = <&reg_vdd5v>;
73*7204944dSAlexander Sverdlin		vin3-supply = <&reg_vdd5v>;
74*7204944dSAlexander Sverdlin		vin4-supply = <&reg_vdd5v>;
75*7204944dSAlexander Sverdlin		vin5-supply = <&reg_vdd5v>;
76*7204944dSAlexander Sverdlin		vin6-supply = <&reg_vdd5v>;
77*7204944dSAlexander Sverdlin		drivevbus-supply = <&reg_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&reg_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&reg_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&reg_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&reg_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&reg_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&reg_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&reg_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&reg_dcdc6 {
148*7204944dSAlexander Sverdlin	status = "disabled";
149*7204944dSAlexander Sverdlin};
150*7204944dSAlexander Sverdlin
151*7204944dSAlexander Sverdlin&reg_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&reg_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&reg_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&reg_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&reg_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&reg_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&reg_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