1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
3 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
4 * Copyright (c) 2018 Akash Gajjar <Akash_Gajjar@mentor.com>
8 #include <dt-bindings/input/linux-event-codes.h>
9 #include <dt-bindings/pwm/pwm.h>
10 #include "rk3399.dtsi"
11 #include "rk3399-opp.dtsi"
14 model = "Pine64 RockPro64";
15 compatible = "pine64,rockpro64", "rockchip,rk3399";
18 stdout-path = "serial2:1500000n8";
21 clkin_gmac: external-gmac-clock {
22 compatible = "fixed-clock";
23 clock-frequency = <125000000>;
24 clock-output-names = "clkin_gmac";
29 compatible = "regulator-fixed";
30 regulator-name = "dc_12v";
33 regulator-min-microvolt = <12000000>;
34 regulator-max-microvolt = <12000000>;
38 compatible = "gpio-keys";
40 pinctrl-names = "default";
41 pinctrl-0 = <&pwrbtn>;
44 debounce-interval = <100>;
45 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
46 label = "GPIO Key Power";
47 linux,code = <KEY_POWER>;
53 compatible = "gpio-leds";
54 pinctrl-names = "default";
55 pinctrl-0 = <&work_led_gpio>, <&diy_led_gpio>;
60 gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
65 default-state = "off";
66 gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
70 sdio_pwrseq: sdio-pwrseq {
71 compatible = "mmc-pwrseq-simple";
73 clock-names = "ext_clock";
74 pinctrl-names = "default";
75 pinctrl-0 = <&wifi_enable_h>;
78 * On the module itself this is one of these (depending
79 * on the actual card populated):
80 * - SDIO_RESET_L_WL_REG_ON
81 * - PDN (power down when low)
83 reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
86 /* switched by pmic_sleep */
87 vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
88 compatible = "regulator-fixed";
89 regulator-name = "vcc1v8_s3";
92 regulator-min-microvolt = <1800000>;
93 regulator-max-microvolt = <1800000>;
94 vin-supply = <&vcc_1v8>;
97 vcc3v3_pcie: vcc3v3-pcie-regulator {
98 compatible = "regulator-fixed";
100 gpio = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>;
101 pinctrl-names = "default";
102 pinctrl-0 = <&pcie_pwr_en>;
103 regulator-name = "vcc3v3_pcie";
106 vin-supply = <&dc_12v>;
109 vcc3v3_sys: vcc3v3-sys {
110 compatible = "regulator-fixed";
111 regulator-name = "vcc3v3_sys";
114 regulator-min-microvolt = <3300000>;
115 regulator-max-microvolt = <3300000>;
116 vin-supply = <&vcc_sys>;
119 /* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */
120 vcc5v0_host: vcc5v0-host-regulator {
121 compatible = "regulator-fixed";
123 gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
124 pinctrl-names = "default";
125 pinctrl-0 = <&vcc5v0_host_en>;
126 regulator-name = "vcc5v0_host";
128 vin-supply = <&vcc_sys>;
131 vcc5v0_typec: vcc5v0-typec-regulator {
132 compatible = "regulator-fixed";
134 gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
135 pinctrl-names = "default";
136 pinctrl-0 = <&vcc5v0_typec_en>;
137 regulator-name = "vcc5v0_typec";
139 vin-supply = <&vcc_sys>;
143 compatible = "regulator-fixed";
144 regulator-name = "vcc_sys";
147 regulator-min-microvolt = <5000000>;
148 regulator-max-microvolt = <5000000>;
149 vin-supply = <&dc_12v>;
153 compatible = "pwm-regulator";
154 pwms = <&pwm2 0 25000 1>;
155 regulator-name = "vdd_log";
158 regulator-min-microvolt = <800000>;
159 regulator-max-microvolt = <1400000>;
160 vin-supply = <&vcc_sys>;
165 cpu-supply = <&vdd_cpu_l>;
169 cpu-supply = <&vdd_cpu_l>;
173 cpu-supply = <&vdd_cpu_l>;
177 cpu-supply = <&vdd_cpu_l>;
181 cpu-supply = <&vdd_cpu_b>;
185 cpu-supply = <&vdd_cpu_b>;
193 assigned-clocks = <&cru SCLK_RMII_SRC>;
194 assigned-clock-parents = <&clkin_gmac>;
195 clock_in_out = "input";
196 phy-supply = <&vcc_lan>;
198 pinctrl-names = "default";
199 pinctrl-0 = <&rgmii_pins>;
200 snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
201 snps,reset-active-low;
202 snps,reset-delays-us = <0 10000 50000>;
209 clock-frequency = <400000>;
210 i2c-scl-rising-time-ns = <168>;
211 i2c-scl-falling-time-ns = <4>;
215 compatible = "rockchip,rk808";
217 interrupt-parent = <&gpio1>;
218 interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
220 clock-output-names = "xin32k", "rk808-clkout2";
221 pinctrl-names = "default";
222 pinctrl-0 = <&pmic_int_l>;
223 rockchip,system-power-controller;
226 vcc1-supply = <&vcc_sys>;
227 vcc2-supply = <&vcc_sys>;
228 vcc3-supply = <&vcc_sys>;
229 vcc4-supply = <&vcc_sys>;
230 vcc6-supply = <&vcc_sys>;
231 vcc7-supply = <&vcc_sys>;
232 vcc8-supply = <&vcc3v3_sys>;
233 vcc9-supply = <&vcc_sys>;
234 vcc10-supply = <&vcc_sys>;
235 vcc11-supply = <&vcc_sys>;
236 vcc12-supply = <&vcc3v3_sys>;
237 vddio-supply = <&vcc1v8_pmu>;
240 vdd_center: DCDC_REG1 {
241 regulator-name = "vdd_center";
244 regulator-min-microvolt = <750000>;
245 regulator-max-microvolt = <1350000>;
246 regulator-ramp-delay = <6001>;
247 regulator-state-mem {
248 regulator-off-in-suspend;
252 vdd_cpu_l: DCDC_REG2 {
253 regulator-name = "vdd_cpu_l";
256 regulator-min-microvolt = <750000>;
257 regulator-max-microvolt = <1350000>;
258 regulator-ramp-delay = <6001>;
259 regulator-state-mem {
260 regulator-off-in-suspend;
265 regulator-name = "vcc_ddr";
268 regulator-state-mem {
269 regulator-on-in-suspend;
274 regulator-name = "vcc_1v8";
277 regulator-min-microvolt = <1800000>;
278 regulator-max-microvolt = <1800000>;
279 regulator-state-mem {
280 regulator-on-in-suspend;
281 regulator-suspend-microvolt = <1800000>;
285 vcc1v8_dvp: LDO_REG1 {
286 regulator-name = "vcc1v8_dvp";
289 regulator-min-microvolt = <1800000>;
290 regulator-max-microvolt = <1800000>;
291 regulator-state-mem {
292 regulator-off-in-suspend;
296 vcc2v8_dvp: LDO_REG2 {
297 regulator-name = "vcc2v8_dvp";
300 regulator-min-microvolt = <2800000>;
301 regulator-max-microvolt = <2800000>;
302 regulator-state-mem {
303 regulator-off-in-suspend;
307 vcc1v8_pmu: LDO_REG3 {
308 regulator-name = "vcc1v8_pmu";
311 regulator-min-microvolt = <1800000>;
312 regulator-max-microvolt = <1800000>;
313 regulator-state-mem {
314 regulator-on-in-suspend;
315 regulator-suspend-microvolt = <1800000>;
320 regulator-name = "vcc_sdio";
323 regulator-min-microvolt = <1800000>;
324 regulator-max-microvolt = <3000000>;
325 regulator-state-mem {
326 regulator-on-in-suspend;
327 regulator-suspend-microvolt = <3000000>;
331 vcca3v0_codec: LDO_REG5 {
332 regulator-name = "vcca3v0_codec";
335 regulator-min-microvolt = <3000000>;
336 regulator-max-microvolt = <3000000>;
337 regulator-state-mem {
338 regulator-off-in-suspend;
343 regulator-name = "vcc_1v5";
346 regulator-min-microvolt = <1500000>;
347 regulator-max-microvolt = <1500000>;
348 regulator-state-mem {
349 regulator-on-in-suspend;
350 regulator-suspend-microvolt = <1500000>;
354 vcca1v8_codec: LDO_REG7 {
355 regulator-name = "vcca1v8_codec";
358 regulator-min-microvolt = <1800000>;
359 regulator-max-microvolt = <1800000>;
360 regulator-state-mem {
361 regulator-off-in-suspend;
366 regulator-name = "vcc_3v0";
369 regulator-min-microvolt = <3000000>;
370 regulator-max-microvolt = <3000000>;
371 regulator-state-mem {
372 regulator-on-in-suspend;
373 regulator-suspend-microvolt = <3000000>;
377 vcc3v3_s3: vcc_lan: SWITCH_REG1 {
378 regulator-name = "vcc3v3_s3";
381 regulator-state-mem {
382 regulator-off-in-suspend;
386 vcc3v3_s0: SWITCH_REG2 {
387 regulator-name = "vcc3v3_s0";
390 regulator-state-mem {
391 regulator-off-in-suspend;
397 vdd_cpu_b: regulator@40 {
398 compatible = "silergy,syr827";
400 fcs,suspend-voltage-selector = <0>;
401 regulator-name = "vdd_cpu_b";
402 regulator-min-microvolt = <712500>;
403 regulator-max-microvolt = <1500000>;
404 regulator-ramp-delay = <1000>;
407 vin-supply = <&vcc_sys>;
409 regulator-state-mem {
410 regulator-off-in-suspend;
414 vdd_gpu: regulator@41 {
415 compatible = "silergy,syr828";
417 fcs,suspend-voltage-selector = <1>;
418 regulator-name = "vdd_gpu";
419 regulator-min-microvolt = <712500>;
420 regulator-max-microvolt = <1500000>;
421 regulator-ramp-delay = <1000>;
424 vin-supply = <&vcc_sys>;
426 regulator-state-mem {
427 regulator-off-in-suspend;
433 i2c-scl-rising-time-ns = <300>;
434 i2c-scl-falling-time-ns = <15>;
439 i2c-scl-rising-time-ns = <450>;
440 i2c-scl-falling-time-ns = <15>;
445 i2c-scl-rising-time-ns = <600>;
446 i2c-scl-falling-time-ns = <20>;
449 fusb0: typec-portc@22 {
450 compatible = "fcs,fusb302";
452 interrupt-parent = <&gpio1>;
453 interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
454 pinctrl-names = "default";
455 pinctrl-0 = <&fusb0_int>;
456 vbus-supply = <&vcc5v0_typec>;
462 rockchip,playback-channels = <8>;
463 rockchip,capture-channels = <8>;
468 rockchip,playback-channels = <2>;
469 rockchip,capture-channels = <2>;
480 bt656-supply = <&vcc1v8_dvp>;
481 audio-supply = <&vcca1v8_codec>;
482 sdmmc-supply = <&vcc_sdio>;
483 gpio1830-supply = <&vcc_3v0>;
487 pmu1830-supply = <&vcc_3v0>;
494 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
499 fusb0_int: fusb0-int {
500 rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
505 work_led_gpio: work_led-gpio {
506 rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
509 diy_led_gpio: diy_led-gpio {
510 rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
515 lcd_panel_reset: lcd-panel-reset {
516 rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
521 pcie_pwr_en: pcie-pwr-en {
522 rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
527 pmic_int_l: pmic-int-l {
528 rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
531 vsel1_gpio: vsel1-gpio {
532 rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
535 vsel2_gpio: vsel2-gpio {
536 rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
541 wifi_enable_h: wifi-enable-h {
542 rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
547 vcc5v0_typec_en: vcc5v0_typec_en {
548 rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
553 vcc5v0_host_en: vcc5v0-host-en {
554 rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
568 vref-supply = <&vcca1v8_s3>;
576 cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
578 max-frequency = <150000000>;
579 pinctrl-names = "default";
580 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
587 mmc-hs400-enhanced-strobe;
601 /* tshut mode 0:CRU 1:GPIO */
602 rockchip,hw-tshut-mode = <1>;
603 /* tshut polarity 0:LOW 1:HIGH */
604 rockchip,hw-tshut-polarity = <1>;
611 u2phy0_otg: otg-port {
615 u2phy0_host: host-port {
616 phy-supply = <&vcc5v0_host>;
624 u2phy1_otg: otg-port {
628 u2phy1_host: host-port {
629 phy-supply = <&vcc5v0_host>;
635 pinctrl-names = "default";
636 pinctrl-0 = <&uart0_xfer &uart0_cts>;