1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
3 * Copyright (c) 2017 T-Chip Intelligent Technology Co., Ltd
7 #include <dt-bindings/pwm/pwm.h>
9 #include "rk3399-opp.dtsi"
12 model = "Firefly ROC-RK3399-PC Board";
13 compatible = "firefly,roc-rk3399-pc", "rockchip,rk3399";
16 stdout-path = "serial2:1500000n8";
19 backlight: backlight {
20 compatible = "pwm-backlight";
21 pwms = <&pwm0 0 25000 0>;
24 clkin_gmac: external-gmac-clock {
25 compatible = "fixed-clock";
26 clock-frequency = <125000000>;
27 clock-output-names = "clkin_gmac";
31 sdio_pwrseq: sdio-pwrseq {
32 compatible = "mmc-pwrseq-simple";
34 clock-names = "ext_clock";
35 pinctrl-names = "default";
36 pinctrl-0 = <&wifi_enable_h>;
39 * On the module itself this is one of these (depending
40 * on the actual card populated):
41 * - SDIO_RESET_L_WL_REG_ON
42 * - PDN (power down when low)
44 reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
47 vcc_vbus_typec0: vcc-vbus-typec0 {
48 compatible = "regulator-fixed";
49 regulator-name = "vcc_vbus_typec0";
52 regulator-min-microvolt = <5000000>;
53 regulator-max-microvolt = <5000000>;
57 * should be placed inside mp8859, but not until mp8859 has
60 vcc12v_sys: mp8859-dcdc1 {
61 compatible = "regulator-fixed";
62 regulator-name = "vcc12v_sys";
65 regulator-min-microvolt = <12000000>;
66 regulator-max-microvolt = <12000000>;
67 vin-supply = <&vcc_vbus_typec0>;
70 /* switched by pmic_sleep */
71 vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
72 compatible = "regulator-fixed";
73 regulator-name = "vcc1v8_s3";
76 regulator-min-microvolt = <1800000>;
77 regulator-max-microvolt = <1800000>;
78 vin-supply = <&vcc_1v8>;
81 vcc3v3_sys: vcc3v3-sys {
82 compatible = "regulator-fixed";
83 regulator-name = "vcc3v3_sys";
86 regulator-min-microvolt = <3300000>;
87 regulator-max-microvolt = <3300000>;
88 vin-supply = <&vcc12v_sys>;
91 /* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */
92 vcc5v0_host: vcc5v0-host-regulator {
93 compatible = "regulator-fixed";
95 gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
96 pinctrl-names = "default";
97 pinctrl-0 = <&vcc5v0_host_en &hub_rst>;
98 regulator-name = "vcc5v0_host";
100 vin-supply = <&vcc_sys>;
103 vcc_vbus_typec1: vcc-vbus-typec1 {
104 compatible = "regulator-fixed";
106 gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
107 pinctrl-names = "default";
108 pinctrl-0 = <&vcc_vbus_typec1_en>;
109 regulator-name = "vcc_vbus_typec1";
111 vin-supply = <&vcc_sys>;
115 compatible = "regulator-fixed";
116 regulator-name = "vcc_sys";
119 regulator-min-microvolt = <5000000>;
120 regulator-max-microvolt = <5000000>;
121 vin-supply = <&vcc12v_sys>;
125 compatible = "pwm-regulator";
126 pwms = <&pwm2 0 25000 1>;
127 regulator-name = "vdd_log";
130 regulator-min-microvolt = <800000>;
131 regulator-max-microvolt = <1400000>;
132 vin-supply = <&vcc3v3_sys>;
137 cpu-supply = <&vdd_cpu_l>;
141 cpu-supply = <&vdd_cpu_l>;
145 cpu-supply = <&vdd_cpu_l>;
149 cpu-supply = <&vdd_cpu_l>;
153 cpu-supply = <&vdd_cpu_b>;
157 cpu-supply = <&vdd_cpu_b>;
165 assigned-clocks = <&cru SCLK_RMII_SRC>;
166 assigned-clock-parents = <&clkin_gmac>;
167 clock_in_out = "input";
168 phy-supply = <&vcc_lan>;
170 pinctrl-names = "default";
171 pinctrl-0 = <&rgmii_pins>;
172 snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
173 snps,reset-active-low;
174 snps,reset-delays-us = <0 10000 50000>;
181 ddc-i2c-bus = <&i2c3>;
182 pinctrl-names = "default";
183 pinctrl-0 = <&hdmi_cec>;
188 clock-frequency = <400000>;
189 i2c-scl-rising-time-ns = <168>;
190 i2c-scl-falling-time-ns = <4>;
194 compatible = "rockchip,rk808";
196 interrupt-parent = <&gpio1>;
197 interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
199 clock-output-names = "xin32k", "rk808-clkout2";
200 pinctrl-names = "default";
201 pinctrl-0 = <&pmic_int_l>;
202 rockchip,system-power-controller;
205 vcc1-supply = <&vcc3v3_sys>;
206 vcc2-supply = <&vcc3v3_sys>;
207 vcc3-supply = <&vcc3v3_sys>;
208 vcc4-supply = <&vcc3v3_sys>;
209 vcc6-supply = <&vcc3v3_sys>;
210 vcc7-supply = <&vcc3v3_sys>;
211 vcc8-supply = <&vcc3v3_sys>;
212 vcc9-supply = <&vcc3v3_sys>;
213 vcc10-supply = <&vcc3v3_sys>;
214 vcc11-supply = <&vcc3v3_sys>;
215 vcc12-supply = <&vcc3v3_sys>;
216 vddio-supply = <&vcc1v8_pmu>;
219 vdd_center: DCDC_REG1 {
220 regulator-name = "vdd_center";
223 regulator-min-microvolt = <750000>;
224 regulator-max-microvolt = <1350000>;
225 regulator-ramp-delay = <6001>;
226 regulator-state-mem {
227 regulator-off-in-suspend;
231 vdd_cpu_l: DCDC_REG2 {
232 regulator-name = "vdd_cpu_l";
235 regulator-min-microvolt = <750000>;
236 regulator-max-microvolt = <1350000>;
237 regulator-ramp-delay = <6001>;
238 regulator-state-mem {
239 regulator-off-in-suspend;
244 regulator-name = "vcc_ddr";
247 regulator-state-mem {
248 regulator-on-in-suspend;
253 regulator-name = "vcc_1v8";
256 regulator-min-microvolt = <1800000>;
257 regulator-max-microvolt = <1800000>;
258 regulator-state-mem {
259 regulator-on-in-suspend;
260 regulator-suspend-microvolt = <1800000>;
264 vcca1v8_codec: LDO_REG1 {
265 regulator-name = "vcca1v8_codec";
268 regulator-min-microvolt = <1800000>;
269 regulator-max-microvolt = <1800000>;
270 regulator-state-mem {
271 regulator-off-in-suspend;
275 vcc1v8_hdmi: LDO_REG2 {
276 regulator-name = "vcc1v8_hdmi";
279 regulator-min-microvolt = <1800000>;
280 regulator-max-microvolt = <1800000>;
281 regulator-state-mem {
282 regulator-off-in-suspend;
286 vcc1v8_pmu: LDO_REG3 {
287 regulator-name = "vcc1v8_pmu";
290 regulator-min-microvolt = <1800000>;
291 regulator-max-microvolt = <1800000>;
292 regulator-state-mem {
293 regulator-on-in-suspend;
294 regulator-suspend-microvolt = <1800000>;
299 regulator-name = "vcc_sdio";
302 regulator-min-microvolt = <1800000>;
303 regulator-max-microvolt = <3000000>;
304 regulator-state-mem {
305 regulator-on-in-suspend;
306 regulator-suspend-microvolt = <3000000>;
310 vcca3v0_codec: LDO_REG5 {
311 regulator-name = "vcca3v0_codec";
314 regulator-min-microvolt = <3000000>;
315 regulator-max-microvolt = <3000000>;
316 regulator-state-mem {
317 regulator-off-in-suspend;
322 regulator-name = "vcc_1v5";
325 regulator-min-microvolt = <1500000>;
326 regulator-max-microvolt = <1500000>;
327 regulator-state-mem {
328 regulator-on-in-suspend;
329 regulator-suspend-microvolt = <1500000>;
333 vcca0v9_hdmi: LDO_REG7 {
334 regulator-name = "vcca0v9_hdmi";
337 regulator-min-microvolt = <900000>;
338 regulator-max-microvolt = <900000>;
339 regulator-state-mem {
340 regulator-off-in-suspend;
345 regulator-name = "vcc_3v0";
348 regulator-min-microvolt = <3000000>;
349 regulator-max-microvolt = <3000000>;
350 regulator-state-mem {
351 regulator-on-in-suspend;
352 regulator-suspend-microvolt = <3000000>;
356 vcc3v3_s3: vcc_lan: SWITCH_REG1 {
357 regulator-name = "vcc3v3_s3";
360 regulator-state-mem {
361 regulator-off-in-suspend;
365 vcc3v3_s0: SWITCH_REG2 {
366 regulator-name = "vcc3v3_s0";
369 regulator-state-mem {
370 regulator-off-in-suspend;
376 vdd_cpu_b: regulator@40 {
377 compatible = "silergy,syr827";
379 fcs,suspend-voltage-selector = <1>;
380 pinctrl-names = "default";
381 pinctrl-0 = <&vsel1_gpio>;
382 regulator-name = "vdd_cpu_b";
383 regulator-min-microvolt = <712500>;
384 regulator-max-microvolt = <1500000>;
385 regulator-ramp-delay = <1000>;
388 vin-supply = <&vcc3v3_sys>;
390 regulator-state-mem {
391 regulator-off-in-suspend;
395 vdd_gpu: regulator@41 {
396 compatible = "silergy,syr828";
398 fcs,suspend-voltage-selector = <1>;
399 pinctrl-names = "default";
400 pinctrl-0 = <&vsel2_gpio>;
401 regulator-name = "vdd_gpu";
402 regulator-min-microvolt = <712500>;
403 regulator-max-microvolt = <1500000>;
404 regulator-ramp-delay = <1000>;
407 vin-supply = <&vcc3v3_sys>;
409 regulator-state-mem {
410 regulator-off-in-suspend;
416 i2c-scl-rising-time-ns = <300>;
417 i2c-scl-falling-time-ns = <15>;
422 i2c-scl-rising-time-ns = <450>;
423 i2c-scl-falling-time-ns = <15>;
428 i2c-scl-rising-time-ns = <600>;
429 i2c-scl-falling-time-ns = <20>;
432 fusb1: usb-typec@22 {
433 compatible = "fcs,fusb302";
435 interrupt-parent = <&gpio1>;
436 interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
437 pinctrl-names = "default";
438 pinctrl-0 = <&fusb1_int>;
439 vbus-supply = <&vcc_vbus_typec1>;
445 i2c-scl-rising-time-ns = <600>;
446 i2c-scl-falling-time-ns = <20>;
449 fusb0: usb-typec@22 {
450 compatible = "fcs,fusb302";
452 interrupt-parent = <&gpio1>;
453 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
454 pinctrl-names = "default";
455 pinctrl-0 = <&fusb0_int>;
456 vbus-supply = <&vcc_vbus_typec0>;
462 rockchip,playback-channels = <8>;
463 rockchip,capture-channels = <8>;
468 rockchip,playback-channels = <2>;
469 rockchip,capture-channels = <2>;
478 audio-supply = <&vcca1v8_codec>;
479 bt656-supply = <&vcc_3v0>;
480 gpio1830-supply = <&vcc_3v0>;
481 sdmmc-supply = <&vcc_sdio>;
486 pmu1830-supply = <&vcc_3v0>;
492 lcd_panel_reset: lcd-panel-reset {
493 rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
498 vsel1_gpio: vsel1-gpio {
499 rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
502 vsel2_gpio: vsel2-gpio {
503 rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
508 wifi_enable_h: wifi-enable-h {
509 rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
514 pmic_int_l: pmic-int-l {
515 rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
520 vcc5v0_host_en: vcc5v0-host-en {
521 rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
525 rockchip,pins = <2 RK_PA4 RK_FUNC_GPIO &pcfg_output_high>;
530 vcc_vbus_typec1_en: vcc-vbus-typec1-en {
531 rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
536 fusb0_int: fusb0-int {
537 rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
540 fusb1_int: fusb1-int {
541 rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
555 vref-supply = <&vcca1v8_s3>;
563 cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
565 max-frequency = <150000000>;
566 pinctrl-names = "default";
567 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
574 mmc-hs400-enhanced-strobe;
588 /* tshut mode 0:CRU 1:GPIO */
589 rockchip,hw-tshut-mode = <1>;
590 /* tshut polarity 0:LOW 1:HIGH */
591 rockchip,hw-tshut-polarity = <1>;
598 u2phy0_otg: otg-port {
599 phy-supply = <&vcc_vbus_typec0>;
603 u2phy0_host: host-port {
604 phy-supply = <&vcc5v0_host>;
612 u2phy1_otg: otg-port {
613 phy-supply = <&vcc_vbus_typec1>;
617 u2phy1_host: host-port {
618 phy-supply = <&vcc5v0_host>;
624 pinctrl-names = "default";
625 pinctrl-0 = <&uart0_xfer &uart0_cts>;