1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2020 Yangtao Li <frank@allwinnertech.com>
4 */
5
6/dts-v1/;
7
8#include "sun50i-a100.dtsi"
9#include "sun50i-a100-cpu-opp.dtsi"
10
11#include <dt-bindings/gpio/gpio.h>
12
13/{
14	model = "Allwinner A100 Perf1";
15	compatible = "allwinner,a100-perf1", "allwinner,sun50i-a100";
16
17	aliases {
18		serial0 = &uart0;
19	};
20
21	chosen {
22		stdout-path = "serial0:115200n8";
23	};
24};
25
26&mmc0 {
27	vmmc-supply = <&reg_dcdc1>;
28	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
29	bus-width = <4>;
30	status = "okay";
31};
32
33&mmc2 {
34	vmmc-supply = <&reg_dcdc1>;
35	vqmmc-supply = <&reg_aldo1>;
36	cap-mmc-hw-reset;
37	non-removable;
38	bus-width = <8>;
39	status = "okay";
40};
41
42&cpu0 {
43	cpu-supply = <&reg_dcdc2>;
44};
45
46&pio {
47	vcc-pb-supply = <&reg_dcdc1>;
48	vcc-pc-supply = <&reg_eldo1>;
49	vcc-pd-supply = <&reg_dcdc1>;
50	vcc-pe-supply = <&reg_dldo2>;
51	vcc-pf-supply = <&reg_dcdc1>;
52	vcc-pg-supply = <&reg_dldo1>;
53	vcc-ph-supply = <&reg_dcdc1>;
54};
55
56&r_pio {
57	/*
58	 * FIXME: We can't add that supply for now since it would
59	 * create a circular dependency between pinctrl, the regulator
60	 * and the RSB Bus.
61	 *
62	 * vcc-pl-supply = <&reg_aldo3>;
63	 */
64};
65
66&r_i2c0 {
67	status = "okay";
68
69	axp803: pmic@34 {
70		compatible = "x-powers,axp803";
71		reg = <0x34>;
72		interrupt-parent = <&r_intc>;
73		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
74		x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */
75	};
76};
77
78#include "axp803.dtsi"
79
80&ac_power_supply {
81	status = "okay";
82};
83
84&reg_aldo1 {
85	regulator-always-on;
86	regulator-min-microvolt = <1800000>;
87	regulator-max-microvolt = <1800000>;
88	regulator-name = "vcc-pll-avcc";
89};
90
91&reg_aldo2 {
92	regulator-always-on;
93	regulator-min-microvolt = <1800000>;
94	regulator-max-microvolt = <1800000>;
95	regulator-name = "vcc-dram-1";
96};
97
98&reg_aldo3 {
99	regulator-always-on;
100	regulator-min-microvolt = <3300000>;
101	regulator-max-microvolt = <3300000>;
102	regulator-name = "vcc-usb-pl";
103};
104
105&reg_dcdc1 {
106	regulator-always-on;
107	regulator-min-microvolt = <3300000>;
108	regulator-max-microvolt = <3300000>;
109	regulator-name = "vcc-io-usb-pd-emmc-nand-card";
110};
111
112&reg_dcdc2 {
113	regulator-always-on;
114	/*
115	 * FIXME: update min and max before support dvfs.
116	 */
117	regulator-min-microvolt = <500000>;
118	regulator-max-microvolt = <1300000>;
119	regulator-name = "vdd-cpux";
120};
121
122/* DCDC3 is polyphased with DCDC2 */
123
124&reg_dcdc4 {
125	regulator-always-on;
126	regulator-min-microvolt = <950000>;
127	regulator-max-microvolt = <950000>;
128	regulator-name = "vdd-sys-usb-dram";
129};
130
131&reg_dcdc5 {
132	regulator-always-on;
133	regulator-min-microvolt = <1500000>;
134	regulator-max-microvolt = <1500000>;
135	regulator-name = "vcc-dram-2";
136};
137
138&reg_dldo1 {
139	regulator-min-microvolt = <3300000>;
140	regulator-max-microvolt = <3300000>;
141	regulator-name = "vcc-pg-dcxo-wifi";
142};
143
144&reg_dldo2 {
145	regulator-min-microvolt = <1800000>;
146	regulator-max-microvolt = <2800000>;
147	regulator-name = "vcc-pe-csi";
148};
149
150&reg_dldo3 {
151	regulator-min-microvolt = <1800000>;
152	regulator-max-microvolt = <3300000>;
153	regulator-name = "ldo-avdd-csi";
154};
155
156&reg_dldo4 {
157	regulator-min-microvolt = <1800000>;
158	regulator-max-microvolt = <2800000>;
159	regulator-name = "avcc-csi";
160};
161
162&reg_eldo1 {
163	regulator-min-microvolt = <1800000>;
164	regulator-max-microvolt = <1800000>;
165	regulator-name = "vcc-pc-lvds-csi-efuse-emmc-nand";
166};
167
168&reg_eldo2 {
169	regulator-min-microvolt = <1200000>;
170	regulator-max-microvolt = <1800000>;
171	regulator-name = "dvdd-csi";
172};
173
174&reg_eldo3 {
175	regulator-min-microvolt = <1800000>;
176	regulator-max-microvolt = <1800000>;
177	regulator-name = "vcc-mipi-lcd";
178};
179
180&reg_fldo1 {
181	regulator-always-on;
182	regulator-min-microvolt = <900000>;
183	regulator-max-microvolt = <900000>;
184	regulator-name = "vdd-cpus-usb";
185};
186
187&reg_ldo_io0 {
188	regulator-min-microvolt = <3300000>;
189	regulator-max-microvolt = <3300000>;
190	regulator-name = "vcc-ctp";
191	status = "okay";
192};
193
194&reg_drivevbus {
195	regulator-name = "usb0-vbus";
196	status = "okay";
197};
198
199&uart0 {
200	pinctrl-names = "default";
201	pinctrl-0 = <&uart0_pb_pins>;
202	status = "okay";
203};
204