Merge tag 'smp-urgent-2023-09-02' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / rockchip / rk3568-radxa-cm3i.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2
3 #include <dt-bindings/gpio/gpio.h>
4 #include <dt-bindings/leds/common.h>
5 #include <dt-bindings/pinctrl/rockchip.h>
6 #include "rk3568.dtsi"
7
8 / {
9         compatible = "radxa,cm3i", "rockchip,rk3568";
10
11         aliases {
12                 mmc0 = &sdhci;
13         };
14
15         chosen {
16                 stdout-path = "serial2:115200n8";
17         };
18
19         gpio-leds {
20                 compatible = "gpio-leds";
21
22                 led_user: led-0 {
23                         gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
24                         function = LED_FUNCTION_HEARTBEAT;
25                         color = <LED_COLOR_ID_GREEN>;
26                         linux,default-trigger = "heartbeat";
27                         pinctrl-names = "default";
28                         pinctrl-0 = <&led_user_en>;
29                 };
30         };
31
32         pcie30_avdd0v9: pcie30-avdd0v9-regulator {
33                 compatible = "regulator-fixed";
34                 regulator-name = "pcie30_avdd0v9";
35                 regulator-always-on;
36                 regulator-boot-on;
37                 regulator-min-microvolt = <900000>;
38                 regulator-max-microvolt = <900000>;
39                 vin-supply = <&vcc3v3_sys>;
40         };
41
42         pcie30_avdd1v8: pcie30-avdd1v8-regulator {
43                 compatible = "regulator-fixed";
44                 regulator-name = "pcie30_avdd1v8";
45                 regulator-always-on;
46                 regulator-boot-on;
47                 regulator-min-microvolt = <1800000>;
48                 regulator-max-microvolt = <1800000>;
49                 vin-supply = <&vcc3v3_sys>;
50         };
51
52         vcc3v3_sys: vcc3v3-sys-regulator {
53                 compatible = "regulator-fixed";
54                 regulator-name = "vcc3v3_sys";
55                 regulator-always-on;
56                 regulator-boot-on;
57                 regulator-min-microvolt = <3300000>;
58                 regulator-max-microvolt = <3300000>;
59                 vin-supply = <&vcc5v_input>;
60         };
61
62         vcc5v0_sys: vcc5v0-sys-regulator {
63                 compatible = "regulator-fixed";
64                 regulator-name = "vcc5v0_sys";
65                 regulator-always-on;
66                 regulator-boot-on;
67                 regulator-min-microvolt = <5000000>;
68                 regulator-max-microvolt = <5000000>;
69                 vin-supply = <&vcc5v_input>;
70         };
71
72         /* labeled +5v_input in schematic */
73         vcc5v_input: vcc5v-input-regulator {
74                 compatible = "regulator-fixed";
75                 regulator-name = "vcc5v_input";
76                 regulator-always-on;
77                 regulator-boot-on;
78                 regulator-min-microvolt = <5000000>;
79                 regulator-max-microvolt = <5000000>;
80         };
81 };
82
83 &combphy0 {
84         status = "okay";
85 };
86
87 &combphy1 {
88         status = "okay";
89 };
90
91 &combphy2 {
92         status = "okay";
93 };
94
95 &cpu0 {
96         cpu-supply = <&vdd_cpu>;
97 };
98
99 &cpu1 {
100         cpu-supply = <&vdd_cpu>;
101 };
102
103 &cpu2 {
104         cpu-supply = <&vdd_cpu>;
105 };
106
107 &cpu3 {
108         cpu-supply = <&vdd_cpu>;
109 };
110
111 &display_subsystem {
112         status = "disabled";
113 };
114
115 &gpu {
116         mali-supply = <&vdd_gpu>;
117         status = "okay";
118 };
119
120 &i2c0 {
121         status = "okay";
122
123         vdd_cpu: regulator@1c {
124                 compatible = "tcs,tcs4525";
125                 reg = <0x1c>;
126                 fcs,suspend-voltage-selector = <1>;
127                 regulator-name = "vdd_cpu";
128                 regulator-always-on;
129                 regulator-boot-on;
130                 regulator-min-microvolt = <800000>;
131                 regulator-max-microvolt = <1150000>;
132                 regulator-ramp-delay = <2300>;
133                 vin-supply = <&vcc5v_input>;
134
135                 regulator-state-mem {
136                         regulator-off-in-suspend;
137                 };
138         };
139
140         rk809: pmic@20 {
141                 compatible = "rockchip,rk809";
142                 reg = <0x20>;
143                 interrupt-parent = <&gpio0>;
144                 interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
145                 #clock-cells = <1>;
146                 pinctrl-names = "default";
147                 pinctrl-0 = <&pmic_int>;
148                 rockchip,system-power-controller;
149                 wakeup-source;
150
151                 vcc1-supply = <&vcc3v3_sys>;
152                 vcc2-supply = <&vcc3v3_sys>;
153                 vcc3-supply = <&vcc3v3_sys>;
154                 vcc4-supply = <&vcc3v3_sys>;
155                 vcc5-supply = <&vcc3v3_sys>;
156                 vcc6-supply = <&vcc3v3_sys>;
157                 vcc7-supply = <&vcc3v3_sys>;
158                 vcc8-supply = <&vcc3v3_sys>;
159                 vcc9-supply = <&vcc3v3_sys>;
160
161                 regulators {
162                         vdd_logic: DCDC_REG1 {
163                                 regulator-name = "vdd_logic";
164                                 regulator-always-on;
165                                 regulator-boot-on;
166                                 regulator-initial-mode = <0x2>;
167                                 regulator-min-microvolt = <500000>;
168                                 regulator-max-microvolt = <1350000>;
169                                 regulator-ramp-delay = <6001>;
170
171                                 regulator-state-mem {
172                                         regulator-off-in-suspend;
173                                 };
174                         };
175
176                         vdd_gpu: DCDC_REG2 {
177                                 regulator-name = "vdd_gpu";
178                                 regulator-always-on;
179                                 regulator-initial-mode = <0x2>;
180                                 regulator-min-microvolt = <500000>;
181                                 regulator-max-microvolt = <1350000>;
182                                 regulator-ramp-delay = <6001>;
183
184                                 regulator-state-mem {
185                                         regulator-off-in-suspend;
186                                 };
187                         };
188
189                         vcc_ddr: DCDC_REG3 {
190                                 regulator-name = "vcc_ddr";
191                                 regulator-always-on;
192                                 regulator-boot-on;
193                                 regulator-initial-mode = <0x2>;
194
195                                 regulator-state-mem {
196                                         regulator-on-in-suspend;
197                                 };
198                         };
199
200                         vdd_npu: DCDC_REG4 {
201                                 regulator-name = "vdd_npu";
202                                 regulator-initial-mode = <0x2>;
203                                 regulator-min-microvolt = <500000>;
204                                 regulator-max-microvolt = <1350000>;
205                                 regulator-ramp-delay = <6001>;
206
207                                 regulator-state-mem {
208                                         regulator-off-in-suspend;
209                                 };
210                         };
211
212                         vcc_1v8: DCDC_REG5 {
213                                 regulator-name = "vcc_1v8";
214                                 regulator-always-on;
215                                 regulator-boot-on;
216                                 regulator-min-microvolt = <1800000>;
217                                 regulator-max-microvolt = <1800000>;
218
219                                 regulator-state-mem {
220                                         regulator-off-in-suspend;
221                                 };
222                         };
223
224                         vdda0v9_image: LDO_REG1 {
225                                 regulator-name = "vdda0v9_image";
226                                 regulator-min-microvolt = <900000>;
227                                 regulator-max-microvolt = <900000>;
228
229                                 regulator-state-mem {
230                                         regulator-off-in-suspend;
231                                 };
232                         };
233
234                         vdda_0v9: LDO_REG2 {
235                                 regulator-name = "vdda_0v9";
236                                 regulator-always-on;
237                                 regulator-boot-on;
238                                 regulator-min-microvolt = <900000>;
239                                 regulator-max-microvolt = <900000>;
240
241                                 regulator-state-mem {
242                                         regulator-off-in-suspend;
243                                 };
244                         };
245
246                         vdda0v9_pmu: LDO_REG3 {
247                                 regulator-name = "vdda0v9_pmu";
248                                 regulator-always-on;
249                                 regulator-boot-on;
250                                 regulator-min-microvolt = <900000>;
251                                 regulator-max-microvolt = <900000>;
252
253                                 regulator-state-mem {
254                                         regulator-on-in-suspend;
255                                         regulator-suspend-microvolt = <900000>;
256                                 };
257                         };
258
259                         vccio_acodec: LDO_REG4 {
260                                 regulator-name = "vccio_acodec";
261                                 regulator-always-on;
262                                 regulator-min-microvolt = <3300000>;
263                                 regulator-max-microvolt = <3300000>;
264
265                                 regulator-state-mem {
266                                         regulator-off-in-suspend;
267                                 };
268                         };
269
270                         vccio_sd: LDO_REG5 {
271                                 regulator-name = "vccio_sd";
272                                 regulator-min-microvolt = <1800000>;
273                                 regulator-max-microvolt = <3300000>;
274
275                                 regulator-state-mem {
276                                         regulator-off-in-suspend;
277                                 };
278                         };
279
280                         vcc3v3_pmu: LDO_REG6 {
281                                 regulator-name = "vcc3v3_pmu";
282                                 regulator-always-on;
283                                 regulator-boot-on;
284                                 regulator-min-microvolt = <3300000>;
285                                 regulator-max-microvolt = <3300000>;
286
287                                 regulator-state-mem {
288                                         regulator-on-in-suspend;
289                                         regulator-suspend-microvolt = <3300000>;
290                                 };
291                         };
292
293                         vcca_1v8: LDO_REG7 {
294                                 regulator-name = "vcca_1v8";
295                                 regulator-always-on;
296                                 regulator-boot-on;
297                                 regulator-min-microvolt = <1800000>;
298                                 regulator-max-microvolt = <1800000>;
299
300                                 regulator-state-mem {
301                                         regulator-off-in-suspend;
302                                 };
303                         };
304
305                         vcca1v8_pmu: LDO_REG8 {
306                                 regulator-name = "vcca1v8_pmu";
307                                 regulator-always-on;
308                                 regulator-boot-on;
309                                 regulator-min-microvolt = <1800000>;
310                                 regulator-max-microvolt = <1800000>;
311
312                                 regulator-state-mem {
313                                         regulator-on-in-suspend;
314                                         regulator-suspend-microvolt = <1800000>;
315                                 };
316                         };
317
318                         vcca1v8_image: LDO_REG9 {
319                                 regulator-name = "vcca1v8_image";
320                                 regulator-min-microvolt = <1800000>;
321                                 regulator-max-microvolt = <1800000>;
322
323                                 regulator-state-mem {
324                                         regulator-off-in-suspend;
325                                 };
326                         };
327
328                         vcc_3v3: SWITCH_REG1 {
329                                 regulator-name = "vcc_3v3";
330                                 regulator-always-on;
331                                 regulator-boot-on;
332
333                                 regulator-state-mem {
334                                         regulator-off-in-suspend;
335                                 };
336                         };
337
338                         vcc3v3_sd: SWITCH_REG2 {
339                                 regulator-name = "vcc3v3_sd";
340
341                                 regulator-state-mem {
342                                         regulator-off-in-suspend;
343                                 };
344                         };
345                 };
346         };
347 };
348
349 &pinctrl {
350         leds {
351                 led_user_en: led_user_en {
352                         rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
353                 };
354         };
355
356         pmic {
357                 pmic_int: pmic_int {
358                         rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
359                 };
360         };
361 };
362
363 &pmu_io_domains {
364         pmuio1-supply = <&vcc3v3_pmu>;
365         pmuio2-supply = <&vcc3v3_pmu>;
366         vccio1-supply = <&vccio_acodec>;
367         vccio2-supply = <&vcc_1v8>;
368         vccio3-supply = <&vccio_sd>;
369         vccio4-supply = <&vcc_1v8>;
370         vccio5-supply = <&vcc_3v3>;
371         vccio6-supply = <&vcc_1v8>;
372         vccio7-supply = <&vcc_3v3>;
373         status = "okay";
374 };
375
376 &saradc {
377         vref-supply = <&vcca_1v8>;
378         status = "okay";
379 };
380
381 &sdhci {
382         bus-width = <8>;
383         max-frequency = <200000000>;
384         non-removable;
385         pinctrl-names = "default";
386         pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
387         vmmc-supply = <&vcc_3v3>;
388         vqmmc-supply = <&vcc_1v8>;
389         status = "okay";
390 };
391
392 &tsadc {
393         rockchip,hw-tshut-mode = <1>;
394         rockchip,hw-tshut-polarity = <0>;
395         status = "okay";
396 };
397
398 &uart2 {
399         status = "okay";
400 };
401
402 &usb2phy0 {
403         status = "okay";
404 };
405
406 &usb2phy1 {
407         status = "okay";
408 };
409
410 &usb_host0_xhci {
411         extcon = <&usb2phy0>;
412 };