1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
5 #include <dt-bindings/gpio/gpio.h>
6 #include <dt-bindings/input/linux-event-codes.h>
7 #include <dt-bindings/pinctrl/rockchip.h>
8 #include <dt-bindings/usb/pd.h>
9 #include "rk3588s.dtsi"
12 model = "Indiedroid Nova";
13 compatible = "indiedroid,nova", "rockchip,rk3588s";
16 compatible = "adc-keys";
17 io-channel-names = "buttons";
18 io-channels = <&saradc 0>;
19 keyup-threshold-microvolt = <1800000>;
20 poll-interval = <100>;
24 linux,code = <KEY_PROG1>;
25 press-threshold-microvolt = <18000>;
30 compatible = "adc-keys";
31 io-channel-names = "buttons";
32 io-channels = <&saradc 1>;
33 keyup-threshold-microvolt = <1800000>;
34 poll-interval = <100>;
38 linux,code = <KEY_PROG2>;
39 press-threshold-microvolt = <18000>;
51 stdout-path = "serial2:1500000n8";
54 sdio_pwrseq: sdio-pwrseq {
55 compatible = "mmc-pwrseq-simple";
56 clock-names = "ext_clock";
57 clocks = <&rtc_hym8563>;
58 pinctrl-0 = <&wifi_enable_h>;
59 pinctrl-names = "default";
60 post-power-on-delay-ms = <200>;
61 reset-gpios = <&gpio0 RK_PC7 GPIO_ACTIVE_LOW>;
65 compatible = "audio-graph-card";
66 label = "rockchip,es8388-codec";
67 widgets = "Microphone", "Mic Jack",
68 "Headphone", "Headphones";
69 routing = "LINPUT2", "Mic Jack",
70 "Headphones", "LOUT1",
71 "Headphones", "ROUT1";
72 dais = <&i2s0_8ch_p0>;
75 vbus5v0_typec: vbus5v0-typec-regulator {
76 compatible = "regulator-fixed";
78 gpio = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
79 pinctrl-0 = <&typec5v_pwren>;
80 pinctrl-names = "default";
81 regulator-name = "vbus5v0_typec";
82 regulator-min-microvolt = <5000000>;
83 regulator-max-microvolt = <5000000>;
84 vin-supply = <&vcc5v0_usb>;
87 vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator {
88 compatible = "regulator-fixed";
91 regulator-max-microvolt = <1100000>;
92 regulator-min-microvolt = <1100000>;
93 regulator-name = "vcc_1v1_nldo_s3";
94 vin-supply = <&vcc5v0_sys>;
97 /* Regulator is enabled whenever vcc_1v8_s0 is above 1.6v */
98 vcc_3v3_s0: vcc-3v3-s0-regulator {
99 compatible = "regulator-fixed";
102 regulator-max-microvolt = <3300000>;
103 regulator-min-microvolt = <3300000>;
104 regulator-name = "vcc_3v3_s0";
105 vin-supply = <&vcc_3v3_s3>;
107 regulator-state-mem {
108 regulator-off-in-suspend;
112 vcc5v0_sys: vcc5v0-sys-regulator {
113 compatible = "regulator-fixed";
116 regulator-max-microvolt = <5000000>;
117 regulator-min-microvolt = <5000000>;
118 regulator-name = "vcc5v0_sys";
121 vcc5v0_usb: vcc5v0-usb-regulator {
122 compatible = "regulator-fixed";
125 regulator-max-microvolt = <5000000>;
126 regulator-min-microvolt = <5000000>;
127 regulator-name = "vcc5v0_usb";
128 vin-supply = <&vcc5v0_usbdcin>;
131 vcc5v0_usbdcin: vcc5v0-usbdcin-regulator {
132 compatible = "regulator-fixed";
135 regulator-max-microvolt = <5000000>;
136 regulator-min-microvolt = <5000000>;
137 regulator-name = "vcc5v0_usbdcin";
146 cpu-supply = <&vdd_cpu_lit_s0>;
150 cpu-supply = <&vdd_cpu_lit_s0>;
154 cpu-supply = <&vdd_cpu_lit_s0>;
158 cpu-supply = <&vdd_cpu_lit_s0>;
162 cpu-supply = <&vdd_cpu_big0_s0>;
166 cpu-supply = <&vdd_cpu_big0_s0>;
170 cpu-supply = <&vdd_cpu_big1_s0>;
174 cpu-supply = <&vdd_cpu_big1_s0>;
178 * Add labels for each GPIO pin exposed on the 40 pin header. Note that
179 * voltage of each GPIO pin could be either 3.3v or 1.8v (as noted by
183 gpio-line-names = /* GPIO0 A0-A7 */
193 "HEADER_12_1v8", "", "", "HEADER_24_1v8",
198 gpio-line-names = /* GPIO1 A0-A7 */
199 "HEADER_27_3v3", "HEADER_28_3v3", "", "",
200 "HEADER_29_1v8", "", "HEADER_7_1v8", "",
202 "", "HEADER_31_1v8", "HEADER_33_1v8", "",
203 "HEADER_11_1v8", "HEADER_13_1v8", "", "",
209 "", "", "HEADER_5_3v3", "HEADER_3_3v3";
213 gpio-line-names = /* GPIO3 A0-A7 */
217 "HEADER_16_1v8", "HEADER_18_1v8", "", "",
218 "", "", "", "HEADER_19_1v8",
220 "HEADER_21_1v8", "HEADER_23_1v8", "", "HEADER_26_1v8",
221 "HEADER_15_1v8", "HEADER_22_1v8", "", "",
228 gpio-line-names = /* GPIO4 A0-A7 */
229 "", "", "HEADER_37_3v3", "HEADER_32_3v3",
230 "HEADER_36_3v3", "", "HEADER_35_3v3", "HEADER_38_3v3",
232 "", "", "", "HEADER_40_3v3",
233 "HEADER_8_3v3", "HEADER_10_3v3", "", "",
243 pinctrl-0 = <&i2c0m2_xfer>;
244 pinctrl-names = "default";
247 vdd_cpu_big0_s0: regulator@42 {
248 compatible = "rockchip,rk8602";
252 regulator-max-microvolt = <1050000>;
253 regulator-min-microvolt = <550000>;
254 regulator-name = "vdd_cpu_big0_s0";
255 regulator-ramp-delay = <2300>;
256 fcs,suspend-voltage-selector = <1>;
257 vin-supply = <&vcc5v0_sys>;
259 regulator-state-mem {
260 regulator-off-in-suspend;
264 vdd_cpu_big1_s0: regulator@43 {
265 compatible = "rockchip,rk8603", "rockchip,rk8602";
269 regulator-max-microvolt = <1050000>;
270 regulator-min-microvolt = <550000>;
271 regulator-name = "vdd_cpu_big1_s0";
272 regulator-ramp-delay = <2300>;
273 fcs,suspend-voltage-selector = <1>;
274 vin-supply = <&vcc5v0_sys>;
276 regulator-state-mem {
277 regulator-off-in-suspend;
285 vdd_npu_s0: regulator@42 {
286 compatible = "rockchip,rk8602";
290 regulator-max-microvolt = <950000>;
291 regulator-min-microvolt = <550000>;
292 regulator-name = "vdd_npu_s0";
293 regulator-ramp-delay = <2300>;
294 fcs,suspend-voltage-selector = <1>;
295 vin-supply = <&vcc5v0_sys>;
297 regulator-state-mem {
298 regulator-off-in-suspend;
304 pinctrl-0 = <&i2c6m3_xfer>;
307 fusb302: typec-portc@22 {
308 compatible = "fcs,fusb302";
310 interrupt-parent = <&gpio0>;
311 interrupts = <RK_PC4 IRQ_TYPE_LEVEL_LOW>;
312 pinctrl-0 = <&usbc0_int>;
313 pinctrl-names = "default";
314 vbus-supply = <&vbus5v0_typec>;
317 compatible = "usb-c-connector";
321 try-power-role = "sink";
322 source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
323 sink-pdos = <PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>;
324 op-sink-microwatt = <1000000>;
328 rtc_hym8563: rtc@51 {
329 compatible = "haoyu,hym8563";
332 clock-output-names = "hym8563";
333 interrupt-parent = <&gpio0>;
334 interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
335 pinctrl-0 = <&hym8563_int>;
336 pinctrl-names = "default";
342 pinctrl-0 = <&i2c7m0_xfer>;
345 es8388: audio-codec@11 {
346 compatible = "everest,es8388";
348 assigned-clock-rates = <12288000>;
349 assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
350 AVDD-supply = <&vcc_3v3_s3>;
351 clock-names = "mclk";
352 clocks = <&cru I2S0_8CH_MCLKOUT>;
353 DVDD-supply = <&vcc_1v8_s3>;
354 HPVDD-supply = <&vcc_3v3_s3>;
355 PVDD-supply = <&vcc_1v8_s3>;
356 #sound-dai-cells = <0>;
359 es8388_p0_0: endpoint {
360 remote-endpoint = <&i2s0_8ch_p0_0>;
367 pinctrl-names = "default";
368 pinctrl-0 = <&i2s0_lrck
376 i2s0_8ch_p0_0: endpoint {
379 remote-endpoint = <&es8388_p0_0>;
385 pinctrl-0 = <&rtl8111_perstb>;
386 pinctrl-names = "default";
394 <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
397 bt_wake_dev: bt-wake-dev {
399 <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
402 bt_wake_host: bt-wake-host {
404 <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_down>;
409 rtl8111_perstb: rtl8111-perstb {
410 rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>;
416 hym8563_int: hym8563-int {
418 <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
423 wifi_enable_h: wifi-enable-h {
425 <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
430 usbc0_int: usbc0-int {
432 <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>;
435 typec5v_pwren: typec5v-pwren {
437 <4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
443 vref-supply = <&vcca_1v8_s0>;
447 /* HS400 modes seemed to cause io errors. */
454 vmmc-supply = <&vcc_3v3_s0>;
455 vqmmc-supply = <&vcc_1v8_s3>;
464 keep-power-in-suspend;
465 max-frequency = <100000000>;
466 mmc-pwrseq = <&sdio_pwrseq>;
471 vmmc-supply = <&vcc_3v3_s3>;
472 vqmmc-supply = <&vcc_1v8_s3>;
484 vmmc-supply = <&vcc_3v3_s3>;
485 vqmmc-supply = <&vccio_sd_s0>;
490 #address-cells = <1>;
491 assigned-clocks = <&cru CLK_SPI2>;
492 assigned-clock-rates = <200000000>;
494 pinctrl-0 = <&spi2m2_pins>, <&spi2m2_cs0>;
495 pinctrl-names = "default";
500 compatible = "rockchip,rk806";
504 interrupt-parent = <&gpio0>;
505 interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>;
506 pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
507 <&rk806_dvs2_null>, <&rk806_dvs3_null>;
508 pinctrl-names = "default";
509 spi-max-frequency = <1000000>;
511 vcc1-supply = <&vcc5v0_sys>;
512 vcc2-supply = <&vcc5v0_sys>;
513 vcc3-supply = <&vcc5v0_sys>;
514 vcc4-supply = <&vcc5v0_sys>;
515 vcc5-supply = <&vcc5v0_sys>;
516 vcc6-supply = <&vcc5v0_sys>;
517 vcc7-supply = <&vcc5v0_sys>;
518 vcc8-supply = <&vcc5v0_sys>;
519 vcc9-supply = <&vcc5v0_sys>;
520 vcc10-supply = <&vcc5v0_sys>;
521 vcc11-supply = <&vcc_2v0_pldo_s3>;
522 vcc12-supply = <&vcc5v0_sys>;
523 vcc13-supply = <&vcc_1v1_nldo_s3>;
524 vcc14-supply = <&vcc_1v1_nldo_s3>;
525 vcca-supply = <&vcc5v0_sys>;
527 rk806_dvs1_null: dvs1-null-pins {
528 pins = "gpio_pwrctrl2";
529 function = "pin_fun0";
532 rk806_dvs2_null: dvs2-null-pins {
533 pins = "gpio_pwrctrl2";
534 function = "pin_fun0";
537 rk806_dvs3_null: dvs3-null-pins {
538 pins = "gpio_pwrctrl3";
539 function = "pin_fun0";
543 vdd_gpu_s0: dcdc-reg1 {
545 regulator-enable-ramp-delay = <400>;
546 regulator-max-microvolt = <950000>;
547 regulator-min-microvolt = <550000>;
548 regulator-name = "vdd_gpu_s0";
549 regulator-ramp-delay = <12500>;
550 regulator-state-mem {
551 regulator-off-in-suspend;
555 vdd_cpu_lit_s0: dcdc-reg2 {
558 regulator-max-microvolt = <950000>;
559 regulator-min-microvolt = <550000>;
560 regulator-ramp-delay = <12500>;
561 regulator-name = "vdd_cpu_lit_s0";
562 regulator-state-mem {
563 regulator-off-in-suspend;
567 vdd_logic_s0: dcdc-reg3 {
570 regulator-max-microvolt = <750000>;
571 regulator-min-microvolt = <675000>;
572 regulator-name = "vdd_logic_s0";
573 regulator-ramp-delay = <12500>;
574 regulator-state-mem {
575 regulator-on-in-suspend;
576 regulator-suspend-microvolt = <750000>;
580 vdd_vdenc_s0: dcdc-reg4 {
583 regulator-max-microvolt = <950000>;
584 regulator-min-microvolt = <550000>;
585 regulator-name = "vdd_vdenc_s0";
586 regulator-ramp-delay = <12500>;
587 regulator-state-mem {
588 regulator-off-in-suspend;
592 vdd_ddr_s0: dcdc-reg5 {
595 regulator-min-microvolt = <750000>;
596 regulator-max-microvolt = <850000>;
597 regulator-ramp-delay = <12500>;
598 regulator-name = "vdd_ddr_s0";
599 regulator-state-mem {
600 regulator-off-in-suspend;
601 regulator-suspend-microvolt = <850000>;
605 vdd2_ddr_s3: dcdc-reg6 {
608 regulator-max-microvolt = <1100000>;
609 regulator-min-microvolt = <1100000>;
610 regulator-name = "vdd2_ddr_s3";
611 regulator-state-mem {
612 regulator-on-in-suspend;
616 vcc_2v0_pldo_s3: dcdc-reg7 {
619 regulator-max-microvolt = <2000000>;
620 regulator-min-microvolt = <2000000>;
621 regulator-name = "vdd_2v0_pldo_s3";
622 regulator-state-mem {
623 regulator-on-in-suspend;
624 regulator-suspend-microvolt = <2000000>;
628 vcc_3v3_s3: dcdc-reg8 {
631 regulator-max-microvolt = <3300000>;
632 regulator-min-microvolt = <3300000>;
633 regulator-name = "vcc_3v3_s3";
634 regulator-state-mem {
635 regulator-on-in-suspend;
636 regulator-suspend-microvolt = <3300000>;
640 vddq_ddr_s0: dcdc-reg9 {
643 regulator-max-microvolt = <600000>;
644 regulator-min-microvolt = <600000>;
645 regulator-name = "vddq_ddr_s0";
646 regulator-state-mem {
647 regulator-off-in-suspend;
651 vcc_1v8_s3: dcdc-reg10 {
654 regulator-max-microvolt = <1800000>;
655 regulator-min-microvolt = <1800000>;
656 regulator-name = "vcc_1v8_s3";
657 regulator-state-mem {
658 regulator-on-in-suspend;
659 regulator-suspend-microvolt = <1800000>;
663 vcc_1v8_s0: pldo-reg1 {
666 regulator-max-microvolt = <1800000>;
667 regulator-min-microvolt = <1800000>;
668 regulator-name = "vcc_1v8_s0";
669 regulator-state-mem {
670 regulator-off-in-suspend;
674 vcca_1v8_s0: pldo-reg2 {
677 regulator-max-microvolt = <1800000>;
678 regulator-min-microvolt = <1800000>;
679 regulator-name = "vcca_1v8_s0";
680 regulator-state-mem {
681 regulator-off-in-suspend;
682 regulator-suspend-microvolt = <1800000>;
686 vdda_1v2_s0: pldo-reg3 {
689 regulator-max-microvolt = <1200000>;
690 regulator-min-microvolt = <1200000>;
691 regulator-name = "vdda_1v2_s0";
692 regulator-state-mem {
693 regulator-off-in-suspend;
697 vcca_3v3_s0: pldo-reg4 {
700 regulator-max-microvolt = <3300000>;
701 regulator-min-microvolt = <3300000>;
702 regulator-name = "vcca_3v3_s0";
703 regulator-state-mem {
704 regulator-off-in-suspend;
708 vccio_sd_s0: pldo-reg5 {
711 regulator-max-microvolt = <3300000>;
712 regulator-min-microvolt = <1800000>;
713 regulator-name = "vccio_sd_s0";
714 regulator-state-mem {
715 regulator-off-in-suspend;
719 vcc_1v8_s3_pldo6: pldo-reg6 {
722 regulator-max-microvolt = <1800000>;
723 regulator-min-microvolt = <1800000>;
724 regulator-name = "vcc_1v8_s3_pldo6";
725 regulator-state-mem {
726 regulator-on-in-suspend;
727 regulator-suspend-microvolt = <1800000>;
731 vdd_0v75_s3: nldo-reg1 {
734 regulator-max-microvolt = <750000>;
735 regulator-min-microvolt = <750000>;
736 regulator-name = "vdd_0v75_s3";
737 regulator-state-mem {
738 regulator-on-in-suspend;
739 regulator-suspend-microvolt = <750000>;
743 vdda_ddr_pll_s0: nldo-reg2 {
746 regulator-max-microvolt = <850000>;
747 regulator-min-microvolt = <850000>;
748 regulator-name = "vdda_ddr_pll_s0";
749 regulator-state-mem {
750 regulator-off-in-suspend;
751 regulator-suspend-microvolt = <850000>;
755 avdd_0v75_s0: nldo-reg3 {
758 regulator-max-microvolt = <750000>;
759 regulator-min-microvolt = <750000>;
760 regulator-name = "avdd_0v75_s0";
761 regulator-state-mem {
762 regulator-off-in-suspend;
766 vdda_0v85_s0: nldo-reg4 {
769 regulator-min-microvolt = <850000>;
770 regulator-max-microvolt = <850000>;
771 regulator-name = "vdda_0v85_s0";
772 regulator-state-mem {
773 regulator-off-in-suspend;
777 /* Schematics show not in use */
793 phy-supply = <&vcc5v0_usb>;
802 phy-supply = <&vcc5v0_usb>;
807 pinctrl-0 = <&uart2m0_xfer>;
811 /* DMA seems to interfere with bluetooth device normal operation. */
813 pinctrl-0 = <&uart9m2_xfer>, <&uart9m2_ctsn>, <&uart9m2_rtsn>;
814 pinctrl-names = "default";
815 /delete-property/ dma-names;
816 /delete-property/ dmas;
821 compatible = "realtek,rtl8821cs-bt",
822 "realtek,rtl8723bs-bt";
823 device-wake-gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
824 enable-gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
825 host-wake-gpios = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
826 pinctrl-0 = <&bt_reset>, <&bt_wake_dev>, <&bt_wake_host>;
827 pinctrl-names = "default";