1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
5 #include <dt-bindings/gpio/gpio.h>
6 #include <dt-bindings/pinctrl/rockchip.h>
10 model = "Pine64 RK3566 Quartz64-A Board";
11 compatible = "pine64,quartz64-a", "rockchip,rk3566";
20 stdout-path = "serial2:1500000n8";
23 gmac1_clkin: external-gmac1-clock {
24 compatible = "fixed-clock";
25 clock-frequency = <125000000>;
26 clock-output-names = "gmac1_clkin";
31 compatible = "gpio-fan";
32 gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
33 gpio-fan,speed-map = <0 0
39 compatible = "gpio-leds";
43 default-state = "off";
44 gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>;
45 pinctrl-names = "default";
46 pinctrl-0 = <&work_led_enable_h>;
47 retain-state-suspended;
53 gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
54 linux,default-trigger = "heartbeat";
55 pinctrl-names = "default";
56 pinctrl-0 = <&diy_led_enable_h>;
57 retain-state-suspended;
62 compatible = "simple-audio-card";
63 simple-audio-card,format = "i2s";
64 simple-audio-card,name = "Analog RK817";
65 simple-audio-card,mclk-fs = <256>;
67 simple-audio-card,cpu {
68 sound-dai = <&i2s1_8ch>;
71 simple-audio-card,codec {
76 sdio_pwrseq: sdio-pwrseq {
77 compatible = "mmc-pwrseq-simple";
79 clock-names = "ext_clock";
80 pinctrl-names = "default";
81 pinctrl-0 = <&wifi_enable_h>;
82 post-power-on-delay-ms = <100>;
83 power-off-delay-us = <5000000>;
84 reset-gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_LOW>;
87 spdif_dit: spdif-dit {
88 compatible = "linux,spdif-dit";
89 #sound-dai-cells = <0>;
92 spdif_sound: spdif-sound {
93 compatible = "simple-audio-card";
94 simple-audio-card,name = "SPDIF";
96 simple-audio-card,cpu {
100 simple-audio-card,codec {
101 sound-dai = <&spdif_dit>;
105 vcc12v_dcin: vcc12v_dcin {
106 compatible = "regulator-fixed";
107 regulator-name = "vcc12v_dcin";
110 regulator-min-microvolt = <12000000>;
111 regulator-max-microvolt = <12000000>;
114 /* vbus feeds the rk817 usb input.
115 * With no battery attached, also feeds vcc_bat+
116 * via ON/OFF_BAT jumper
119 compatible = "regulator-fixed";
120 regulator-name = "vbus";
123 regulator-min-microvolt = <5000000>;
124 regulator-max-microvolt = <5000000>;
125 vin-supply = <&vcc12v_dcin>;
128 vcc5v0_usb: vcc5v0_usb {
129 compatible = "regulator-fixed";
130 regulator-name = "vcc5v0_usb";
133 regulator-min-microvolt = <5000000>;
134 regulator-max-microvolt = <5000000>;
135 vin-supply = <&vcc12v_dcin>;
138 /* all four ports are controlled by one gpio
139 * the host ports are sourced from vcc5v0_usb
140 * the otg port is sourced from vcc5v0_midu
142 vcc5v0_usb20_host: vcc5v0_usb20_host {
143 compatible = "regulator-fixed";
145 gpio = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
146 pinctrl-names = "default";
147 pinctrl-0 = <&vcc5v0_usb20_host_en>;
148 regulator-name = "vcc5v0_usb20_host";
149 regulator-min-microvolt = <5000000>;
150 regulator-max-microvolt = <5000000>;
151 vin-supply = <&vcc5v0_usb>;
154 vcc3v3_sd: vcc3v3_sd {
155 compatible = "regulator-fixed";
157 gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
158 pinctrl-names = "default";
159 pinctrl-0 = <&vcc_sd_h>;
161 regulator-name = "vcc3v3_sd";
162 regulator-min-microvolt = <3300000>;
163 regulator-max-microvolt = <3300000>;
164 vin-supply = <&vcc_3v3>;
167 /* sourced from vbus and vcc_bat+ via rk817 sw5 */
169 compatible = "regulator-fixed";
170 regulator-name = "vcc_sys";
173 regulator-min-microvolt = <4400000>;
174 regulator-max-microvolt = <4400000>;
175 vin-supply = <&vbus>;
178 /* sourced from vcc_sys, sdio module operates internally at 3.3v */
180 compatible = "regulator-fixed";
181 regulator-name = "vcc_wl";
184 regulator-min-microvolt = <3300000>;
185 regulator-max-microvolt = <3300000>;
186 vin-supply = <&vcc_sys>;
191 cpu-supply = <&vdd_cpu>;
195 cpu-supply = <&vdd_cpu>;
199 cpu-supply = <&vdd_cpu>;
203 cpu-supply = <&vdd_cpu>;
209 temperature = <55000>;
218 cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
224 assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>;
225 assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>;
226 clock_in_out = "input";
227 phy-supply = <&vcc_3v3>;
229 pinctrl-names = "default";
230 pinctrl-0 = <&gmac1m0_miim
236 snps,reset-gpio = <&gpio0 RK_PC3 GPIO_ACTIVE_LOW>;
237 snps,reset-active-low;
238 /* Reset time is 20ms, 100ms for rtl8211f */
239 snps,reset-delays-us = <0 20000 100000>;
242 phy-handle = <&rgmii_phy1>;
247 mali-supply = <&vdd_gpu>;
254 vdd_cpu: regulator@1c {
255 compatible = "tcs,tcs4525";
257 fcs,suspend-voltage-selector = <1>;
258 regulator-name = "vdd_cpu";
259 regulator-min-microvolt = <800000>;
260 regulator-max-microvolt = <1150000>;
261 regulator-ramp-delay = <2300>;
264 vin-supply = <&vcc_sys>;
266 regulator-state-mem {
267 regulator-off-in-suspend;
272 compatible = "rockchip,rk817";
274 interrupt-parent = <&gpio0>;
275 interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
276 assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
277 assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
278 clock-names = "mclk";
279 clocks = <&cru I2S1_MCLKOUT_TX>;
280 clock-output-names = "rk808-clkout1", "rk808-clkout2";
282 pinctrl-names = "default";
283 pinctrl-0 = <&pmic_int_l>, <&i2s1m0_mclk>;
284 rockchip,system-power-controller;
285 #sound-dai-cells = <0>;
288 vcc1-supply = <&vcc_sys>;
289 vcc2-supply = <&vcc_sys>;
290 vcc3-supply = <&vcc_sys>;
291 vcc4-supply = <&vcc_sys>;
292 vcc5-supply = <&vcc_sys>;
293 vcc6-supply = <&vcc_sys>;
294 vcc7-supply = <&vcc_sys>;
295 vcc8-supply = <&vcc_sys>;
296 vcc9-supply = <&dcdc_boost>;
299 vdd_logic: DCDC_REG1 {
302 regulator-min-microvolt = <500000>;
303 regulator-max-microvolt = <1350000>;
304 regulator-init-microvolt = <900000>;
305 regulator-ramp-delay = <6001>;
306 regulator-initial-mode = <0x2>;
307 regulator-name = "vdd_logic";
308 regulator-state-mem {
309 regulator-on-in-suspend;
310 regulator-suspend-microvolt = <900000>;
317 regulator-min-microvolt = <500000>;
318 regulator-max-microvolt = <1350000>;
319 regulator-init-microvolt = <900000>;
320 regulator-ramp-delay = <6001>;
321 regulator-initial-mode = <0x2>;
322 regulator-name = "vdd_gpu";
323 regulator-state-mem {
324 regulator-off-in-suspend;
331 regulator-initial-mode = <0x2>;
332 regulator-name = "vcc_ddr";
333 regulator-state-mem {
334 regulator-on-in-suspend;
341 regulator-min-microvolt = <3300000>;
342 regulator-max-microvolt = <3300000>;
343 regulator-initial-mode = <0x2>;
344 regulator-name = "vcc_3v3";
345 regulator-state-mem {
346 regulator-off-in-suspend;
350 vcca1v8_pmu: LDO_REG1 {
353 regulator-min-microvolt = <1800000>;
354 regulator-max-microvolt = <1800000>;
355 regulator-name = "vcca1v8_pmu";
356 regulator-state-mem {
357 regulator-on-in-suspend;
358 regulator-suspend-microvolt = <1800000>;
365 regulator-min-microvolt = <900000>;
366 regulator-max-microvolt = <900000>;
367 regulator-name = "vdda_0v9";
368 regulator-state-mem {
369 regulator-off-in-suspend;
373 vdda0v9_pmu: LDO_REG3 {
376 regulator-min-microvolt = <900000>;
377 regulator-max-microvolt = <900000>;
378 regulator-name = "vdda0v9_pmu";
379 regulator-state-mem {
380 regulator-on-in-suspend;
381 regulator-suspend-microvolt = <900000>;
385 vccio_acodec: LDO_REG4 {
388 regulator-min-microvolt = <3300000>;
389 regulator-max-microvolt = <3300000>;
390 regulator-name = "vccio_acodec";
391 regulator-state-mem {
392 regulator-off-in-suspend;
399 regulator-min-microvolt = <1800000>;
400 regulator-max-microvolt = <3300000>;
401 regulator-name = "vccio_sd";
402 regulator-state-mem {
403 regulator-off-in-suspend;
407 vcc3v3_pmu: LDO_REG6 {
410 regulator-min-microvolt = <3300000>;
411 regulator-max-microvolt = <3300000>;
412 regulator-name = "vcc3v3_pmu";
413 regulator-state-mem {
414 regulator-on-in-suspend;
415 regulator-suspend-microvolt = <3300000>;
422 regulator-min-microvolt = <1800000>;
423 regulator-max-microvolt = <1800000>;
424 regulator-name = "vcc_1v8";
425 regulator-state-mem {
426 regulator-off-in-suspend;
430 vcc1v8_dvp: LDO_REG8 {
433 regulator-min-microvolt = <1800000>;
434 regulator-max-microvolt = <1800000>;
435 regulator-name = "vcc1v8_dvp";
436 regulator-state-mem {
437 regulator-off-in-suspend;
441 vcc2v8_dvp: LDO_REG9 {
444 regulator-min-microvolt = <2800000>;
445 regulator-max-microvolt = <2800000>;
446 regulator-name = "vcc2v8_dvp";
447 regulator-state-mem {
448 regulator-off-in-suspend;
455 regulator-min-microvolt = <5000000>;
456 regulator-max-microvolt = <5000000>;
457 regulator-name = "boost";
458 regulator-state-mem {
459 regulator-off-in-suspend;
463 otg_switch: OTG_SWITCH {
464 regulator-name = "otg_switch";
465 regulator-state-mem {
466 regulator-off-in-suspend;
473 /* i2c3 is exposed on con40
474 * pin 3 - i2c3_sda_m0, pullup to vcc_3v3
475 * pin 5 - i2c3_scl_m0, pullup to vcc_3v3
482 pinctrl-names = "default";
483 pinctrl-0 = <&i2s1m0_sclktx
487 rockchip,trcm-sync-tx-only;
492 rgmii_phy1: ethernet-phy@0 {
493 compatible = "ethernet-phy-ieee802.3-c22";
500 bt_enable_h: bt-enable-h {
501 rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
504 bt_host_wake_l: bt-host-wake-l {
505 rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_down>;
508 bt_wake_l: bt-wake-l {
509 rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
514 work_led_enable_h: work-led-enable-h {
515 rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
518 diy_led_enable_h: diy-led-enable-h {
519 rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
524 pmic_int_l: pmic-int-l {
525 rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
530 vcc5v0_usb20_host_en: vcc5v0-usb20-host-en {
531 rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
536 wifi_enable_h: wifi-enable-h {
537 rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
543 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
549 pmuio1-supply = <&vcc3v3_pmu>;
550 pmuio2-supply = <&vcc3v3_pmu>;
551 vccio1-supply = <&vccio_acodec>;
552 vccio2-supply = <&vcc_1v8>;
553 vccio3-supply = <&vccio_sd>;
554 vccio4-supply = <&vcc_1v8>;
555 vccio5-supply = <&vcc_3v3>;
556 vccio6-supply = <&vcc1v8_dvp>;
557 vccio7-supply = <&vcc_3v3>;
565 vmmc-supply = <&vcc_3v3>;
566 vqmmc-supply = <&vcc_1v8>;
573 cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
575 pinctrl-names = "default";
576 pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
577 vmmc-supply = <&vcc3v3_sd>;
578 vqmmc-supply = <&vccio_sd>;
586 keep-power-in-suspend;
587 mmc-pwrseq = <&sdio_pwrseq>;
589 pinctrl-names = "default";
590 pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
592 vmmc-supply = <&vcc_wl>;
593 vqmmc-supply = <&vcc_1v8>;
597 /* spdif is exposed on con40 pin 18 */
602 /* spi1 is exposed on con40
603 * pin 11 - spi1_mosi_m1
604 * pin 13 - spi1_miso_m1
605 * pin 15 - spi1_clk_m1
606 * pin 17 - spi1_cs0_m1
609 pinctrl-names = "default";
610 pinctrl-0 = <&spi1m1_cs0 &spi1m1_pins>;
614 /* tshut mode 0:CRU 1:GPIO */
615 rockchip,hw-tshut-mode = <1>;
616 /* tshut polarity 0:LOW 1:HIGH */
617 rockchip,hw-tshut-polarity = <0>;
621 /* uart0 is exposed on con40
626 pinctrl-names = "default";
627 pinctrl-0 = <&uart0_xfer>;
632 pinctrl-names = "default";
633 pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn>;
638 compatible = "brcm,bcm43438-bt";
641 device-wake-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
642 host-wake-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
643 shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
644 pinctrl-names = "default";
645 pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
646 vbat-supply = <&vcc_sys>;
647 vddio-supply = <&vcca1v8_pmu>;
651 /* uart2 is exposed on con40
652 * pin 8 - uart2_tx_m0_debug
653 * pin 10 - uart2_rx_m0_debug
680 phy-supply = <&vcc5v0_usb20_host>;
685 phy-supply = <&vcc5v0_usb20_host>;