15859b5a9SPeter Geis// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 25859b5a9SPeter Geis 35859b5a9SPeter Geis/dts-v1/; 45859b5a9SPeter Geis 55859b5a9SPeter Geis#include <dt-bindings/gpio/gpio.h> 65859b5a9SPeter Geis#include <dt-bindings/pinctrl/rockchip.h> 736d7a605SNicolas Frattaroli#include <dt-bindings/soc/rockchip,vop2.h> 85859b5a9SPeter Geis#include "rk3566.dtsi" 95859b5a9SPeter Geis 105859b5a9SPeter Geis/ { 115859b5a9SPeter Geis model = "Pine64 RK3566 SoQuartz SOM"; 125859b5a9SPeter Geis compatible = "pine64,soquartz", "rockchip,rk3566"; 135859b5a9SPeter Geis 145859b5a9SPeter Geis aliases { 155859b5a9SPeter Geis ethernet0 = &gmac1; 165859b5a9SPeter Geis mmc0 = &sdmmc0; 175859b5a9SPeter Geis mmc1 = &sdhci; 185859b5a9SPeter Geis mmc2 = &sdmmc1; 195859b5a9SPeter Geis }; 205859b5a9SPeter Geis 215859b5a9SPeter Geis chosen: chosen { 225859b5a9SPeter Geis stdout-path = "serial2:1500000n8"; 235859b5a9SPeter Geis }; 245859b5a9SPeter Geis 255859b5a9SPeter Geis gmac1_clkin: external-gmac1-clock { 265859b5a9SPeter Geis compatible = "fixed-clock"; 275859b5a9SPeter Geis clock-frequency = <125000000>; 285859b5a9SPeter Geis clock-output-names = "gmac1_clkin"; 295859b5a9SPeter Geis #clock-cells = <0>; 305859b5a9SPeter Geis }; 315859b5a9SPeter Geis 3236d7a605SNicolas Frattaroli hdmi-con { 3336d7a605SNicolas Frattaroli compatible = "hdmi-connector"; 3436d7a605SNicolas Frattaroli type = "a"; 3536d7a605SNicolas Frattaroli 3636d7a605SNicolas Frattaroli port { 3736d7a605SNicolas Frattaroli hdmi_con_in: endpoint { 3836d7a605SNicolas Frattaroli remote-endpoint = <&hdmi_out_con>; 3936d7a605SNicolas Frattaroli }; 4036d7a605SNicolas Frattaroli }; 4136d7a605SNicolas Frattaroli }; 4236d7a605SNicolas Frattaroli 435859b5a9SPeter Geis leds { 445859b5a9SPeter Geis compatible = "gpio-leds"; 455859b5a9SPeter Geis 465859b5a9SPeter Geis led_diy: led-diy { 475859b5a9SPeter Geis label = "diy-led"; 485859b5a9SPeter Geis default-state = "on"; 495859b5a9SPeter Geis gpios = <&gpio0 RK_PC1 GPIO_ACTIVE_LOW>; 505859b5a9SPeter Geis linux,default-trigger = "heartbeat"; 515859b5a9SPeter Geis pinctrl-names = "default"; 525859b5a9SPeter Geis pinctrl-0 = <&diy_led_enable_h>; 535859b5a9SPeter Geis retain-state-suspended; 545859b5a9SPeter Geis status = "disabled"; 555859b5a9SPeter Geis }; 565859b5a9SPeter Geis 575859b5a9SPeter Geis led_work: led-work { 585859b5a9SPeter Geis label = "work-led"; 595859b5a9SPeter Geis default-state = "off"; 605859b5a9SPeter Geis gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>; 615859b5a9SPeter Geis pinctrl-names = "default"; 625859b5a9SPeter Geis pinctrl-0 = <&work_led_enable_h>; 635859b5a9SPeter Geis retain-state-suspended; 645859b5a9SPeter Geis status = "disabled"; 655859b5a9SPeter Geis }; 665859b5a9SPeter Geis }; 675859b5a9SPeter Geis 685859b5a9SPeter Geis sdio_pwrseq: sdio-pwrseq { 695859b5a9SPeter Geis status = "okay"; 705859b5a9SPeter Geis compatible = "mmc-pwrseq-simple"; 715859b5a9SPeter Geis clocks = <&rk809 1>; 725859b5a9SPeter Geis clock-names = "ext_clock"; 735859b5a9SPeter Geis pinctrl-names = "default"; 745859b5a9SPeter Geis pinctrl-0 = <&wifi_enable_h>; 755859b5a9SPeter Geis reset-gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_LOW>; 765859b5a9SPeter Geis }; 775859b5a9SPeter Geis 785859b5a9SPeter Geis vbus: vbus-regulator { 795859b5a9SPeter Geis compatible = "regulator-fixed"; 805859b5a9SPeter Geis regulator-name = "vbus"; 815859b5a9SPeter Geis regulator-always-on; 825859b5a9SPeter Geis regulator-boot-on; 835859b5a9SPeter Geis regulator-min-microvolt = <5000000>; 845859b5a9SPeter Geis regulator-max-microvolt = <5000000>; 855859b5a9SPeter Geis }; 865859b5a9SPeter Geis 875859b5a9SPeter Geis /* sourced from vbus, vbus is provided by the carrier board */ 885859b5a9SPeter Geis vcc5v0_sys: vcc5v0-sys-regulator { 895859b5a9SPeter Geis compatible = "regulator-fixed"; 905859b5a9SPeter Geis regulator-name = "vcc5v0_sys"; 915859b5a9SPeter Geis regulator-always-on; 925859b5a9SPeter Geis regulator-boot-on; 935859b5a9SPeter Geis regulator-min-microvolt = <5000000>; 945859b5a9SPeter Geis regulator-max-microvolt = <5000000>; 955859b5a9SPeter Geis vin-supply = <&vbus>; 965859b5a9SPeter Geis }; 975859b5a9SPeter Geis 985859b5a9SPeter Geis vcc3v3_sys: vcc3v3-sys-regulator { 995859b5a9SPeter Geis compatible = "regulator-fixed"; 1005859b5a9SPeter Geis regulator-name = "vcc3v3_sys"; 1015859b5a9SPeter Geis regulator-always-on; 1025859b5a9SPeter Geis regulator-boot-on; 1035859b5a9SPeter Geis regulator-min-microvolt = <3300000>; 1045859b5a9SPeter Geis regulator-max-microvolt = <3300000>; 1055859b5a9SPeter Geis vin-supply = <&vcc5v0_sys>; 1065859b5a9SPeter Geis }; 1075859b5a9SPeter Geis}; 1085859b5a9SPeter Geis 1095859b5a9SPeter Geis&cpu0 { 1105859b5a9SPeter Geis cpu-supply = <&vdd_cpu>; 1115859b5a9SPeter Geis}; 1125859b5a9SPeter Geis 1135859b5a9SPeter Geis&cpu1 { 1145859b5a9SPeter Geis cpu-supply = <&vdd_cpu>; 1155859b5a9SPeter Geis}; 1165859b5a9SPeter Geis 1175859b5a9SPeter Geis&cpu2 { 1185859b5a9SPeter Geis cpu-supply = <&vdd_cpu>; 1195859b5a9SPeter Geis}; 1205859b5a9SPeter Geis 1215859b5a9SPeter Geis&cpu3 { 1225859b5a9SPeter Geis cpu-supply = <&vdd_cpu>; 1235859b5a9SPeter Geis}; 1245859b5a9SPeter Geis 1255859b5a9SPeter Geis&gmac1 { 1265859b5a9SPeter Geis assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>; 1275859b5a9SPeter Geis assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>; 1285859b5a9SPeter Geis clock_in_out = "input"; 1295859b5a9SPeter Geis phy-supply = <&vcc_3v3>; 1305859b5a9SPeter Geis phy-mode = "rgmii"; 1315859b5a9SPeter Geis pinctrl-names = "default"; 1325859b5a9SPeter Geis pinctrl-0 = <&gmac1m0_miim 1335859b5a9SPeter Geis &gmac1m0_tx_bus2 1345859b5a9SPeter Geis &gmac1m0_rx_bus2 1355859b5a9SPeter Geis &gmac1m0_rgmii_clk 1365859b5a9SPeter Geis &gmac1m0_clkinout 1375859b5a9SPeter Geis &gmac1m0_rgmii_bus>; 1385859b5a9SPeter Geis snps,reset-gpio = <&gpio0 RK_PC3 GPIO_ACTIVE_LOW>; 1395859b5a9SPeter Geis snps,reset-active-low; 1405859b5a9SPeter Geis /* Reset time is 20ms, 100ms for rtl8211f, also works well here */ 1415859b5a9SPeter Geis snps,reset-delays-us = <0 20000 100000>; 1425859b5a9SPeter Geis tx_delay = <0x30>; 1435859b5a9SPeter Geis rx_delay = <0x10>; 1445859b5a9SPeter Geis phy-handle = <&rgmii_phy1>; 1455859b5a9SPeter Geis status = "disabled"; 1465859b5a9SPeter Geis}; 1475859b5a9SPeter Geis 148*cf9ae4a0SNicolas Frattaroli&gpio0 { 149*cf9ae4a0SNicolas Frattaroli nextrst-hog { 150*cf9ae4a0SNicolas Frattaroli gpio-hog; 151*cf9ae4a0SNicolas Frattaroli /* 152*cf9ae4a0SNicolas Frattaroli * GPIO_ACTIVE_LOW + output-low here means that the pin is set 153*cf9ae4a0SNicolas Frattaroli * to high, because output-low decides the value pre-inversion. 154*cf9ae4a0SNicolas Frattaroli */ 155*cf9ae4a0SNicolas Frattaroli gpios = <RK_PA5 GPIO_ACTIVE_LOW>; 156*cf9ae4a0SNicolas Frattaroli line-name = "nEXTRST"; 157*cf9ae4a0SNicolas Frattaroli output-low; 158*cf9ae4a0SNicolas Frattaroli }; 159*cf9ae4a0SNicolas Frattaroli}; 160*cf9ae4a0SNicolas Frattaroli 161e48824e8SNicolas Frattaroli&gpu { 162e48824e8SNicolas Frattaroli mali-supply = <&vdd_gpu>; 163e48824e8SNicolas Frattaroli status = "okay"; 164e48824e8SNicolas Frattaroli}; 165e48824e8SNicolas Frattaroli 16636d7a605SNicolas Frattaroli&hdmi { 16736d7a605SNicolas Frattaroli avdd-0v9-supply = <&vdda0v9_image>; 16836d7a605SNicolas Frattaroli avdd-1v8-supply = <&vcca1v8_image>; 16936d7a605SNicolas Frattaroli status = "okay"; 17036d7a605SNicolas Frattaroli}; 17136d7a605SNicolas Frattaroli 17236d7a605SNicolas Frattaroli&hdmi_in { 17336d7a605SNicolas Frattaroli hdmi_in_vp0: endpoint { 17436d7a605SNicolas Frattaroli remote-endpoint = <&vp0_out_hdmi>; 17536d7a605SNicolas Frattaroli }; 17636d7a605SNicolas Frattaroli}; 17736d7a605SNicolas Frattaroli 17836d7a605SNicolas Frattaroli&hdmi_out { 17936d7a605SNicolas Frattaroli hdmi_out_con: endpoint { 18036d7a605SNicolas Frattaroli remote-endpoint = <&hdmi_con_in>; 18136d7a605SNicolas Frattaroli }; 18236d7a605SNicolas Frattaroli}; 18336d7a605SNicolas Frattaroli 18470b620c4SNicolas Frattaroli&hdmi_sound { 18570b620c4SNicolas Frattaroli status = "okay"; 18670b620c4SNicolas Frattaroli}; 18770b620c4SNicolas Frattaroli 1885859b5a9SPeter Geis&i2c0 { 1895859b5a9SPeter Geis status = "okay"; 1905859b5a9SPeter Geis 1915859b5a9SPeter Geis vdd_cpu: regulator@1c { 1925859b5a9SPeter Geis compatible = "tcs,tcs4525"; 1935859b5a9SPeter Geis reg = <0x1c>; 1945859b5a9SPeter Geis fcs,suspend-voltage-selector = <1>; 1955859b5a9SPeter Geis regulator-name = "vdd_cpu"; 1965859b5a9SPeter Geis regulator-min-microvolt = <800000>; 1975859b5a9SPeter Geis regulator-max-microvolt = <1150000>; 1985859b5a9SPeter Geis regulator-ramp-delay = <2300>; 1995859b5a9SPeter Geis regulator-always-on; 2005859b5a9SPeter Geis regulator-boot-on; 2015859b5a9SPeter Geis vin-supply = <&vcc5v0_sys>; 2025859b5a9SPeter Geis 2035859b5a9SPeter Geis regulator-state-mem { 2045859b5a9SPeter Geis regulator-off-in-suspend; 2055859b5a9SPeter Geis }; 2065859b5a9SPeter Geis }; 2075859b5a9SPeter Geis 2085859b5a9SPeter Geis rk809: pmic@20 { 2095859b5a9SPeter Geis compatible = "rockchip,rk809"; 2105859b5a9SPeter Geis reg = <0x20>; 2115859b5a9SPeter Geis interrupt-parent = <&gpio0>; 2125859b5a9SPeter Geis interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>; 2135859b5a9SPeter Geis #clock-cells = <1>; 2145859b5a9SPeter Geis clock-output-names = "rk808-clkout1", "rk808-clkout2"; 2155859b5a9SPeter Geis pinctrl-names = "default"; 2165859b5a9SPeter Geis pinctrl-0 = <&pmic_int_l>; 2175859b5a9SPeter Geis rockchip,system-power-controller; 2185859b5a9SPeter Geis wakeup-source; 2195859b5a9SPeter Geis 2205859b5a9SPeter Geis vcc1-supply = <&vcc3v3_sys>; 2215859b5a9SPeter Geis vcc2-supply = <&vcc3v3_sys>; 2225859b5a9SPeter Geis vcc3-supply = <&vcc3v3_sys>; 2235859b5a9SPeter Geis vcc4-supply = <&vcc3v3_sys>; 2245859b5a9SPeter Geis vcc5-supply = <&vcc3v3_sys>; 2255859b5a9SPeter Geis vcc6-supply = <&vcc3v3_sys>; 2265859b5a9SPeter Geis vcc7-supply = <&vcc3v3_sys>; 2275859b5a9SPeter Geis vcc8-supply = <&vcc3v3_sys>; 2285859b5a9SPeter Geis vcc9-supply = <&vcc3v3_sys>; 2295859b5a9SPeter Geis 2305859b5a9SPeter Geis regulators { 2315859b5a9SPeter Geis vdd_logic: DCDC_REG1 { 2325859b5a9SPeter Geis regulator-name = "vdd_logic"; 2335859b5a9SPeter Geis regulator-always-on; 2345859b5a9SPeter Geis regulator-boot-on; 2355859b5a9SPeter Geis regulator-min-microvolt = <500000>; 2365859b5a9SPeter Geis regulator-max-microvolt = <1350000>; 2375859b5a9SPeter Geis regulator-init-microvolt = <900000>; 2385859b5a9SPeter Geis regulator-ramp-delay = <6001>; 2395859b5a9SPeter Geis regulator-initial-mode = <0x2>; 2405859b5a9SPeter Geis regulator-state-mem { 2415859b5a9SPeter Geis regulator-on-in-suspend; 2425859b5a9SPeter Geis regulator-suspend-microvolt = <900000>; 2435859b5a9SPeter Geis }; 2445859b5a9SPeter Geis }; 2455859b5a9SPeter Geis 2465859b5a9SPeter Geis vdd_gpu: DCDC_REG2 { 2475859b5a9SPeter Geis regulator-name = "vdd_gpu"; 2485859b5a9SPeter Geis regulator-always-on; 2495859b5a9SPeter Geis regulator-boot-on; 2505859b5a9SPeter Geis regulator-min-microvolt = <500000>; 2515859b5a9SPeter Geis regulator-max-microvolt = <1350000>; 2525859b5a9SPeter Geis regulator-init-microvolt = <900000>; 2535859b5a9SPeter Geis regulator-ramp-delay = <6001>; 2545859b5a9SPeter Geis regulator-initial-mode = <0x2>; 2555859b5a9SPeter Geis regulator-state-mem { 2565859b5a9SPeter Geis regulator-off-in-suspend; 2575859b5a9SPeter Geis }; 2585859b5a9SPeter Geis }; 2595859b5a9SPeter Geis 2605859b5a9SPeter Geis vcc_ddr: DCDC_REG3 { 2615859b5a9SPeter Geis regulator-always-on; 2625859b5a9SPeter Geis regulator-boot-on; 2635859b5a9SPeter Geis regulator-initial-mode = <0x2>; 2645859b5a9SPeter Geis regulator-name = "vcc_ddr"; 2655859b5a9SPeter Geis regulator-state-mem { 2665859b5a9SPeter Geis regulator-on-in-suspend; 2675859b5a9SPeter Geis }; 2685859b5a9SPeter Geis }; 2695859b5a9SPeter Geis 2705859b5a9SPeter Geis vdd_npu: DCDC_REG4 { 2715859b5a9SPeter Geis regulator-always-on; 2725859b5a9SPeter Geis regulator-boot-on; 2735859b5a9SPeter Geis regulator-min-microvolt = <500000>; 2745859b5a9SPeter Geis regulator-max-microvolt = <1350000>; 2755859b5a9SPeter Geis regulator-init-microvolt = <900000>; 2765859b5a9SPeter Geis regulator-initial-mode = <0x2>; 2775859b5a9SPeter Geis regulator-name = "vdd_npu"; 2785859b5a9SPeter Geis regulator-state-mem { 2795859b5a9SPeter Geis regulator-off-in-suspend; 2805859b5a9SPeter Geis }; 2815859b5a9SPeter Geis }; 2825859b5a9SPeter Geis 2835859b5a9SPeter Geis vcc_1v8: DCDC_REG5 { 2845859b5a9SPeter Geis regulator-name = "vcc_1v8"; 2855859b5a9SPeter Geis regulator-always-on; 2865859b5a9SPeter Geis regulator-boot-on; 2875859b5a9SPeter Geis regulator-min-microvolt = <1800000>; 2885859b5a9SPeter Geis regulator-max-microvolt = <1800000>; 2895859b5a9SPeter Geis regulator-state-mem { 2905859b5a9SPeter Geis regulator-on-in-suspend; 2915859b5a9SPeter Geis regulator-suspend-microvolt = <1800000>; 2925859b5a9SPeter Geis }; 2935859b5a9SPeter Geis }; 2945859b5a9SPeter Geis 2955859b5a9SPeter Geis vdda0v9_image: LDO_REG1 { 2965859b5a9SPeter Geis regulator-always-on; 2975859b5a9SPeter Geis regulator-boot-on; 2985859b5a9SPeter Geis regulator-min-microvolt = <900000>; 2995859b5a9SPeter Geis regulator-max-microvolt = <900000>; 3005859b5a9SPeter Geis regulator-name = "vdda0v9_image"; 3015859b5a9SPeter Geis regulator-state-mem { 3025859b5a9SPeter Geis regulator-on-in-suspend; 3035859b5a9SPeter Geis regulator-suspend-microvolt = <900000>; 3045859b5a9SPeter Geis }; 3055859b5a9SPeter Geis }; 3065859b5a9SPeter Geis 3075859b5a9SPeter Geis vdda_0v9: LDO_REG2 { 3085859b5a9SPeter Geis regulator-always-on; 3095859b5a9SPeter Geis regulator-boot-on; 3105859b5a9SPeter Geis regulator-min-microvolt = <900000>; 3115859b5a9SPeter Geis regulator-max-microvolt = <900000>; 3125859b5a9SPeter Geis regulator-name = "vdda_0v9"; 3135859b5a9SPeter Geis regulator-state-mem { 3145859b5a9SPeter Geis regulator-off-in-suspend; 3155859b5a9SPeter Geis }; 3165859b5a9SPeter Geis }; 3175859b5a9SPeter Geis 3185859b5a9SPeter Geis vdda0v9_pmu: LDO_REG3 { 3195859b5a9SPeter Geis regulator-always-on; 3205859b5a9SPeter Geis regulator-boot-on; 3215859b5a9SPeter Geis regulator-min-microvolt = <900000>; 3225859b5a9SPeter Geis regulator-max-microvolt = <900000>; 3235859b5a9SPeter Geis regulator-name = "vdda0v9_pmu"; 3245859b5a9SPeter Geis regulator-state-mem { 3255859b5a9SPeter Geis regulator-on-in-suspend; 3265859b5a9SPeter Geis regulator-suspend-microvolt = <900000>; 3275859b5a9SPeter Geis }; 3285859b5a9SPeter Geis }; 3295859b5a9SPeter Geis 3305859b5a9SPeter Geis vccio_acodec: LDO_REG4 { 3315859b5a9SPeter Geis regulator-always-on; 3325859b5a9SPeter Geis regulator-boot-on; 3335859b5a9SPeter Geis regulator-min-microvolt = <3300000>; 3345859b5a9SPeter Geis regulator-max-microvolt = <3300000>; 3355859b5a9SPeter Geis regulator-name = "vccio_acodec"; 3365859b5a9SPeter Geis regulator-state-mem { 3375859b5a9SPeter Geis regulator-off-in-suspend; 3385859b5a9SPeter Geis }; 3395859b5a9SPeter Geis }; 3405859b5a9SPeter Geis 3415859b5a9SPeter Geis vccio_sd: LDO_REG5 { 3425859b5a9SPeter Geis regulator-always-on; 3435859b5a9SPeter Geis regulator-boot-on; 3445859b5a9SPeter Geis regulator-min-microvolt = <1800000>; 3455859b5a9SPeter Geis regulator-max-microvolt = <3300000>; 3465859b5a9SPeter Geis regulator-name = "vccio_sd"; 3475859b5a9SPeter Geis regulator-state-mem { 3485859b5a9SPeter Geis regulator-off-in-suspend; 3495859b5a9SPeter Geis }; 3505859b5a9SPeter Geis }; 3515859b5a9SPeter Geis 3525859b5a9SPeter Geis vcc3v3_pmu: LDO_REG6 { 3535859b5a9SPeter Geis regulator-always-on; 3545859b5a9SPeter Geis regulator-boot-on; 3555859b5a9SPeter Geis regulator-min-microvolt = <3300000>; 3565859b5a9SPeter Geis regulator-max-microvolt = <3300000>; 3575859b5a9SPeter Geis regulator-name = "vcc3v3_pmu"; 3585859b5a9SPeter Geis regulator-state-mem { 3595859b5a9SPeter Geis regulator-on-in-suspend; 3605859b5a9SPeter Geis regulator-suspend-microvolt = <3300000>; 3615859b5a9SPeter Geis }; 3625859b5a9SPeter Geis }; 3635859b5a9SPeter Geis 3645859b5a9SPeter Geis vcca_1v8: LDO_REG7 { 3655859b5a9SPeter Geis regulator-always-on; 3665859b5a9SPeter Geis regulator-boot-on; 3675859b5a9SPeter Geis regulator-min-microvolt = <1800000>; 3685859b5a9SPeter Geis regulator-max-microvolt = <1800000>; 3695859b5a9SPeter Geis regulator-name = "vcca_1v8"; 3705859b5a9SPeter Geis regulator-state-mem { 3715859b5a9SPeter Geis regulator-off-in-suspend; 3725859b5a9SPeter Geis }; 3735859b5a9SPeter Geis }; 3745859b5a9SPeter Geis 3755859b5a9SPeter Geis vcca1v8_pmu: LDO_REG8 { 3765859b5a9SPeter Geis regulator-always-on; 3775859b5a9SPeter Geis regulator-boot-on; 3785859b5a9SPeter Geis regulator-min-microvolt = <1800000>; 3795859b5a9SPeter Geis regulator-max-microvolt = <1800000>; 3805859b5a9SPeter Geis regulator-name = "vcca1v8_pmu"; 3815859b5a9SPeter Geis regulator-state-mem { 3825859b5a9SPeter Geis regulator-off-in-suspend; 3835859b5a9SPeter Geis }; 3845859b5a9SPeter Geis }; 3855859b5a9SPeter Geis 3865859b5a9SPeter Geis vcca1v8_image: LDO_REG9 { 3875859b5a9SPeter Geis regulator-always-on; 3885859b5a9SPeter Geis regulator-boot-on; 3895859b5a9SPeter Geis regulator-min-microvolt = <1800000>; 3905859b5a9SPeter Geis regulator-max-microvolt = <1800000>; 3915859b5a9SPeter Geis regulator-name = "vcca1v8_image"; 3925859b5a9SPeter Geis regulator-state-mem { 3935859b5a9SPeter Geis regulator-off-in-suspend; 3945859b5a9SPeter Geis }; 3955859b5a9SPeter Geis }; 3965859b5a9SPeter Geis 3975859b5a9SPeter Geis vcc_3v3: SWITCH_REG1 { 3985859b5a9SPeter Geis regulator-name = "vcc_3v3"; 3995859b5a9SPeter Geis regulator-state-mem { 4005859b5a9SPeter Geis regulator-off-in-suspend; 4015859b5a9SPeter Geis }; 4025859b5a9SPeter Geis }; 4035859b5a9SPeter Geis 4045859b5a9SPeter Geis vcc3v3_sd: SWITCH_REG2 { 4055859b5a9SPeter Geis regulator-name = "vcc3v3_sd"; 4065859b5a9SPeter Geis status = "disabled"; 4075859b5a9SPeter Geis regulator-state-mem { 4085859b5a9SPeter Geis regulator-on-in-suspend; 4095859b5a9SPeter Geis }; 4105859b5a9SPeter Geis }; 4115859b5a9SPeter Geis 4125859b5a9SPeter Geis }; 4135859b5a9SPeter Geis }; 4145859b5a9SPeter Geis}; 4155859b5a9SPeter Geis 4165859b5a9SPeter Geis/* 4175859b5a9SPeter Geis * i2c1 is exposed on CM1 / Module1A 4185859b5a9SPeter Geis * pin 80 - i2c1_scl_m0, pullup to vcc3v3_pmu 4195859b5a9SPeter Geis * pin 82 - i2c1_sda_m0, pullup to vcc3v3_pmu 4205859b5a9SPeter Geis */ 4215859b5a9SPeter Geis&i2c1 { 4225859b5a9SPeter Geis status = "disabled"; 4235859b5a9SPeter Geis}; 4245859b5a9SPeter Geis 4255859b5a9SPeter Geis/* 4265859b5a9SPeter Geis * i2c2 is exposed on CM1 / Module1A 4275859b5a9SPeter Geis * pin 56 - i2c2_scl_m1, pullup to vcc_3v3, shared with i2s1_8ch 4285859b5a9SPeter Geis * pin 58 - i2c2_sda_m1, pullup to vcc_3v3 4295859b5a9SPeter Geis */ 4305859b5a9SPeter Geis&i2c2 { 4315859b5a9SPeter Geis pinctrl-names = "default"; 4325859b5a9SPeter Geis pinctrl-0 = <&i2c2m1_xfer>; 4335859b5a9SPeter Geis status = "disabled"; 4345859b5a9SPeter Geis}; 4355859b5a9SPeter Geis 4365859b5a9SPeter Geis/* 4375859b5a9SPeter Geis * i2c3 is exposed on CM1 / Module1A 4385859b5a9SPeter Geis * pin 35 - i2c3_scl_m0, pullup to vcc_3v3 4395859b5a9SPeter Geis * pin 36 - i2c3_sda_m0, pullup to vcc_3v3 4405859b5a9SPeter Geis */ 4415859b5a9SPeter Geis&i2c3 { 4425859b5a9SPeter Geis status = "disabled"; 4435859b5a9SPeter Geis}; 4445859b5a9SPeter Geis 4455859b5a9SPeter Geis/* 4465859b5a9SPeter Geis * i2c4 is exposed on CM2 / Module1B 4475859b5a9SPeter Geis * pin 45 - i2c4_scl_m1 4485859b5a9SPeter Geis * pin 47 - i2c4_sda_m1 4495859b5a9SPeter Geis */ 4505859b5a9SPeter Geis&i2c4 { 4515859b5a9SPeter Geis pinctrl-names = "default"; 4525859b5a9SPeter Geis pinctrl-0 = <&i2c4m1_xfer>; 4535859b5a9SPeter Geis status = "disabled"; 4545859b5a9SPeter Geis}; 4555859b5a9SPeter Geis 45670b620c4SNicolas Frattaroli&i2s0_8ch { 45770b620c4SNicolas Frattaroli status = "okay"; 45870b620c4SNicolas Frattaroli}; 45970b620c4SNicolas Frattaroli 4605859b5a9SPeter Geis/* 4615859b5a9SPeter Geis * i2s1_8ch is exposed on CM1 / Module1A 4625859b5a9SPeter Geis * pin 24 - i2s1_sdi1_m1 4635859b5a9SPeter Geis * pin 25 - i2s1_sdo0_m1 4645859b5a9SPeter Geis * pin 26 - i2s1_lrck_tx_m1 4655859b5a9SPeter Geis * pin 27 - i2s1_sdi0_m1 4665859b5a9SPeter Geis * pin 29 - i2s1_sdi3_m1 4675859b5a9SPeter Geis * pin 30 - i2s1_sdi2_m1 4685859b5a9SPeter Geis * pin 40 - i2s1_sdo1_m1, shared with spi3 4695859b5a9SPeter Geis * pin 41 - i2s1_sdo2_m1 4705859b5a9SPeter Geis * pin 49 - i2s1_sclk_tx_m1 4715859b5a9SPeter Geis * pin 50 - i2s1_mclk_m1 4725859b5a9SPeter Geis * pin 56 - i2s1_sdo3_m1, shared with i2c2 4735859b5a9SPeter Geis */ 4745859b5a9SPeter Geis&i2s1_8ch { 4755859b5a9SPeter Geis pinctrl-names = "default"; 4765859b5a9SPeter Geis pinctrl-0 = <&i2s1m1_sclktx &i2s1m1_sclkrx 4775859b5a9SPeter Geis &i2s1m1_lrcktx &i2s1m1_lrckrx 4785859b5a9SPeter Geis &i2s1m1_sdi0 &i2s1m1_sdi1 4795859b5a9SPeter Geis &i2s1m1_sdi2 &i2s1m1_sdi3 4805859b5a9SPeter Geis &i2s1m1_sdo0 &i2s1m1_sdo1 4815859b5a9SPeter Geis &i2s1m1_sdo2 &i2s1m1_sdo3>; 4825859b5a9SPeter Geis status = "disabled"; 4835859b5a9SPeter Geis}; 4845859b5a9SPeter Geis 4855859b5a9SPeter Geis&mdio1 { 4865859b5a9SPeter Geis rgmii_phy1: ethernet-phy@0 { 4875859b5a9SPeter Geis compatible = "ethernet-phy-ieee802.3-c22"; 4885859b5a9SPeter Geis reg = <0>; 4895859b5a9SPeter Geis status = "disabled"; 4905859b5a9SPeter Geis }; 4915859b5a9SPeter Geis}; 4925859b5a9SPeter Geis 4933736aa7eSNicolas Frattaroli&pcie2x1 { 4943736aa7eSNicolas Frattaroli pinctrl-names = "default"; 4953736aa7eSNicolas Frattaroli pinctrl-0 = <&pcie_reset_h>; 4963736aa7eSNicolas Frattaroli reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>; 4973736aa7eSNicolas Frattaroli}; 4983736aa7eSNicolas Frattaroli 4995859b5a9SPeter Geis&pinctrl { 5005859b5a9SPeter Geis bt { 5015859b5a9SPeter Geis bt_enable_h: bt-enable-h { 5025859b5a9SPeter Geis rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 5035859b5a9SPeter Geis }; 5045859b5a9SPeter Geis 5055859b5a9SPeter Geis bt_host_wake_l: bt-host-wake-l { 5065859b5a9SPeter Geis rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_down>; 5075859b5a9SPeter Geis }; 5085859b5a9SPeter Geis 5095859b5a9SPeter Geis bt_wake_l: bt-wake-l { 5105859b5a9SPeter Geis rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; 5115859b5a9SPeter Geis }; 5125859b5a9SPeter Geis }; 5135859b5a9SPeter Geis 5145859b5a9SPeter Geis leds { 5155859b5a9SPeter Geis work_led_enable_h: work-led-enable-h { 5165859b5a9SPeter Geis rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>; 5175859b5a9SPeter Geis }; 5185859b5a9SPeter Geis 5195859b5a9SPeter Geis diy_led_enable_h: diy-led-enable-h { 5205859b5a9SPeter Geis rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; 5215859b5a9SPeter Geis }; 5225859b5a9SPeter Geis }; 5235859b5a9SPeter Geis 5243736aa7eSNicolas Frattaroli pcie { 5253736aa7eSNicolas Frattaroli pcie_clkreq_h: pcie-clkreq-h { 5263736aa7eSNicolas Frattaroli rockchip,pins = <1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 5273736aa7eSNicolas Frattaroli }; 5283736aa7eSNicolas Frattaroli pcie_reset_h: pcie-reset-h { 5293736aa7eSNicolas Frattaroli rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 5303736aa7eSNicolas Frattaroli }; 5313736aa7eSNicolas Frattaroli }; 5323736aa7eSNicolas Frattaroli 5335859b5a9SPeter Geis pmic { 5345859b5a9SPeter Geis pmic_int_l: pmic-int-l { 5355859b5a9SPeter Geis rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; 5365859b5a9SPeter Geis }; 5375859b5a9SPeter Geis }; 5385859b5a9SPeter Geis 5395859b5a9SPeter Geis sdio-pwrseq { 5405859b5a9SPeter Geis wifi_enable_h: wifi-enable-h { 5415859b5a9SPeter Geis rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; 5425859b5a9SPeter Geis }; 5435859b5a9SPeter Geis }; 5445859b5a9SPeter Geis}; 5455859b5a9SPeter Geis 5465859b5a9SPeter Geis&pmu_io_domains { 5475859b5a9SPeter Geis pmuio1-supply = <&vcc3v3_pmu>; 5485859b5a9SPeter Geis pmuio2-supply = <&vcc3v3_pmu>; 5495859b5a9SPeter Geis vccio1-supply = <&vcc_3v3>; 5505859b5a9SPeter Geis vccio2-supply = <&vcc_1v8>; 5515859b5a9SPeter Geis vccio3-supply = <&vccio_sd>; 5525859b5a9SPeter Geis vccio4-supply = <&vcc_1v8>; 5535859b5a9SPeter Geis vccio5-supply = <&vcc_3v3>; 5545859b5a9SPeter Geis vccio6-supply = <&vcc_3v3>; 5555859b5a9SPeter Geis vccio7-supply = <&vcc_3v3>; 5565859b5a9SPeter Geis status = "okay"; 5575859b5a9SPeter Geis}; 5585859b5a9SPeter Geis 5595859b5a9SPeter Geis/* 5605859b5a9SPeter Geis * saradc is exposed on CM1 / Module1A 5615859b5a9SPeter Geis * pin 94 - saradc_vin3 5625859b5a9SPeter Geis * pin 96 - saradc_vin2 5635859b5a9SPeter Geis */ 5645859b5a9SPeter Geis&saradc { 5655859b5a9SPeter Geis vref-supply = <&vcca_1v8>; 5665859b5a9SPeter Geis status = "disabled"; 5675859b5a9SPeter Geis}; 5685859b5a9SPeter Geis 5695859b5a9SPeter Geis&sdhci { 5705859b5a9SPeter Geis bus-width = <8>; 5715859b5a9SPeter Geis mmc-hs200-1_8v; 5725859b5a9SPeter Geis non-removable; 5735859b5a9SPeter Geis vmmc-supply = <&vcc_3v3>; 5745859b5a9SPeter Geis vqmmc-supply = <&vcc_1v8>; 5755859b5a9SPeter Geis status = "okay"; 5765859b5a9SPeter Geis}; 5775859b5a9SPeter Geis 5785859b5a9SPeter Geis&sdmmc0 { 5795859b5a9SPeter Geis broken-cd; 5805859b5a9SPeter Geis bus-width = <4>; 5815859b5a9SPeter Geis cap-sd-highspeed; 5825859b5a9SPeter Geis disable-wp; 5835859b5a9SPeter Geis pinctrl-names = "default"; 5845859b5a9SPeter Geis pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; 5855859b5a9SPeter Geis vqmmc-supply = <&vccio_sd>; 5865859b5a9SPeter Geis status = "disabled"; 5875859b5a9SPeter Geis}; 5885859b5a9SPeter Geis 5895859b5a9SPeter Geis&sdmmc1 { 5905859b5a9SPeter Geis bus-width = <4>; 5915859b5a9SPeter Geis cap-sd-highspeed; 5925859b5a9SPeter Geis cap-sdio-irq; 5935859b5a9SPeter Geis keep-power-in-suspend; 5945859b5a9SPeter Geis mmc-pwrseq = <&sdio_pwrseq>; 5955859b5a9SPeter Geis non-removable; 5965859b5a9SPeter Geis pinctrl-names = "default"; 5975859b5a9SPeter Geis pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>; 5985912b647SDan Johansen sd-uhs-sdr50; 5995859b5a9SPeter Geis vmmc-supply = <&vcc3v3_sys>; 6005859b5a9SPeter Geis vqmmc-supply = <&vcc_1v8>; 6015859b5a9SPeter Geis status = "okay"; 6025859b5a9SPeter Geis}; 6035859b5a9SPeter Geis 6045859b5a9SPeter Geis/* 6055859b5a9SPeter Geis * spi3 is exposed on CM1 / Module1A 6065859b5a9SPeter Geis * pin 37 - spi3_cs1_m0 6075859b5a9SPeter Geis * pin 38 - spi3_clk_m0 6085859b5a9SPeter Geis * pin 39 - spi3_cs0_m0 6095859b5a9SPeter Geis * pin 40 - spi3_miso_m0, shared with i2s1_8ch 6105859b5a9SPeter Geis * pin 44 - spi3_mosi_m0 6115859b5a9SPeter Geis */ 6125859b5a9SPeter Geis&spi3 { 6135859b5a9SPeter Geis status = "disabled"; 6145859b5a9SPeter Geis}; 6155859b5a9SPeter Geis 6165859b5a9SPeter Geis&tsadc { 6175859b5a9SPeter Geis status = "okay"; 6185859b5a9SPeter Geis}; 6195859b5a9SPeter Geis 6205859b5a9SPeter Geis&uart1 { 6215859b5a9SPeter Geis pinctrl-names = "default"; 6225859b5a9SPeter Geis pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>; 6235859b5a9SPeter Geis uart-has-rtscts; 6245859b5a9SPeter Geis status = "okay"; 6255859b5a9SPeter Geis 6265859b5a9SPeter Geis bluetooth { 6275859b5a9SPeter Geis compatible = "brcm,bcm43438-bt"; 6285859b5a9SPeter Geis clocks = <&rk809 1>; 6295859b5a9SPeter Geis clock-names = "lpo"; 6305859b5a9SPeter Geis device-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>; 6315859b5a9SPeter Geis host-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>; 6325859b5a9SPeter Geis shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; 6335859b5a9SPeter Geis pinctrl-names = "default"; 6345859b5a9SPeter Geis pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>; 6355859b5a9SPeter Geis vbat-supply = <&vcc3v3_sys>; 6365859b5a9SPeter Geis vddio-supply = <&vcca1v8_pmu>; 6375859b5a9SPeter Geis }; 6385859b5a9SPeter Geis}; 6395859b5a9SPeter Geis 6405859b5a9SPeter Geis/* 6415859b5a9SPeter Geis * uart2 is exposed on CM1 / Module1A 6425859b5a9SPeter Geis * pin 51 - uart2_rx_m0 6435859b5a9SPeter Geis * pin 55 - uart2_tx_m0 6445859b5a9SPeter Geis */ 6455859b5a9SPeter Geis&uart2 { 6465859b5a9SPeter Geis status = "disabled"; 6475859b5a9SPeter Geis}; 6485859b5a9SPeter Geis 6495859b5a9SPeter Geis/* 6505859b5a9SPeter Geis * uart7 is exposed on CM1 / Module1A 6515859b5a9SPeter Geis * pin 46 - uart7_tx_m2 6525859b5a9SPeter Geis * pin 47 - uart7_rx_m2 6535859b5a9SPeter Geis */ 6545859b5a9SPeter Geis&uart7 { 6555859b5a9SPeter Geis pinctrl-names = "default"; 6565859b5a9SPeter Geis pinctrl-0 = <&uart7m2_xfer>; 6575859b5a9SPeter Geis status = "disabled"; 6585859b5a9SPeter Geis}; 6595859b5a9SPeter Geis 6605859b5a9SPeter Geis/* dwc3_otg is the only usb port available */ 6615859b5a9SPeter Geis&usb2phy0 { 6625859b5a9SPeter Geis status = "disabled"; 6635859b5a9SPeter Geis}; 6645859b5a9SPeter Geis 6655859b5a9SPeter Geis&usb2phy0_otg { 6665859b5a9SPeter Geis status = "disabled"; 6675859b5a9SPeter Geis}; 6685859b5a9SPeter Geis 6695859b5a9SPeter Geis&usb_host0_xhci { 6705859b5a9SPeter Geis status = "disabled"; 6715859b5a9SPeter Geis}; 67236d7a605SNicolas Frattaroli 67336d7a605SNicolas Frattaroli&vop { 67436d7a605SNicolas Frattaroli assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; 67536d7a605SNicolas Frattaroli assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; 67636d7a605SNicolas Frattaroli status = "okay"; 67736d7a605SNicolas Frattaroli}; 67836d7a605SNicolas Frattaroli 67936d7a605SNicolas Frattaroli&vop_mmu { 68036d7a605SNicolas Frattaroli status = "okay"; 68136d7a605SNicolas Frattaroli}; 68236d7a605SNicolas Frattaroli 68336d7a605SNicolas Frattaroli&vp0 { 68436d7a605SNicolas Frattaroli vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 68536d7a605SNicolas Frattaroli reg = <ROCKCHIP_VOP2_EP_HDMI0>; 68636d7a605SNicolas Frattaroli remote-endpoint = <&hdmi_in_vp0>; 68736d7a605SNicolas Frattaroli }; 68836d7a605SNicolas Frattaroli}; 689