blob: 464a3078afd7e3507404c34c850e91ce84daee6d [file] [log] [blame]
Andre Przywarac2a441c2024-04-19 17:59:52 +01001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2// Copyright (c) 2023 ARM Ltd.
3
4/dts-v1/;
5
6#include "sun50i-a64.dtsi"
7#include "sun50i-a64-cpu-opp.dtsi"
8
9#include <dt-bindings/gpio/gpio.h>
10
11/ {
12 model = "Remix Mini PC";
13 compatible = "jide,remix-mini-pc", "allwinner,sun50i-h64",
14 "allwinner,sun50i-a64";
15
16 aliases {
17 ethernet1 = &rtl8723bs;
18 serial0 = &uart0;
19 };
20
21 chosen {
22 stdout-path = "serial0:115200n8";
23 };
24
25 hdmi-connector {
26 compatible = "hdmi-connector";
27 type = "a";
28
29 port {
30 hdmi_con_in: endpoint {
31 remote-endpoint = <&hdmi_out_con>;
32 };
33 };
34 };
35
36 reg_vcc5v: regulator-5v {
37 /* board wide 5V supply directly from the DC input */
38 compatible = "regulator-fixed";
39 regulator-name = "vcc-5v";
40 regulator-min-microvolt = <5000000>;
41 regulator-max-microvolt = <5000000>;
42 regulator-always-on;
43 };
44
Andre Przywara3b798212024-04-19 17:59:52 +010045 wifi_pwrseq: pwrseq {
Andre Przywarac2a441c2024-04-19 17:59:52 +010046 compatible = "mmc-pwrseq-simple";
47 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
48 post-power-on-delay-ms = <200>;
49 };
50};
51
52&codec {
53 status = "okay";
54};
55
56&codec_analog {
57 cpvdd-supply = <&reg_eldo1>;
58 status = "okay";
59};
60
61&cpu0 {
62 cpu-supply = <&reg_dcdc2>;
63};
64
65&cpu1 {
66 cpu-supply = <&reg_dcdc2>;
67};
68
69&cpu2 {
70 cpu-supply = <&reg_dcdc2>;
71};
72
73&cpu3 {
74 cpu-supply = <&reg_dcdc2>;
75};
76
77&dai {
78 status = "okay";
79};
80
81&de {
82 status = "okay";
83};
84
85&ehci0 {
86 status = "okay";
87};
88
89&ehci1 {
90 status = "okay";
91};
92
93&hdmi {
94 hvcc-supply = <&reg_dldo1>;
95 status = "okay";
96};
97
98&hdmi_out {
99 hdmi_out_con: endpoint {
100 remote-endpoint = <&hdmi_con_in>;
101 };
102};
103
104/* Connects to the AC200 chip */
105&i2c0 {
106 pinctrl-names = "default";
107 pinctrl-0 = <&i2c0_pins>;
108 status = "okay";
109};
110
111&i2c0_pins {
112 bias-pull-up;
113};
114
115&mmc0 {
116 pinctrl-names = "default";
117 pinctrl-0 = <&mmc0_pins>;
118 vmmc-supply = <&reg_dcdc1>;
119 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
120 disable-wp;
121 bus-width = <4>;
122 status = "okay";
123};
124
125&mmc1 {
126 pinctrl-names = "default";
127 pinctrl-0 = <&mmc1_pins>;
128 vmmc-supply = <&reg_aldo1>;
129 vqmmc-supply = <&reg_dldo4>;
130 mmc-pwrseq = <&wifi_pwrseq>;
131 bus-width = <4>;
132 non-removable;
133 status = "okay";
134
135 rtl8723bs: wifi@1 {
136 reg = <1>;
137 interrupt-parent = <&r_pio>;
138 interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */
139 interrupt-names = "host-wake";
140 };
141};
142
143&mmc2 {
144 pinctrl-names = "default";
145 pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>;
146 vmmc-supply = <&reg_dcdc1>;
147 vqmmc-supply = <&reg_eldo1>;
148 bus-width = <8>;
149 non-removable;
150 mmc-hs200-1_8v;
151 mmc-hs400-1_8v;
152 cap-mmc-hw-reset;
153 status = "okay";
154};
155
156&ohci0 {
157 status = "okay";
158};
159
160&ohci1 {
161 status = "okay";
162};
163
164&pio {
165 vcc-pb-supply = <&reg_dcdc1>;
166 vcc-pc-supply = <&reg_dcdc1>;
167 vcc-pd-supply = <&reg_dcdc1>;
168 vcc-pe-supply = <&reg_dcdc1>;
169 vcc-pf-supply = <&reg_dcdc1>;
170 vcc-pg-supply = <&reg_dldo4>;
171 vcc-ph-supply = <&reg_dcdc1>;
172};
173
174&r_ir {
175 status = "okay";
176};
177
178&r_pio {
179 /*
180 * We cannot add that supply for now since it would create a circular
181 * dependency between pinctrl, the regulator and the RSB Bus.
182 *
183 * vcc-pl-supply = <&reg_aldo2>;
184 */
185};
186
187&r_rsb {
188 status = "okay";
189
190 axp803: pmic@3a3 {
191 compatible = "x-powers,axp803";
192 reg = <0x3a3>;
193 interrupt-parent = <&r_intc>;
194 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
195 x-powers,drive-vbus-en;
196
197 vin1-supply = <&reg_vcc5v>;
198 vin2-supply = <&reg_vcc5v>;
199 vin3-supply = <&reg_vcc5v>;
200 vin5-supply = <&reg_vcc5v>;
201 vin6-supply = <&reg_vcc5v>;
202 aldoin-supply = <&reg_vcc5v>;
203 dldoin-supply = <&reg_vcc5v>;
204 eldoin-supply = <&reg_vcc5v>;
205 fldoin-supply = <&reg_vcc5v>;
206 drivevbus-supply = <&reg_vcc5v>;
207 ips-supply = <&reg_vcc5v>;
208
209 status = "okay";
210 };
211};
212
213#include "axp803.dtsi"
214
215&ac_power_supply {
216 status = "okay";
217};
218
219&reg_dcdc1 {
220 regulator-always-on;
221 regulator-min-microvolt = <3300000>;
222 regulator-max-microvolt = <3300000>;
223 regulator-name = "vcc-3v3";
224};
225
226&reg_dcdc2 {
227 regulator-always-on;
228 regulator-min-microvolt = <1040000>;
229 regulator-max-microvolt = <1300000>;
230 regulator-name = "vdd-cpux";
231};
232
233/* DCDC3 is polyphased with DCDC2 */
234
235&reg_dcdc5 {
236 regulator-always-on;
237 regulator-min-microvolt = <1500000>;
238 regulator-max-microvolt = <1500000>;
239 regulator-name = "vcc-dram";
240};
241
242/* Deviates from the reset default of 1.1V. */
243&reg_dcdc6 {
244 regulator-always-on;
245 regulator-min-microvolt = <1200000>;
246 regulator-max-microvolt = <1200000>;
247 regulator-name = "vdd-sys";
248};
249
250&reg_aldo1 {
251 regulator-min-microvolt = <3300000>;
252 regulator-max-microvolt = <3300000>;
253 regulator-name = "vcc-wifi";
254};
255
256&reg_aldo2 {
257 /* Specifying R_PIO consumer would create circular dependency. */
258 regulator-always-on;
259 regulator-min-microvolt = <3300000>;
260 regulator-max-microvolt = <3300000>;
261 regulator-name = "vcc-pl";
262};
263
264&reg_aldo3 {
265 regulator-always-on;
266 regulator-min-microvolt = <3000000>;
267 regulator-max-microvolt = <3000000>;
268 regulator-name = "vcc-pll-avcc";
269};
270
271/* AC200 power supply */
272&reg_dldo1 {
273 regulator-always-on;
274 regulator-min-microvolt = <3300000>;
275 regulator-max-microvolt = <3300000>;
276 regulator-name = "vcc-ave-33";
277};
278
279&reg_dldo4 {
280 regulator-min-microvolt = <3300000>;
281 regulator-max-microvolt = <3300000>;
282 regulator-name = "vcc-wifi-io";
283};
284
285&reg_drivevbus {
286 regulator-name = "usb0-vbus";
287 status = "okay";
288};
289
290&reg_eldo1 {
291 regulator-always-on;
292 regulator-min-microvolt = <1800000>;
293 regulator-max-microvolt = <1800000>;
294 regulator-name = "vcc-cpvdd-dram-emmc";
295};
296
297/* Supplies the arisc management core, needed by TF-A to power off cores. */
298&reg_fldo2 {
299 regulator-always-on;
300 regulator-min-microvolt = <1100000>;
301 regulator-max-microvolt = <1100000>;
302 regulator-name = "vdd-cpus";
303};
304
305&reg_rtc_ldo {
306 regulator-name = "vcc-rtc";
307};
308
309&simplefb_hdmi {
310 vcc-hdmi-supply = <&reg_dcdc1>;
311};
312
313&sound {
314 simple-audio-card,aux-devs = <&codec_analog>;
315 simple-audio-card,widgets = "Microphone", "Microphone Jack",
316 "Headphone", "Headphone Jack";
317 simple-audio-card,routing =
318 "Left DAC", "DACL",
319 "Right DAC", "DACR",
320 "Headphone Jack", "HP",
321 "ADCL", "Left ADC",
322 "ADCR", "Right ADC",
323 "MIC2", "Microphone Jack";
324 status = "okay";
325};
326
327/* On the (unpopulated) UART pads. */
328&uart0 {
329 pinctrl-names = "default";
330 pinctrl-0 = <&uart0_pb_pins>;
331 status = "okay";
332};
333
334&uart1 {
335 pinctrl-names = "default";
336 pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
337 uart-has-rtscts;
338 status = "okay";
339
340 bluetooth {
341 compatible = "realtek,rtl8723bs-bt";
342 enable-gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
343 max-speed = <1500000>;
344 };
345};
346
347&usb_otg {
348 dr_mode = "host";
349 status = "okay";
350};
351
352&usbphy {
353 usb0_vbus-supply = <&reg_drivevbus>;
354 usb1_vbus-supply = <&reg_drivevbus>;
355 status = "okay";
356};