1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
5 #include <dt-bindings/gpio/gpio.h>
6 #include <dt-bindings/pinctrl/rockchip.h>
7 #include <dt-bindings/soc/rockchip,vop2.h>
11 model = "Firefly Station M2";
12 compatible = "firefly,rk3566-roc-pc", "rockchip,rk3566";
21 stdout-path = "serial2:1500000n8";
24 gmac1_clkin: external-gmac1-clock {
25 compatible = "fixed-clock";
26 clock-frequency = <125000000>;
27 clock-output-names = "gmac1_clkin";
32 compatible = "hdmi-connector";
36 hdmi_con_in: endpoint {
37 remote-endpoint = <&hdmi_out_con>;
43 compatible = "gpio-leds";
48 gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>;
49 linux,default-trigger = "heartbeat";
50 pinctrl-names = "default";
51 pinctrl-0 = <&user_led_enable_h>;
52 retain-state-suspended;
56 sdio_pwrseq: sdio-pwrseq {
58 compatible = "mmc-pwrseq-simple";
60 clock-names = "ext_clock";
61 pinctrl-names = "default";
62 pinctrl-0 = <&wifi_enable_h>;
63 reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>;
66 usb_5v: usb-5v-regulator {
67 compatible = "regulator-fixed";
68 regulator-name = "usb_5v";
71 regulator-min-microvolt = <5000000>;
72 regulator-max-microvolt = <5000000>;
75 vcc5v0_sys: vcc5v0-sys-regulator {
76 compatible = "regulator-fixed";
77 regulator-name = "vcc5v0_sys";
80 regulator-min-microvolt = <5000000>;
81 regulator-max-microvolt = <5000000>;
82 vin-supply = <&usb_5v>;
85 vcc3v3_sys: vcc3v3-sys-regulator {
86 compatible = "regulator-fixed";
87 regulator-name = "vcc3v3_sys";
88 regulator-min-microvolt = <3300000>;
89 regulator-max-microvolt = <3300000>;
91 vin-supply = <&vcc5v0_sys>;
94 vcc5v0_usb30_host: vcc5v0-usb30-host-regulator {
95 compatible = "regulator-fixed";
96 regulator-name = "vcc5v0_usb30_host";
98 gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
99 pinctrl-names = "default";
100 pinctrl-0 = <&vcc5v0_usb30_host_en_h>;
102 regulator-min-microvolt = <5000000>;
103 regulator-max-microvolt = <5000000>;
104 vin-supply = <&vcc5v0_sys>;
107 vcc5v0_usb_otg: vcc5v0-usb-otg-regulator {
108 compatible = "regulator-fixed";
109 regulator-name = "vcc5v0_usb_otg";
111 gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
112 pinctrl-names = "default";
113 pinctrl-0 = <&vcc5v0_usb_otg_en_h>;
115 regulator-min-microvolt = <5000000>;
116 regulator-max-microvolt = <5000000>;
117 vin-supply = <&vcc5v0_sys>;
126 cpu-supply = <&vdd_cpu>;
130 cpu-supply = <&vdd_cpu>;
134 cpu-supply = <&vdd_cpu>;
138 cpu-supply = <&vdd_cpu>;
142 assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>;
143 assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>;
144 clock_in_out = "input";
146 phy-supply = <&vcc_3v3>;
147 pinctrl-names = "default";
148 pinctrl-0 = <&gmac1m0_miim
154 snps,reset-gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_LOW>;
155 snps,reset-active-low;
156 /* Reset time is 20ms, 100ms for rtl8211f */
157 snps,reset-delays-us = <0 20000 100000>;
160 phy-handle = <&rgmii_phy1>;
165 mali-supply = <&vdd_gpu>;
170 avdd-0v9-supply = <&vdda0v9_image>;
171 avdd-1v8-supply = <&vcca1v8_image>;
176 hdmi_in_vp0: endpoint {
177 remote-endpoint = <&vp0_out_hdmi>;
182 hdmi_out_con: endpoint {
183 remote-endpoint = <&hdmi_con_in>;
190 vdd_cpu: regulator@1c {
191 compatible = "tcs,tcs4525";
193 fcs,suspend-voltage-selector = <1>;
194 regulator-name = "vdd_cpu";
195 regulator-min-microvolt = <800000>;
196 regulator-max-microvolt = <1150000>;
197 regulator-ramp-delay = <2300>;
200 vin-supply = <&vcc5v0_sys>;
202 regulator-state-mem {
203 regulator-off-in-suspend;
208 compatible = "rockchip,rk809";
210 interrupt-parent = <&gpio0>;
211 interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>;
212 clock-output-names = "rk808-clkout1", "rk808-clkout2";
214 pinctrl-names = "default";
215 pinctrl-0 = <&pmic_int>;
216 rockchip,system-power-controller;
220 vcc1-supply = <&vcc3v3_sys>;
221 vcc2-supply = <&vcc3v3_sys>;
222 vcc3-supply = <&vcc3v3_sys>;
223 vcc4-supply = <&vcc3v3_sys>;
224 vcc5-supply = <&vcc3v3_sys>;
225 vcc6-supply = <&vcc3v3_sys>;
226 vcc7-supply = <&vcc3v3_sys>;
227 vcc8-supply = <&vcc3v3_sys>;
228 vcc9-supply = <&vcc3v3_sys>;
232 regulator-name = "vdd_log";
235 regulator-min-microvolt = <500000>;
236 regulator-max-microvolt = <1350000>;
237 regulator-init-microvolt = <900000>;
238 regulator-ramp-delay = <6001>;
240 regulator-state-mem {
241 regulator-on-in-suspend;
242 regulator-suspend-microvolt = <900000>;
247 regulator-name = "vdd_gpu";
248 regulator-min-microvolt = <900000>;
249 regulator-max-microvolt = <1350000>;
250 regulator-init-microvolt = <900000>;
251 regulator-ramp-delay = <6001>;
253 regulator-state-mem {
254 regulator-off-in-suspend;
255 regulator-suspend-microvolt = <900000>;
260 regulator-name = "vcc_ddr";
263 regulator-min-microvolt = <1100000>;
264 regulator-max-microvolt = <1100000>;
265 regulator-initial-mode = <0x2>;
266 regulator-state-mem {
267 regulator-on-in-suspend;
272 regulator-name = "vdd_npu";
273 regulator-min-microvolt = <900000>;
274 regulator-max-microvolt = <1350000>;
275 regulator-initial-mode = <0x2>;
276 regulator-state-mem {
277 regulator-off-in-suspend;
282 regulator-name = "vcc_1v8";
285 regulator-min-microvolt = <1800000>;
286 regulator-max-microvolt = <1800000>;
288 regulator-state-mem {
289 regulator-on-in-suspend;
290 regulator-suspend-microvolt = <1800000>;
294 vdda0v9_image: LDO_REG1 {
295 regulator-name = "vdda0v9_image";
298 regulator-min-microvolt = <900000>;
299 regulator-max-microvolt = <900000>;
301 regulator-state-mem {
302 regulator-on-in-suspend;
303 regulator-suspend-microvolt = <900000>;
308 regulator-name = "vdda_0v9";
311 regulator-min-microvolt = <900000>;
312 regulator-max-microvolt = <900000>;
314 regulator-state-mem {
315 regulator-on-in-suspend;
316 regulator-suspend-microvolt = <900000>;
320 vdda0v9_pmu: LDO_REG3 {
321 regulator-name = "vdda0v9_pmu";
324 regulator-min-microvolt = <900000>;
325 regulator-max-microvolt = <900000>;
326 regulator-state-mem {
327 regulator-on-in-suspend;
328 regulator-suspend-microvolt = <900000>;
332 vccio_acodec: LDO_REG4 {
333 regulator-name = "vccio_acodec";
336 regulator-min-microvolt = <3300000>;
337 regulator-max-microvolt = <3300000>;
339 regulator-state-mem {
340 regulator-on-in-suspend;
341 regulator-suspend-microvolt = <3300000>;
347 regulator-name = "vccio_sd";
350 regulator-min-microvolt = <1800000>;
351 regulator-max-microvolt = <3300000>;
353 regulator-state-mem {
354 regulator-on-in-suspend;
355 regulator-suspend-microvolt = <3300000>;
359 vcc3v3_pmu: LDO_REG6 {
360 regulator-name = "vcc3v3_pmu";
363 regulator-min-microvolt = <3300000>;
364 regulator-max-microvolt = <3300000>;
366 regulator-state-mem {
367 regulator-on-in-suspend;
368 regulator-suspend-microvolt = <3300000>;
373 regulator-name = "vcca_1v8";
376 regulator-min-microvolt = <1800000>;
377 regulator-max-microvolt = <1800000>;
379 regulator-state-mem {
380 regulator-on-in-suspend;
381 regulator-suspend-microvolt = <1800000>;
385 vcca1v8_pmu: LDO_REG8 {
386 regulator-name = "vcca1v8_pmu";
389 regulator-min-microvolt = <1800000>;
390 regulator-max-microvolt = <1800000>;
392 regulator-state-mem {
393 regulator-on-in-suspend;
394 regulator-suspend-microvolt = <1800000>;
398 vcca1v8_image: LDO_REG9 {
399 regulator-name = "vcca1v8_image";
402 regulator-min-microvolt = <1800000>;
403 regulator-max-microvolt = <1800000>;
405 regulator-state-mem {
406 regulator-on-in-suspend;
407 regulator-suspend-microvolt = <1800000>;
411 vcc_3v3: SWITCH_REG1 {
413 regulator-name = "vcc3v3";
416 vcc3v3_sd: SWITCH_REG2 {
417 regulator-name = "vcc3v3_sd";
434 pinctrl-names = "default";
435 pinctrl-0 = <&i2c3m0_xfer>;
440 rgmii_phy1: ethernet-phy@0 {
441 compatible = "ethernet-phy-ieee802.3-c22";
448 bt_enable_h: bt-enable-h {
449 rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
452 bt_host_wake_l: bt-host-wake-l {
453 rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_down>;
456 bt_wake_l: bt-wake-l {
457 rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
462 user_led_enable_h: user-led-enable-h {
463 rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
470 <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
475 wifi_enable_h: wifi-enable-h {
476 rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
481 vcc5v0_usb30_host_en_h: vcc5v0-usb30-host-en_h {
482 rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
485 vcc5v0_usb_otg_en_h: vcc5v0-usb-otg-en_h {
486 rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
493 pmuio1-supply = <&vcc3v3_pmu>;
494 pmuio2-supply = <&vcc3v3_pmu>;
495 vccio1-supply = <&vccio_acodec>;
496 vccio2-supply = <&vcc_1v8>;
497 vccio3-supply = <&vccio_sd>;
498 vccio4-supply = <&vcc_1v8>;
499 vccio5-supply = <&vcc_3v3>;
500 vccio6-supply = <&vcc_1v8>;
501 vccio7-supply = <&vcc_3v3>;
508 vmmc-supply = <&vcc_3v3>;
509 vqmmc-supply = <&vcc_1v8>;
516 cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
518 pinctrl-names = "default";
519 pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
521 vmmc-supply = <&vcc3v3_sd>;
522 vqmmc-supply = <&vccio_sd>;
530 keep-power-in-suspend;
531 mmc-pwrseq = <&sdio_pwrseq>;
532 vmmc-supply = <&vcc3v3_sys>;
533 vqmmc-supply = <&vcca1v8_pmu>;
534 pinctrl-names = "default";
535 pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
544 pinctrl-names = "default";
545 pinctrl-0 = <&uart0_xfer>;
550 pinctrl-names = "default";
551 pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn>;
556 compatible = "brcm,bcm43438-bt";
559 device-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
560 host-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
561 shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
562 pinctrl-names = "default";
563 pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
564 vbat-supply = <&vcc3v3_sys>;
565 vddio-supply = <&vcca1v8_pmu>;
574 phy-supply = <&vcc5v0_usb30_host>;
579 phy-supply = <&vcc5v0_usb_otg>;
584 phy-supply = <&vcc5v0_usb30_host>;
613 assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
614 assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
623 vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
624 reg = <ROCKCHIP_VOP2_EP_HDMI0>;
625 remote-endpoint = <&hdmi_in_vp0>;