blob: 12397755830bd57122a0a4bf44f0167d1a67d5f0 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2022 Theobroma Systems Design und Consulting GmbH
4 */
5
6/dts-v1/;
7#include "px30.dtsi"
8#include <dt-bindings/leds/common.h>
9
10/ {
11 aliases {
12 mmc0 = &emmc;
13 mmc1 = &sdio;
14 rtc0 = &rtc_twi;
15 rtc1 = &rk809;
16 };
17
18 emmc_pwrseq: emmc-pwrseq {
19 compatible = "mmc-pwrseq-emmc";
20 pinctrl-0 = <&emmc_reset>;
21 pinctrl-names = "default";
22 reset-gpios = <&gpio1 RK_PB3 GPIO_ACTIVE_HIGH>;
23 };
24
25 leds {
26 compatible = "gpio-leds";
27 pinctrl-names = "default";
28 pinctrl-0 = <&module_led_pin>;
29 status = "okay";
30
31 module_led: led-0 {
32 gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_HIGH>;
33 function = LED_FUNCTION_HEARTBEAT;
34 linux,default-trigger = "heartbeat";
35 color = <LED_COLOR_ID_AMBER>;
36 };
37 };
38
39 vcc5v0_sys: vccsys-regulator {
40 compatible = "regulator-fixed";
41 regulator-name = "vcc5v0_sys";
42 regulator-always-on;
43 regulator-boot-on;
44 regulator-min-microvolt = <5000000>;
45 regulator-max-microvolt = <5000000>;
46 };
47};
48
49&cpu0 {
50 cpu-supply = <&vdd_arm>;
51};
52
53&cpu1 {
54 cpu-supply = <&vdd_arm>;
55};
56
57&cpu2 {
58 cpu-supply = <&vdd_arm>;
59};
60
61&cpu3 {
62 cpu-supply = <&vdd_arm>;
63};
64
65&emmc {
66 bus-width = <8>;
67 cap-mmc-highspeed;
68 mmc-hs200-1_8v;
69 supports-emmc;
70 mmc-pwrseq = <&emmc_pwrseq>;
71 non-removable;
72 vmmc-supply = <&vcc_3v3>;
73 vqmmc-supply = <&vcc_emmc>;
74
75 status = "okay";
76};
77
78/* On-module TI DP83825I PHY but no connector, enable in carrierboard */
79&gmac {
80 snps,reset-gpio = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
81 snps,reset-active-low;
82 snps,reset-delays-us = <0 50000 50000>;
83 phy-supply = <&vcc_3v3>;
84 clock_in_out = "output";
85};
86
87&gpio2 {
88 /*
89 * The Qseven BIOS_DISABLE signal on the PX30-µQ7 keeps the on-module
90 * eMMC powered-down initially (in fact it keeps the reset signal
91 * asserted). BIOS_DISABLE_OVERRIDE pin allows to re-enable eMMC after
92 * the SPL has been booted from SD Card.
93 */
94 bios-disable-override-hog {
95 gpios = <RK_PB5 GPIO_ACTIVE_LOW>;
96 output-high;
97 line-name = "bios_disable_override";
98 gpio-hog;
99 };
100
101 /*
102 * The BIOS_DISABLE hog is a feedback pin for the actual status of the
103 * signal, ignoring the BIOS_DISABLE_OVERRIDE logic. This usually
104 * represents the state of a switch on the baseboard.
105 */
106 bios-disable-n-hog {
107 gpios = <RK_PC2 GPIO_ACTIVE_LOW>;
108 line-name = "bios_disable";
109 input;
110 gpio-hog;
111 };
112};
113
114&gpu {
115 status = "okay";
116};
117
118&i2c0 {
119 status = "okay";
120
121 rk809: pmic@20 {
122 compatible = "rockchip,rk809";
123 reg = <0x20>;
124 interrupt-parent = <&gpio0>;
125 interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
126 pinctrl-0 = <&pmic_int>;
127 pinctrl-names = "default";
128 #clock-cells = <0>;
129 clock-output-names = "xin32k";
130 rockchip,system-power-controller;
131 wakeup-source;
132
133 vcc1-supply = <&vcc5v0_sys>;
134 vcc2-supply = <&vcc5v0_sys>;
135 vcc3-supply = <&vcc5v0_sys>;
136 vcc4-supply = <&vcc5v0_sys>;
137 vcc5-supply = <&vcc_3v3>;
138 vcc6-supply = <&vcc_3v3>;
139 vcc7-supply = <&vcc_3v3>;
140 vcc9-supply = <&vcc5v0_sys>;
141
142 regulators {
143 vdd_log: DCDC_REG1 {
144 regulator-name = "vdd_log";
145 regulator-min-microvolt = <950000>;
146 regulator-max-microvolt = <1350000>;
147 regulator-ramp-delay = <6001>;
148 regulator-always-on;
149 regulator-boot-on;
150
151 regulator-state-mem {
152 regulator-on-in-suspend;
153 regulator-suspend-microvolt = <950000>;
154 };
155 };
156
157 vdd_arm: DCDC_REG2 {
158 regulator-name = "vdd_arm";
159 regulator-min-microvolt = <950000>;
160 regulator-max-microvolt = <1350000>;
161 regulator-ramp-delay = <6001>;
162 regulator-always-on;
163 regulator-boot-on;
164
165 regulator-state-mem {
166 regulator-off-in-suspend;
167 regulator-suspend-microvolt = <950000>;
168 };
169 };
170
171 vcc_ddr: DCDC_REG3 {
172 regulator-name = "vcc_ddr";
173 regulator-always-on;
174 regulator-boot-on;
175
176 regulator-state-mem {
177 regulator-on-in-suspend;
178 };
179 };
180
181 vcc_3v0_1v8: vcc_emmc: DCDC_REG4 {
182 regulator-name = "vcc_3v0_1v8";
183 regulator-min-microvolt = <1800000>;
184 regulator-max-microvolt = <3000000>;
185 regulator-always-on;
186 regulator-boot-on;
187
188 regulator-state-mem {
189 regulator-on-in-suspend;
190 regulator-suspend-microvolt = <3000000>;
191 };
192 };
193
194 vcc_3v3: DCDC_REG5 {
195 regulator-name = "vcc_3v3";
196 regulator-min-microvolt = <3300000>;
197 regulator-max-microvolt = <3300000>;
198 regulator-always-on;
199 regulator-boot-on;
200
201 regulator-state-mem {
202 regulator-on-in-suspend;
203 regulator-suspend-microvolt = <3300000>;
204 };
205 };
206
207 vcc_1v8: LDO_REG2 {
208 regulator-name = "vcc_1v8";
209 regulator-min-microvolt = <1800000>;
210 regulator-max-microvolt = <1800000>;
211 regulator-always-on;
212 regulator-boot-on;
213
214 regulator-state-mem {
215 regulator-on-in-suspend;
216 regulator-suspend-microvolt = <1800000>;
217 };
218 };
219
220 vcc_1v0: LDO_REG3 {
221 regulator-name = "vcc_1v0";
222 regulator-min-microvolt = <1000000>;
223 regulator-max-microvolt = <1000000>;
224 regulator-always-on;
225 regulator-boot-on;
226
227 regulator-state-mem {
228 regulator-on-in-suspend;
229 regulator-suspend-microvolt = <1000000>;
230 };
231 };
232
233 vccio_sd: LDO_REG5 {
234 regulator-name = "vccio_sd";
235 regulator-min-microvolt = <1800000>;
236 regulator-max-microvolt = <3300000>;
237 regulator-always-on;
238 regulator-boot-on;
239
240 regulator-state-mem {
241 regulator-on-in-suspend;
242 regulator-suspend-microvolt = <3300000>;
243 };
244 };
245
246 vcc_lcd: LDO_REG7 {
247 regulator-always-on;
248 regulator-boot-on;
249 regulator-min-microvolt = <1000000>;
250 regulator-max-microvolt = <1000000>;
251 regulator-name = "vcc_lcd";
252
253 regulator-state-mem {
254 regulator-off-in-suspend;
255 regulator-suspend-microvolt = <1000000>;
256 };
257 };
258
259 vcc_1v8_lcd: LDO_REG8 {
260 regulator-name = "vcc_1v8_lcd";
261 regulator-min-microvolt = <1800000>;
262 regulator-max-microvolt = <1800000>;
263 regulator-always-on;
264 regulator-boot-on;
265
266 regulator-state-mem {
267 regulator-on-in-suspend;
268 regulator-suspend-microvolt = <1800000>;
269 };
270 };
271
272 vcca_1v8: LDO_REG9 {
273 regulator-name = "vcca_1v8";
274 regulator-min-microvolt = <1800000>;
275 regulator-max-microvolt = <1800000>;
276 regulator-always-on;
277 regulator-boot-on;
278
279 regulator-state-mem {
280 regulator-off-in-suspend;
281 regulator-suspend-microvolt = <1800000>;
282 };
283 };
284 };
285 };
286};
287
288&i2c1 {
289 status = "okay";
290
291 /* SE05x is limited to Fast Mode */
292 clock-frequency = <400000>;
293
294 fan: fan@18 {
295 compatible = "ti,amc6821";
296 reg = <0x18>;
297 #cooling-cells = <2>;
298 };
299
300 rtc_twi: rtc@6f {
301 compatible = "isil,isl1208";
302 reg = <0x6f>;
303 };
304};
305
306&i2c3 {
307 status = "okay";
308};
309
310&i2s0_8ch {
311 rockchip,trcm-sync-tx-only;
312
313 pinctrl-0 = <&i2s0_8ch_sclktx &i2s0_8ch_lrcktx
314 &i2s0_8ch_sdo0 &i2s0_8ch_sdi0>;
315};
316
317&io_domains {
318 vccio1-supply = <&vcc_3v3>;
319 vccio2-supply = <&vccio_sd>;
320 vccio3-supply = <&vcc_3v3>;
321 vccio4-supply = <&vcc_3v3>;
322 vccio5-supply = <&vcc_3v3>;
323 vccio6-supply = <&vcc_emmc>;
324 vccio-oscgpi-supply = <&vcc_3v3>;
325
326 status = "okay";
327};
328
329&pinctrl {
330 emmc {
331 emmc_reset: emmc-reset {
332 rockchip,pins = <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
333 };
334 };
335
336 leds {
337 module_led_pin: module-led-pin {
338 rockchip,pins = <1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
339 };
340 };
341
342 pmic {
343 pmic_int: pmic-int {
344 rockchip,pins =
345 <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
346 };
347 };
348};
349
350&saradc {
351 vref-supply = <&vcc_1v8>;
352 status = "okay";
353};
354
355&sdmmc {
356 vqmmc-supply = <&vccio_sd>;
357};
358
359&tsadc {
360 status = "okay";
361};
362
363&u2phy {
364 status = "okay";
365};
366
367&u2phy_host {
368 status = "okay";
369};
370
371/* Mule UCAN */
372&usb_host0_ehci {
373 status = "okay";
374};
375
376&usb_host0_ohci {
377 status = "okay";
378};
379
380&wdt {
381 status = "okay";
382};