blob: 5a648db41f355e873dfdbc5be660622292a017fe [file] [log] [blame]
Tom Rini93743d22024-04-01 09:08:13 -04001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2
3/dts-v1/;
4
5#include <dt-bindings/gpio/gpio.h>
6#include <dt-bindings/input/linux-event-codes.h>
7#include <dt-bindings/leds/common.h>
8#include <dt-bindings/pinctrl/rockchip.h>
9#include <dt-bindings/soc/rockchip,vop2.h>
10#include "rk3566.dtsi"
11
12/ {
13 model = "Powkiddy x55";
Tom Rini762f85b2024-07-20 11:15:10 -060014 chassis-type = "handset";
Tom Rini93743d22024-04-01 09:08:13 -040015 compatible = "powkiddy,x55", "rockchip,rk3566";
16
17 aliases {
18 mmc0 = &sdhci;
19 mmc1 = &sdmmc0;
20 mmc2 = &sdmmc2;
21 mmc3 = &sdmmc1;
22 };
23
24 chosen: chosen {
25 stdout-path = "serial2:1500000n8";
26 };
27
28 adc_joystick: adc-joystick {
29 compatible = "adc-joystick";
30 io-channels = <&saradc 0>, <&saradc 1>,
31 <&saradc 2>, <&saradc 3>;
32 poll-interval = <60>;
33 #address-cells = <1>;
34 #size-cells = <0>;
35
36 axis@0 {
37 reg = <0>;
38 abs-flat = <30>;
39 abs-fuzz = <20>;
40 abs-range = <15 1023>;
41 linux,code = <ABS_X>;
42 };
43
44 axis@1 {
45 reg = <1>;
46 abs-flat = <30>;
47 abs-fuzz = <20>;
48 abs-range = <1023 15>;
49 linux,code = <ABS_Y>;
50 };
51
52 axis@2 {
53 reg = <2>;
54 abs-flat = <30>;
55 abs-fuzz = <20>;
56 abs-range = <15 1023>;
57 linux,code = <ABS_RX>;
58 };
59
60 axis@3 {
61 reg = <3>;
62 abs-flat = <30>;
63 abs-fuzz = <20>;
64 abs-range = <1023 15>;
65 linux,code = <ABS_RY>;
66 };
67 };
68
69 backlight: backlight {
70 compatible = "pwm-backlight";
71 power-supply = <&vcc_sys>;
72 pwms = <&pwm4 0 25000 0>;
73 };
74
75 battery: battery {
76 compatible = "simple-battery";
77 charge-full-design-microamp-hours = <4000000>;
78 charge-term-current-microamp = <300000>;
79 constant-charge-current-max-microamp = <2000000>;
80 constant-charge-voltage-max-microvolt = <4300000>;
81 factory-internal-resistance-micro-ohms = <91000>;
82 voltage-max-design-microvolt = <4138000>;
83 voltage-min-design-microvolt = <3400000>;
84
85 ocv-capacity-celsius = <20>;
86 ocv-capacity-table-0 = <4138000 100>, <4083000 95>, <4059000 90>, <4044000 85>,
87 <4030000 80>, <4020000 75>, <4006000 70>, <3972000 65>,
88 <3934000 60>, <3904000 55>, <3878000 50>, <3857000 45>,
89 <3843000 40>, <3826000 35>, <3801000 30>, <3768000 25>,
90 <3735000 20>, <3688000 15>, <3621000 10>, <3553000 5>,
91 <3400000 0>;
92 };
93
94 gpio_keys_control: gpio-keys-control {
95 compatible = "gpio-keys";
96 pinctrl-0 = <&btn_pins_ctrl>;
97 pinctrl-names = "default";
98
99 button-a {
100 gpios = <&gpio3 RK_PD3 GPIO_ACTIVE_LOW>;
101 label = "EAST";
102 linux,code = <BTN_EAST>;
103 };
104
105 button-b {
106 gpios = <&gpio3 RK_PD2 GPIO_ACTIVE_LOW>;
107 label = "SOUTH";
108 linux,code = <BTN_SOUTH>;
109 };
110
111 button-down {
112 gpios = <&gpio4 RK_PA1 GPIO_ACTIVE_LOW>;
113 label = "DPAD-DOWN";
114 linux,code = <BTN_DPAD_DOWN>;
115 };
116
117 button-l1 {
118 gpios = <&gpio3 RK_PD0 GPIO_ACTIVE_LOW>;
119 label = "TL";
120 linux,code = <BTN_TL>;
121 };
122
123 button-l2 {
124 gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_LOW>;
125 label = "TL2";
126 linux,code = <BTN_TL2>;
127 };
128
129 button-left {
130 gpios = <&gpio3 RK_PD6 GPIO_ACTIVE_LOW>;
131 label = "DPAD-LEFT";
132 linux,code = <BTN_DPAD_LEFT>;
133 };
134
135 button-right {
136 gpios = <&gpio3 RK_PD7 GPIO_ACTIVE_LOW>;
137 label = "DPAD-RIGHT";
138 linux,code = <BTN_DPAD_RIGHT>;
139 };
140
141 button-select {
142 gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_LOW>;
143 label = "SELECT";
144 linux,code = <BTN_SELECT>;
145 };
146
147 button-start {
148 gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_LOW>;
149 label = "START";
150 linux,code = <BTN_START>;
151 };
152
153 button-thumbl {
154 gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_LOW>;
155 label = "THUMBL";
156 linux,code = <BTN_THUMBL>;
157 };
158
159 button-thumbr {
160 gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
161 label = "THUMBR";
162 linux,code = <BTN_THUMBR>;
163 };
164
165 button-r1 {
166 gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_LOW>;
167 label = "TR";
168 linux,code = <BTN_TR>;
169 };
170
171 button-r2 {
172 gpios = <&gpio3 RK_PC7 GPIO_ACTIVE_LOW>;
173 label = "TR2";
174 linux,code = <BTN_TR2>;
175 };
176
177 button-up {
178 gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
179 label = "DPAD-UP";
180 linux,code = <BTN_DPAD_UP>;
181 };
182
183 button-x {
184 gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>;
185 label = "NORTH";
186 linux,code = <BTN_NORTH>;
187 };
188
189 button-y {
190 gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_LOW>;
191 label = "WEST";
192 linux,code = <BTN_WEST>;
193 };
194 };
195
196 gpio_keys_vol: gpio-keys-vol {
197 compatible = "gpio-keys";
198 autorepeat;
199 pinctrl-0 = <&btn_pins_vol>;
200 pinctrl-names = "default";
201
202 button-voldown {
203 gpios = <&gpio4 RK_PA3 GPIO_ACTIVE_LOW>;
204 label = "VOLUMEDOWN";
205 linux,code = <KEY_VOLUMEDOWN>;
206 };
207
208 button-volup {
209 gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_LOW>;
210 label = "VOLUMEUP";
211 linux,code = <KEY_VOLUMEUP>;
212 };
213 };
214
215 gpio_leds: gpio-leds {
216 compatible = "gpio-leds";
217 pinctrl-names = "default";
218 pinctrl-0 = <&led_pins>;
219
220 red_led: led-0 {
221 color = <LED_COLOR_ID_RED>;
222 default-state = "off";
223 gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
224 function = LED_FUNCTION_STATUS;
225 };
226
227 green_led: led-1 {
228 color = <LED_COLOR_ID_GREEN>;
229 default-state = "on";
230 gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
231 function = LED_FUNCTION_POWER;
232 };
233
234 amber_led: led-2 {
235 color = <LED_COLOR_ID_AMBER>;
236 gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
237 function = LED_FUNCTION_CHARGING;
238 };
239
240 };
241
242 hdmi-con {
243 compatible = "hdmi-connector";
244 ddc-i2c-bus = <&i2c5>;
245 type = "c";
246
247 port {
248 hdmi_con_in: endpoint {
249 remote-endpoint = <&hdmi_out_con>;
250 };
251 };
252 };
253
254 sdio_pwrseq: sdio-pwrseq {
255 compatible = "mmc-pwrseq-simple";
256 clocks = <&rk817 1>;
257 clock-names = "ext_clock";
258 pinctrl-0 = <&wifi_enable_h>;
259 pinctrl-names = "default";
260 post-power-on-delay-ms = <200>;
261 reset-gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>;
262 };
263
264 /* Channels reversed for both headphones and speakers. */
265 sound {
266 compatible = "simple-audio-card";
267 pinctrl-0 = <&hp_det>;
268 pinctrl-names = "default";
269 simple-audio-card,name = "rk817_ext";
270 simple-audio-card,aux-devs = <&spk_amp>;
271 simple-audio-card,format = "i2s";
272 simple-audio-card,hp-det-gpio = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
273 simple-audio-card,mclk-fs = <256>;
274 simple-audio-card,widgets =
275 "Microphone", "Mic Jack",
276 "Headphone", "Headphones",
277 "Speaker", "Internal Speakers";
278 simple-audio-card,routing =
279 "MICL", "Mic Jack",
280 "Headphones", "HPOL",
281 "Headphones", "HPOR",
282 "Internal Speakers", "Speaker Amp OUTL",
283 "Internal Speakers", "Speaker Amp OUTR",
284 "Speaker Amp INL", "HPOL",
285 "Speaker Amp INR", "HPOR";
286 simple-audio-card,pin-switches = "Internal Speakers";
287
288 simple-audio-card,codec {
289 sound-dai = <&rk817>;
290 };
291
292 simple-audio-card,cpu {
293 sound-dai = <&i2s1_8ch>;
294 };
295 };
296
297 spk_amp: audio-amplifier {
298 compatible = "simple-audio-amplifier";
299 enable-gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>;
300 pinctrl-0 = <&spk_amp_enable_h>;
301 pinctrl-names = "default";
302 sound-name-prefix = "Speaker Amp";
303 };
304
305 vcc5v0_host: regulator-vcc5v0-host {
306 compatible = "regulator-fixed";
307 enable-active-high;
308 gpio = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>;
309 pinctrl-0 = <&vcc5v0_host_en>;
310 pinctrl-names = "default";
311 regulator-name = "vcc5v0_host";
312 vin-supply = <&dcdc_boost>;
313 };
314
315 vcc_lcd: regulator-vcc-lcd {
316 compatible = "regulator-fixed";
317 enable-active-high;
318 gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
319 pinctrl-0 = <&vcc_lcd_en>;
320 pinctrl-names = "default";
321 regulator-min-microvolt = <3300000>;
322 regulator-max-microvolt = <3300000>;
323 regulator-name = "vcc_lcd";
324 };
325
326 vcc_sys: regulator-vcc-sys {
327 compatible = "regulator-fixed";
328 regulator-always-on;
329 regulator-boot-on;
330 regulator-min-microvolt = <3800000>;
331 regulator-max-microvolt = <3800000>;
332 regulator-name = "vcc_sys";
333 };
334
335 vcc_wifi: regulator-vcc-wifi {
336 compatible = "regulator-fixed";
337 gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
338 pinctrl-0 = <&vcc_wifi_h>;
339 pinctrl-names = "default";
340 regulator-min-microvolt = <3300000>;
341 regulator-max-microvolt = <3300000>;
342 regulator-name = "vcc_wifi";
343 };
344};
345
346&combphy1 {
347 status = "okay";
348};
349
350&cru {
351 assigned-clocks = <&pmucru CLK_RTC_32K>, <&cru PLL_GPLL>,
352 <&pmucru PLL_PPLL>, <&cru PLL_VPLL>;
353 assigned-clock-rates = <32768>, <1200000000>,
354 <200000000>, <126400000>;
355};
356
357&cpu0 {
358 cpu-supply = <&vdd_cpu>;
359};
360
361&cpu1 {
362 cpu-supply = <&vdd_cpu>;
363};
364
365&cpu2 {
366 cpu-supply = <&vdd_cpu>;
367};
368
369&cpu3 {
370 cpu-supply = <&vdd_cpu>;
371};
372
373&dsi_dphy0 {
374 status = "okay";
375};
376
377&dsi0 {
378 status = "okay";
379 #address-cells = <1>;
380 #size-cells = <0>;
381
382 ports {
383 dsi0_in: port@0 {
384 reg = <0>;
385 dsi0_in_vp1: endpoint {
386 remote-endpoint = <&vp1_out_dsi0>;
387 };
388 };
389
390 dsi0_out: port@1 {
391 reg = <1>;
392 mipi_out_panel: endpoint {
393 remote-endpoint = <&mipi_in_panel>;
394 };
395 };
396 };
397
398 panel: panel@0 {
399 compatible = "powkiddy,x55-panel", "himax,hx8394";
400 reg = <0>;
401 backlight = <&backlight>;
402 iovcc-supply = <&vcc_lcd>;
403 pinctrl-names = "default";
404 pinctrl-0 = <&lcd_rst>;
405 reset-gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_LOW>;
406 rotation = <270>;
407 vcc-supply = <&vcc_lcd>;
408
409 port {
410 mipi_in_panel: endpoint {
411 remote-endpoint = <&mipi_out_panel>;
412 };
413 };
414 };
415};
416
417&gpu {
418 mali-supply = <&vdd_gpu>;
419 status = "okay";
420};
421
422&hdmi {
423 ddc-i2c-bus = <&i2c5>;
424 pinctrl-0 = <&hdmitxm0_cec>;
425 pinctrl-names = "default";
426 status = "okay";
427};
428
429&hdmi_in {
430 hdmi_in_vp0: endpoint {
431 remote-endpoint = <&vp0_out_hdmi>;
432 };
433};
434
435&hdmi_out {
436 hdmi_out_con: endpoint {
437 remote-endpoint = <&hdmi_con_in>;
438 };
439};
440
441&hdmi_sound {
442 status = "okay";
443};
444
445&i2c0 {
446 status = "okay";
447
448 rk817: pmic@20 {
449 compatible = "rockchip,rk817";
450 reg = <0x20>;
451 assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
452 assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
453 clock-names = "mclk";
454 clock-output-names = "rk808-clkout1", "rk808-clkout2";
455 clocks = <&cru I2S1_MCLKOUT_TX>;
456 interrupt-parent = <&gpio0>;
457 interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
458 pinctrl-names = "default";
459 pinctrl-0 = <&i2s1m0_mclk>, <&pmic_int_l>;
460 wakeup-source;
461 #clock-cells = <1>;
462 #sound-dai-cells = <0>;
463
464 vcc1-supply = <&vcc_sys>;
465 vcc2-supply = <&vcc_sys>;
466 vcc3-supply = <&vcc_sys>;
467 vcc4-supply = <&vcc_sys>;
468 vcc5-supply = <&vcc_sys>;
469 vcc6-supply = <&vcc_sys>;
470 vcc7-supply = <&vcc_sys>;
471 vcc8-supply = <&vcc_sys>;
472 vcc9-supply = <&dcdc_boost>;
473
474 regulators {
475 vdd_logic: DCDC_REG1 {
476 regulator-always-on;
477 regulator-boot-on;
478 regulator-min-microvolt = <500000>;
479 regulator-max-microvolt = <1350000>;
480 regulator-ramp-delay = <6001>;
481 regulator-initial-mode = <0x2>;
482 regulator-name = "vdd_logic";
483 regulator-state-mem {
484 regulator-off-in-suspend;
485 regulator-suspend-microvolt = <900000>;
486 };
487 };
488
489 vdd_gpu: DCDC_REG2 {
490 regulator-always-on;
491 regulator-boot-on;
492 regulator-min-microvolt = <500000>;
493 regulator-max-microvolt = <1350000>;
494 regulator-ramp-delay = <6001>;
495 regulator-initial-mode = <0x2>;
496 regulator-name = "vdd_gpu";
497 regulator-state-mem {
498 regulator-off-in-suspend;
499 };
500 };
501
502 vcc_ddr: DCDC_REG3 {
503 regulator-always-on;
504 regulator-boot-on;
505 regulator-initial-mode = <0x2>;
506 regulator-name = "vcc_ddr";
507 regulator-state-mem {
508 regulator-on-in-suspend;
509 };
510 };
511
512 vcc_3v3: DCDC_REG4 {
513 regulator-always-on;
514 regulator-boot-on;
515 regulator-min-microvolt = <3300000>;
516 regulator-max-microvolt = <3300000>;
517 regulator-initial-mode = <0x2>;
518 regulator-name = "vcc_3v3";
519 regulator-state-mem {
520 regulator-on-in-suspend;
521 regulator-suspend-microvolt = <3300000>;
522 };
523 };
524
525 vcca1v8_pmu: LDO_REG1 {
526 regulator-always-on;
527 regulator-boot-on;
528 regulator-min-microvolt = <1800000>;
529 regulator-max-microvolt = <1800000>;
530 regulator-name = "vcca1v8_pmu";
531 regulator-state-mem {
532 regulator-on-in-suspend;
533 regulator-suspend-microvolt = <1800000>;
534 };
535 };
536
537 vdda_0v9: LDO_REG2 {
538 regulator-always-on;
539 regulator-boot-on;
540 regulator-min-microvolt = <900000>;
541 regulator-max-microvolt = <900000>;
542 regulator-name = "vdda_0v9";
543 regulator-state-mem {
544 regulator-off-in-suspend;
545 };
546 };
547
548 vdda0v9_pmu: LDO_REG3 {
549 regulator-always-on;
550 regulator-boot-on;
551 regulator-min-microvolt = <900000>;
552 regulator-max-microvolt = <900000>;
553 regulator-name = "vdda0v9_pmu";
554 regulator-state-mem {
555 regulator-on-in-suspend;
556 regulator-suspend-microvolt = <900000>;
557 };
558 };
559
560 vccio_acodec: LDO_REG4 {
561 regulator-always-on;
562 regulator-boot-on;
563 regulator-min-microvolt = <3300000>;
564 regulator-max-microvolt = <3300000>;
565 regulator-name = "vccio_acodec";
566 regulator-state-mem {
567 regulator-off-in-suspend;
568 };
569 };
570
571 vccio_sd: LDO_REG5 {
572 regulator-always-on;
573 regulator-boot-on;
574 regulator-min-microvolt = <1800000>;
575 regulator-max-microvolt = <3300000>;
576 regulator-name = "vccio_sd";
577 regulator-state-mem {
578 regulator-off-in-suspend;
579 };
580 };
581
582 vcc3v3_pmu: LDO_REG6 {
583 regulator-always-on;
584 regulator-boot-on;
585 regulator-min-microvolt = <3300000>;
586 regulator-max-microvolt = <3300000>;
587 regulator-name = "vcc3v3_pmu";
588 regulator-state-mem {
589 regulator-on-in-suspend;
590 regulator-suspend-microvolt = <3300000>;
591 };
592 };
593
594 vcc_1v8: LDO_REG7 {
595 regulator-always-on;
596 regulator-boot-on;
597 regulator-min-microvolt = <1800000>;
598 regulator-max-microvolt = <1800000>;
599 regulator-name = "vcc_1v8";
600 regulator-state-mem {
601 regulator-off-in-suspend;
602 };
603 };
604
605 vcc1v8_dvp: LDO_REG8 {
606 regulator-always-on;
607 regulator-boot-on;
608 regulator-min-microvolt = <1800000>;
609 regulator-max-microvolt = <1800000>;
610 regulator-name = "vcc1v8_dvp";
611 regulator-state-mem {
612 regulator-on-in-suspend;
613 };
614 };
615
616 vcc2v8_dvp: LDO_REG9 {
617 regulator-always-on;
618 regulator-boot-on;
619 regulator-min-microvolt = <1800000>;
620 regulator-max-microvolt = <3300000>;
621 regulator-name = "vcc2v8_dvp";
622 regulator-state-mem {
623 regulator-off-in-suspend;
624 };
625 };
626
627 dcdc_boost: BOOST {
628 regulator-min-microvolt = <4700000>;
629 regulator-max-microvolt = <5400000>;
630 regulator-name = "boost";
631 regulator-state-mem {
632 regulator-off-in-suspend;
633 };
634 };
635
636 otg_switch: OTG_SWITCH {
637 regulator-name = "otg_switch";
638 regulator-state-mem {
639 regulator-off-in-suspend;
640 };
641 };
642 };
643
644 rk817_charger: charger {
645 monitored-battery = <&battery>;
646 rockchip,resistor-sense-micro-ohms = <10000>;
647 rockchip,sleep-enter-current-microamp = <150000>;
648 rockchip,sleep-filter-current-microamp = <100000>;
649 };
650
651 };
652
653 vdd_cpu: regulator@1c {
654 compatible = "tcs,tcs4525";
655 reg = <0x1c>;
656 fcs,suspend-voltage-selector = <1>;
657 regulator-always-on;
658 regulator-boot-on;
659 regulator-min-microvolt = <712500>;
660 regulator-max-microvolt = <1390000>;
661 regulator-name = "vdd_cpu";
662 regulator-ramp-delay = <2300>;
663 vin-supply = <&vcc_sys>;
664 regulator-state-mem {
665 regulator-off-in-suspend;
666 };
667 };
668};
669
670&i2c5 {
671 pinctrl-0 = <&i2c5m1_xfer>;
672 pinctrl-names = "default";
673 status = "okay";
674};
675
676&i2s0_8ch {
677 status = "okay";
678};
679
680&i2s1_8ch {
681 pinctrl-0 = <&i2s1m0_sclktx>, <&i2s1m0_lrcktx>, <&i2s1m0_sdi0>,
682 <&i2s1m0_sdo0>;
683 pinctrl-names = "default";
684 rockchip,trcm-sync-tx-only;
685 status = "okay";
686};
687
688&pinctrl {
689 audio-amplifier {
690 spk_amp_enable_h: spk-amp-enable-h {
691 rockchip,pins =
692 <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
693 };
694 };
695
696 gpio-control {
697 btn_pins_ctrl: btn-pins-ctrl {
698 rockchip,pins =
699 <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>,
700 <3 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>,
701 <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>,
702 <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>,
703 <3 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>,
704 <3 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>,
705 <3 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>,
706 <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>,
707 <3 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>,
708 <3 RK_PD7 RK_FUNC_GPIO &pcfg_pull_up>,
709 <4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>,
710 <4 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>,
711 <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
712 <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
713 <4 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>,
714 <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
715 };
716
717 btn_pins_vol: btn-pins-vol {
718 rockchip,pins =
719 <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
720 <4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
721 };
722 };
723
724 gpio-lcd {
725 lcd_rst: lcd-rst {
726 rockchip,pins =
727 <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
728 };
729 };
730
731 gpio-leds {
732 led_pins: led-pins {
733 rockchip,pins =
734 <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>,
735 <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>,
736 <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
737 };
738 };
739
740 hp-detect {
741 hp_det: hp-det {
742 rockchip,pins =
743 <4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
744 };
745 };
746
747 pmic {
748 pmic_int_l: pmic-int-l {
749 rockchip,pins =
750 <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
751 };
752 };
753
754 sdio-pwrseq {
755 wifi_enable_h: wifi-enable-h {
756 rockchip,pins =
757 <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
758 };
759 };
760
761 usb {
762 vcc5v0_host_en: vcc5v0-host-en {
763 rockchip,pins =
764 <4 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>;
765 };
766
767 vcc5v0_otg_en: vcc5v0-otg-en {
768 rockchip,pins =
769 <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
770 };
771 };
772
773 vcc-lcd {
774 vcc_lcd_en: vcc-lcd-en {
775 rockchip,pins =
776 <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
777 };
778 };
779
780 vcc-wifi {
781 vcc_wifi_h: vcc-wifi-h {
782 rockchip,pins =
783 <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
784 };
785 };
786};
787
788&pmu_io_domains {
789 status = "okay";
790 pmuio1-supply = <&vcc3v3_pmu>;
791 pmuio2-supply = <&vcca1v8_pmu>;
792 vccio1-supply = <&vccio_acodec>;
793 vccio3-supply = <&vccio_sd>;
794 vccio4-supply = <&vcca1v8_pmu>;
795 vccio5-supply = <&vcc2v8_dvp>;
796 vccio6-supply = <&vcc1v8_dvp>;
797 vccio7-supply = <&vcc_3v3>;
798};
799
800&pwm4 {
801 status = "okay";
802};
803
804&saradc {
805 vref-supply = <&vcc_1v8>;
806 status = "okay";
807};
808
809&sdhci {
810 bus-width = <8>;
811 mmc-hs200-1_8v;
812 non-removable;
813 pinctrl-0 = <&emmc_bus8>, <&emmc_clk>, <&emmc_cmd>,
814 <&emmc_datastrobe>, <&emmc_rstnout>;
815 pinctrl-names = "default";
816 status = "okay";
817};
818
819&sdmmc0 {
820 bus-width = <4>;
821 cap-mmc-highspeed;
822 cap-sd-highspeed;
823 disable-wp;
824 pinctrl-0 = <&sdmmc0_bus4>, <&sdmmc0_clk>, <&sdmmc0_cmd>,
825 <&sdmmc0_det>;
826 pinctrl-names = "default";
827 sd-uhs-sdr104;
828 vqmmc-supply = <&vccio_sd>;
829 status = "okay";
830};
831
832&sdmmc1 {
833 bus-width = <4>;
834 cap-sd-highspeed;
835 cap-sdio-irq;
836 keep-power-in-suspend;
837 mmc-pwrseq = <&sdio_pwrseq>;
838 non-removable;
839 pinctrl-0 = <&sdmmc1_bus4>, <&sdmmc1_cmd>, <&sdmmc1_clk>;
840 pinctrl-names = "default";
841 vmmc-supply = <&vcc_wifi>;
842 status = "okay";
843};
844
845&sdmmc2 {
846 bus-width = <4>;
847 cap-mmc-highspeed;
848 cap-sd-highspeed;
849 disable-wp;
850 pinctrl-0 = <&sdmmc2m1_bus4>, <&sdmmc2m1_cmd>, <&sdmmc2m1_clk>,
851 <&sdmmc2m1_det>;
852 pinctrl-names = "default";
853 sd-uhs-sdr104;
854 vqmmc-supply = <&vcc2v8_dvp>;
855 status = "okay";
856};
857
858&tsadc {
859 rockchip,hw-tshut-mode = <1>;
860 rockchip,hw-tshut-polarity = <0>;
861 status = "okay";
862};
863
864&uart1 {
865 pinctrl-0 = <&uart1m0_xfer>, <&uart1m0_ctsn>, <&uart1m0_rtsn>;
866 pinctrl-names = "default";
867 uart-has-rtscts;
868 status = "okay";
869
870 bluetooth {
871 compatible = "realtek,rtl8821cs-bt", "realtek,rtl8723bs-bt";
872 device-wake-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
873 enable-gpios = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
874 host-wake-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
875 };
876};
877
878&uart2 {
879 status = "okay";
880};
881
882&usb_host0_xhci {
883 phys = <&usb2phy0_otg>;
884 phy-names = "usb2-phy";
885 status = "okay";
886};
887
888&usb_host1_xhci {
889 status = "okay";
890};
891
892&usb2phy0 {
893 status = "okay";
894};
895
896&usb2phy0_otg {
897 status = "okay";
898};
899
900&usb2phy0_host {
901 phy-supply = <&vcc5v0_host>;
902 status = "okay";
903};
904
905&vop {
906 assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
907 assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
908 status = "okay";
909};
910
911&vop_mmu {
912 status = "okay";
913};
914
915&vp0 {
916 vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
917 reg = <ROCKCHIP_VOP2_EP_HDMI0>;
918 remote-endpoint = <&hdmi_in_vp0>;
919 };
920};
921
922&vp1 {
923 vp1_out_dsi0: endpoint@ROCKCHIP_VOP2_EP_MIPI0 {
924 reg = <ROCKCHIP_VOP2_EP_MIPI0>;
925 remote-endpoint = <&dsi0_in_vp1>;
926 };
927};