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-ramp-delay = <6001>; 2385859b5a9SPeter Geis regulator-initial-mode = <0x2>; 2395859b5a9SPeter Geis regulator-state-mem { 2405859b5a9SPeter Geis regulator-on-in-suspend; 2415859b5a9SPeter Geis regulator-suspend-microvolt = <900000>; 2425859b5a9SPeter Geis }; 2435859b5a9SPeter Geis }; 2445859b5a9SPeter Geis 2455859b5a9SPeter Geis vdd_gpu: DCDC_REG2 { 2465859b5a9SPeter Geis regulator-name = "vdd_gpu"; 2475859b5a9SPeter Geis regulator-always-on; 2485859b5a9SPeter Geis regulator-boot-on; 2495859b5a9SPeter Geis regulator-min-microvolt = <500000>; 2505859b5a9SPeter Geis regulator-max-microvolt = <1350000>; 2515859b5a9SPeter Geis regulator-ramp-delay = <6001>; 2525859b5a9SPeter Geis regulator-initial-mode = <0x2>; 2535859b5a9SPeter Geis regulator-state-mem { 2545859b5a9SPeter Geis regulator-off-in-suspend; 2555859b5a9SPeter Geis }; 2565859b5a9SPeter Geis }; 2575859b5a9SPeter Geis 2585859b5a9SPeter Geis vcc_ddr: DCDC_REG3 { 2595859b5a9SPeter Geis regulator-always-on; 2605859b5a9SPeter Geis regulator-boot-on; 2615859b5a9SPeter Geis regulator-initial-mode = <0x2>; 2625859b5a9SPeter Geis regulator-name = "vcc_ddr"; 2635859b5a9SPeter Geis regulator-state-mem { 2645859b5a9SPeter Geis regulator-on-in-suspend; 2655859b5a9SPeter Geis }; 2665859b5a9SPeter Geis }; 2675859b5a9SPeter Geis 2685859b5a9SPeter Geis vdd_npu: DCDC_REG4 { 2695859b5a9SPeter Geis regulator-always-on; 2705859b5a9SPeter Geis regulator-boot-on; 2715859b5a9SPeter Geis regulator-min-microvolt = <500000>; 2725859b5a9SPeter Geis regulator-max-microvolt = <1350000>; 2735859b5a9SPeter Geis regulator-initial-mode = <0x2>; 2745859b5a9SPeter Geis regulator-name = "vdd_npu"; 2755859b5a9SPeter Geis regulator-state-mem { 2765859b5a9SPeter Geis regulator-off-in-suspend; 2775859b5a9SPeter Geis }; 2785859b5a9SPeter Geis }; 2795859b5a9SPeter Geis 2805859b5a9SPeter Geis vcc_1v8: DCDC_REG5 { 2815859b5a9SPeter Geis regulator-name = "vcc_1v8"; 2825859b5a9SPeter Geis regulator-always-on; 2835859b5a9SPeter Geis regulator-boot-on; 2845859b5a9SPeter Geis regulator-min-microvolt = <1800000>; 2855859b5a9SPeter Geis regulator-max-microvolt = <1800000>; 2865859b5a9SPeter Geis regulator-state-mem { 2875859b5a9SPeter Geis regulator-on-in-suspend; 2885859b5a9SPeter Geis regulator-suspend-microvolt = <1800000>; 2895859b5a9SPeter Geis }; 2905859b5a9SPeter Geis }; 2915859b5a9SPeter Geis 2925859b5a9SPeter Geis vdda0v9_image: LDO_REG1 { 2935859b5a9SPeter Geis regulator-always-on; 2945859b5a9SPeter Geis regulator-boot-on; 2955859b5a9SPeter Geis regulator-min-microvolt = <900000>; 2965859b5a9SPeter Geis regulator-max-microvolt = <900000>; 2975859b5a9SPeter Geis regulator-name = "vdda0v9_image"; 2985859b5a9SPeter Geis regulator-state-mem { 2995859b5a9SPeter Geis regulator-on-in-suspend; 3005859b5a9SPeter Geis regulator-suspend-microvolt = <900000>; 3015859b5a9SPeter Geis }; 3025859b5a9SPeter Geis }; 3035859b5a9SPeter Geis 3045859b5a9SPeter Geis vdda_0v9: LDO_REG2 { 3055859b5a9SPeter Geis regulator-always-on; 3065859b5a9SPeter Geis regulator-boot-on; 3075859b5a9SPeter Geis regulator-min-microvolt = <900000>; 3085859b5a9SPeter Geis regulator-max-microvolt = <900000>; 3095859b5a9SPeter Geis regulator-name = "vdda_0v9"; 3105859b5a9SPeter Geis regulator-state-mem { 3115859b5a9SPeter Geis regulator-off-in-suspend; 3125859b5a9SPeter Geis }; 3135859b5a9SPeter Geis }; 3145859b5a9SPeter Geis 3155859b5a9SPeter Geis vdda0v9_pmu: LDO_REG3 { 3165859b5a9SPeter Geis regulator-always-on; 3175859b5a9SPeter Geis regulator-boot-on; 3185859b5a9SPeter Geis regulator-min-microvolt = <900000>; 3195859b5a9SPeter Geis regulator-max-microvolt = <900000>; 3205859b5a9SPeter Geis regulator-name = "vdda0v9_pmu"; 3215859b5a9SPeter Geis regulator-state-mem { 3225859b5a9SPeter Geis regulator-on-in-suspend; 3235859b5a9SPeter Geis regulator-suspend-microvolt = <900000>; 3245859b5a9SPeter Geis }; 3255859b5a9SPeter Geis }; 3265859b5a9SPeter Geis 3275859b5a9SPeter Geis vccio_acodec: LDO_REG4 { 3285859b5a9SPeter Geis regulator-always-on; 3295859b5a9SPeter Geis regulator-boot-on; 3305859b5a9SPeter Geis regulator-min-microvolt = <3300000>; 3315859b5a9SPeter Geis regulator-max-microvolt = <3300000>; 3325859b5a9SPeter Geis regulator-name = "vccio_acodec"; 3335859b5a9SPeter Geis regulator-state-mem { 3345859b5a9SPeter Geis regulator-off-in-suspend; 3355859b5a9SPeter Geis }; 3365859b5a9SPeter Geis }; 3375859b5a9SPeter Geis 3385859b5a9SPeter Geis vccio_sd: LDO_REG5 { 3395859b5a9SPeter Geis regulator-always-on; 3405859b5a9SPeter Geis regulator-boot-on; 3415859b5a9SPeter Geis regulator-min-microvolt = <1800000>; 3425859b5a9SPeter Geis regulator-max-microvolt = <3300000>; 3435859b5a9SPeter Geis regulator-name = "vccio_sd"; 3445859b5a9SPeter Geis regulator-state-mem { 3455859b5a9SPeter Geis regulator-off-in-suspend; 3465859b5a9SPeter Geis }; 3475859b5a9SPeter Geis }; 3485859b5a9SPeter Geis 3495859b5a9SPeter Geis vcc3v3_pmu: LDO_REG6 { 3505859b5a9SPeter Geis regulator-always-on; 3515859b5a9SPeter Geis regulator-boot-on; 3525859b5a9SPeter Geis regulator-min-microvolt = <3300000>; 3535859b5a9SPeter Geis regulator-max-microvolt = <3300000>; 3545859b5a9SPeter Geis regulator-name = "vcc3v3_pmu"; 3555859b5a9SPeter Geis regulator-state-mem { 3565859b5a9SPeter Geis regulator-on-in-suspend; 3575859b5a9SPeter Geis regulator-suspend-microvolt = <3300000>; 3585859b5a9SPeter Geis }; 3595859b5a9SPeter Geis }; 3605859b5a9SPeter Geis 3615859b5a9SPeter Geis vcca_1v8: LDO_REG7 { 3625859b5a9SPeter Geis regulator-always-on; 3635859b5a9SPeter Geis regulator-boot-on; 3645859b5a9SPeter Geis regulator-min-microvolt = <1800000>; 3655859b5a9SPeter Geis regulator-max-microvolt = <1800000>; 3665859b5a9SPeter Geis regulator-name = "vcca_1v8"; 3675859b5a9SPeter Geis regulator-state-mem { 3685859b5a9SPeter Geis regulator-off-in-suspend; 3695859b5a9SPeter Geis }; 3705859b5a9SPeter Geis }; 3715859b5a9SPeter Geis 3725859b5a9SPeter Geis vcca1v8_pmu: LDO_REG8 { 3735859b5a9SPeter Geis regulator-always-on; 3745859b5a9SPeter Geis regulator-boot-on; 3755859b5a9SPeter Geis regulator-min-microvolt = <1800000>; 3765859b5a9SPeter Geis regulator-max-microvolt = <1800000>; 3775859b5a9SPeter Geis regulator-name = "vcca1v8_pmu"; 3785859b5a9SPeter Geis regulator-state-mem { 3795859b5a9SPeter Geis regulator-off-in-suspend; 3805859b5a9SPeter Geis }; 3815859b5a9SPeter Geis }; 3825859b5a9SPeter Geis 3835859b5a9SPeter Geis vcca1v8_image: LDO_REG9 { 3845859b5a9SPeter Geis regulator-always-on; 3855859b5a9SPeter Geis regulator-boot-on; 3865859b5a9SPeter Geis regulator-min-microvolt = <1800000>; 3875859b5a9SPeter Geis regulator-max-microvolt = <1800000>; 3885859b5a9SPeter Geis regulator-name = "vcca1v8_image"; 3895859b5a9SPeter Geis regulator-state-mem { 3905859b5a9SPeter Geis regulator-off-in-suspend; 3915859b5a9SPeter Geis }; 3925859b5a9SPeter Geis }; 3935859b5a9SPeter Geis 3945859b5a9SPeter Geis vcc_3v3: SWITCH_REG1 { 3955859b5a9SPeter Geis regulator-name = "vcc_3v3"; 3965859b5a9SPeter Geis regulator-state-mem { 3975859b5a9SPeter Geis regulator-off-in-suspend; 3985859b5a9SPeter Geis }; 3995859b5a9SPeter Geis }; 4005859b5a9SPeter Geis 4015859b5a9SPeter Geis vcc3v3_sd: SWITCH_REG2 { 4025859b5a9SPeter Geis regulator-name = "vcc3v3_sd"; 4035859b5a9SPeter Geis status = "disabled"; 4045859b5a9SPeter Geis regulator-state-mem { 4055859b5a9SPeter Geis regulator-on-in-suspend; 4065859b5a9SPeter Geis }; 4075859b5a9SPeter Geis }; 4085859b5a9SPeter Geis 4095859b5a9SPeter Geis }; 4105859b5a9SPeter Geis }; 4115859b5a9SPeter Geis}; 4125859b5a9SPeter Geis 4135859b5a9SPeter Geis/* 4145859b5a9SPeter Geis * i2c1 is exposed on CM1 / Module1A 4155859b5a9SPeter Geis * pin 80 - i2c1_scl_m0, pullup to vcc3v3_pmu 4165859b5a9SPeter Geis * pin 82 - i2c1_sda_m0, pullup to vcc3v3_pmu 4175859b5a9SPeter Geis */ 4185859b5a9SPeter Geis&i2c1 { 4195859b5a9SPeter Geis status = "disabled"; 4205859b5a9SPeter Geis}; 4215859b5a9SPeter Geis 4225859b5a9SPeter Geis/* 4235859b5a9SPeter Geis * i2c2 is exposed on CM1 / Module1A 4245859b5a9SPeter Geis * pin 56 - i2c2_scl_m1, pullup to vcc_3v3, shared with i2s1_8ch 4255859b5a9SPeter Geis * pin 58 - i2c2_sda_m1, pullup to vcc_3v3 4265859b5a9SPeter Geis */ 4275859b5a9SPeter Geis&i2c2 { 4285859b5a9SPeter Geis pinctrl-names = "default"; 4295859b5a9SPeter Geis pinctrl-0 = <&i2c2m1_xfer>; 4305859b5a9SPeter Geis status = "disabled"; 4315859b5a9SPeter Geis}; 4325859b5a9SPeter Geis 4335859b5a9SPeter Geis/* 4345859b5a9SPeter Geis * i2c3 is exposed on CM1 / Module1A 4355859b5a9SPeter Geis * pin 35 - i2c3_scl_m0, pullup to vcc_3v3 4365859b5a9SPeter Geis * pin 36 - i2c3_sda_m0, pullup to vcc_3v3 4375859b5a9SPeter Geis */ 4385859b5a9SPeter Geis&i2c3 { 4395859b5a9SPeter Geis status = "disabled"; 4405859b5a9SPeter Geis}; 4415859b5a9SPeter Geis 4425859b5a9SPeter Geis/* 4435859b5a9SPeter Geis * i2c4 is exposed on CM2 / Module1B 4445859b5a9SPeter Geis * pin 45 - i2c4_scl_m1 4455859b5a9SPeter Geis * pin 47 - i2c4_sda_m1 4465859b5a9SPeter Geis */ 4475859b5a9SPeter Geis&i2c4 { 4485859b5a9SPeter Geis pinctrl-names = "default"; 4495859b5a9SPeter Geis pinctrl-0 = <&i2c4m1_xfer>; 4505859b5a9SPeter Geis status = "disabled"; 4515859b5a9SPeter Geis}; 4525859b5a9SPeter Geis 45370b620c4SNicolas Frattaroli&i2s0_8ch { 45470b620c4SNicolas Frattaroli status = "okay"; 45570b620c4SNicolas Frattaroli}; 45670b620c4SNicolas Frattaroli 4575859b5a9SPeter Geis/* 4585859b5a9SPeter Geis * i2s1_8ch is exposed on CM1 / Module1A 4595859b5a9SPeter Geis * pin 24 - i2s1_sdi1_m1 4605859b5a9SPeter Geis * pin 25 - i2s1_sdo0_m1 4615859b5a9SPeter Geis * pin 26 - i2s1_lrck_tx_m1 4625859b5a9SPeter Geis * pin 27 - i2s1_sdi0_m1 4635859b5a9SPeter Geis * pin 29 - i2s1_sdi3_m1 4645859b5a9SPeter Geis * pin 30 - i2s1_sdi2_m1 4655859b5a9SPeter Geis * pin 40 - i2s1_sdo1_m1, shared with spi3 4665859b5a9SPeter Geis * pin 41 - i2s1_sdo2_m1 4675859b5a9SPeter Geis * pin 49 - i2s1_sclk_tx_m1 4685859b5a9SPeter Geis * pin 50 - i2s1_mclk_m1 4695859b5a9SPeter Geis * pin 56 - i2s1_sdo3_m1, shared with i2c2 4705859b5a9SPeter Geis */ 4715859b5a9SPeter Geis&i2s1_8ch { 4725859b5a9SPeter Geis pinctrl-names = "default"; 4735859b5a9SPeter Geis pinctrl-0 = <&i2s1m1_sclktx &i2s1m1_sclkrx 4745859b5a9SPeter Geis &i2s1m1_lrcktx &i2s1m1_lrckrx 4755859b5a9SPeter Geis &i2s1m1_sdi0 &i2s1m1_sdi1 4765859b5a9SPeter Geis &i2s1m1_sdi2 &i2s1m1_sdi3 4775859b5a9SPeter Geis &i2s1m1_sdo0 &i2s1m1_sdo1 4785859b5a9SPeter Geis &i2s1m1_sdo2 &i2s1m1_sdo3>; 4795859b5a9SPeter Geis status = "disabled"; 4805859b5a9SPeter Geis}; 4815859b5a9SPeter Geis 4825859b5a9SPeter Geis&mdio1 { 4835859b5a9SPeter Geis rgmii_phy1: ethernet-phy@0 { 4845859b5a9SPeter Geis compatible = "ethernet-phy-ieee802.3-c22"; 4855859b5a9SPeter Geis reg = <0>; 4865859b5a9SPeter Geis status = "disabled"; 4875859b5a9SPeter Geis }; 4885859b5a9SPeter Geis}; 4895859b5a9SPeter Geis 4903736aa7eSNicolas Frattaroli&pcie2x1 { 4913736aa7eSNicolas Frattaroli pinctrl-names = "default"; 4923736aa7eSNicolas Frattaroli pinctrl-0 = <&pcie_reset_h>; 4933736aa7eSNicolas Frattaroli reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>; 4943736aa7eSNicolas Frattaroli}; 4953736aa7eSNicolas Frattaroli 4965859b5a9SPeter Geis&pinctrl { 4975859b5a9SPeter Geis bt { 4985859b5a9SPeter Geis bt_enable_h: bt-enable-h { 4995859b5a9SPeter Geis rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 5005859b5a9SPeter Geis }; 5015859b5a9SPeter Geis 5025859b5a9SPeter Geis bt_host_wake_l: bt-host-wake-l { 5035859b5a9SPeter Geis rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_down>; 5045859b5a9SPeter Geis }; 5055859b5a9SPeter Geis 5065859b5a9SPeter Geis bt_wake_l: bt-wake-l { 5075859b5a9SPeter Geis rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; 5085859b5a9SPeter Geis }; 5095859b5a9SPeter Geis }; 5105859b5a9SPeter Geis 5115859b5a9SPeter Geis leds { 5125859b5a9SPeter Geis work_led_enable_h: work-led-enable-h { 5135859b5a9SPeter Geis rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>; 5145859b5a9SPeter Geis }; 5155859b5a9SPeter Geis 5165859b5a9SPeter Geis diy_led_enable_h: diy-led-enable-h { 5175859b5a9SPeter Geis rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; 5185859b5a9SPeter Geis }; 5195859b5a9SPeter Geis }; 5205859b5a9SPeter Geis 5213736aa7eSNicolas Frattaroli pcie { 5223736aa7eSNicolas Frattaroli pcie_clkreq_h: pcie-clkreq-h { 5233736aa7eSNicolas Frattaroli rockchip,pins = <1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 5243736aa7eSNicolas Frattaroli }; 5253736aa7eSNicolas Frattaroli pcie_reset_h: pcie-reset-h { 5263736aa7eSNicolas Frattaroli rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 5273736aa7eSNicolas Frattaroli }; 5283736aa7eSNicolas Frattaroli }; 5293736aa7eSNicolas Frattaroli 5305859b5a9SPeter Geis pmic { 5315859b5a9SPeter Geis pmic_int_l: pmic-int-l { 5325859b5a9SPeter Geis rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; 5335859b5a9SPeter Geis }; 5345859b5a9SPeter Geis }; 5355859b5a9SPeter Geis 5365859b5a9SPeter Geis sdio-pwrseq { 5375859b5a9SPeter Geis wifi_enable_h: wifi-enable-h { 5385859b5a9SPeter Geis rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; 5395859b5a9SPeter Geis }; 5405859b5a9SPeter Geis }; 5415859b5a9SPeter Geis}; 5425859b5a9SPeter Geis 5435859b5a9SPeter Geis&pmu_io_domains { 5445859b5a9SPeter Geis pmuio1-supply = <&vcc3v3_pmu>; 5455859b5a9SPeter Geis pmuio2-supply = <&vcc3v3_pmu>; 5465859b5a9SPeter Geis vccio1-supply = <&vcc_3v3>; 5475859b5a9SPeter Geis vccio2-supply = <&vcc_1v8>; 5485859b5a9SPeter Geis vccio3-supply = <&vccio_sd>; 5495859b5a9SPeter Geis vccio4-supply = <&vcc_1v8>; 5505859b5a9SPeter Geis vccio5-supply = <&vcc_3v3>; 5515859b5a9SPeter Geis vccio6-supply = <&vcc_3v3>; 5525859b5a9SPeter Geis vccio7-supply = <&vcc_3v3>; 5535859b5a9SPeter Geis status = "okay"; 5545859b5a9SPeter Geis}; 5555859b5a9SPeter Geis 5565859b5a9SPeter Geis/* 5575859b5a9SPeter Geis * saradc is exposed on CM1 / Module1A 5585859b5a9SPeter Geis * pin 94 - saradc_vin3 5595859b5a9SPeter Geis * pin 96 - saradc_vin2 5605859b5a9SPeter Geis */ 5615859b5a9SPeter Geis&saradc { 5625859b5a9SPeter Geis vref-supply = <&vcca_1v8>; 5635859b5a9SPeter Geis status = "disabled"; 5645859b5a9SPeter Geis}; 5655859b5a9SPeter Geis 5665859b5a9SPeter Geis&sdhci { 5675859b5a9SPeter Geis bus-width = <8>; 5685859b5a9SPeter Geis mmc-hs200-1_8v; 5695859b5a9SPeter Geis non-removable; 5705859b5a9SPeter Geis vmmc-supply = <&vcc_3v3>; 5715859b5a9SPeter Geis vqmmc-supply = <&vcc_1v8>; 5725859b5a9SPeter Geis status = "okay"; 5735859b5a9SPeter Geis}; 5745859b5a9SPeter Geis 5755859b5a9SPeter Geis&sdmmc0 { 5765859b5a9SPeter Geis broken-cd; 5775859b5a9SPeter Geis bus-width = <4>; 5785859b5a9SPeter Geis cap-sd-highspeed; 5795859b5a9SPeter Geis disable-wp; 5805859b5a9SPeter Geis pinctrl-names = "default"; 5815859b5a9SPeter Geis pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; 5825859b5a9SPeter Geis vqmmc-supply = <&vccio_sd>; 5835859b5a9SPeter Geis status = "disabled"; 5845859b5a9SPeter Geis}; 5855859b5a9SPeter Geis 5865859b5a9SPeter Geis&sdmmc1 { 5875859b5a9SPeter Geis bus-width = <4>; 5885859b5a9SPeter Geis cap-sd-highspeed; 5895859b5a9SPeter Geis cap-sdio-irq; 5905859b5a9SPeter Geis keep-power-in-suspend; 5915859b5a9SPeter Geis mmc-pwrseq = <&sdio_pwrseq>; 5925859b5a9SPeter Geis non-removable; 5935859b5a9SPeter Geis pinctrl-names = "default"; 5945859b5a9SPeter Geis pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>; 5955912b647SDan Johansen sd-uhs-sdr50; 5965859b5a9SPeter Geis vmmc-supply = <&vcc3v3_sys>; 5975859b5a9SPeter Geis vqmmc-supply = <&vcc_1v8>; 5985859b5a9SPeter Geis status = "okay"; 5995859b5a9SPeter Geis}; 6005859b5a9SPeter Geis 6015859b5a9SPeter Geis/* 6025859b5a9SPeter Geis * spi3 is exposed on CM1 / Module1A 6035859b5a9SPeter Geis * pin 37 - spi3_cs1_m0 6045859b5a9SPeter Geis * pin 38 - spi3_clk_m0 6055859b5a9SPeter Geis * pin 39 - spi3_cs0_m0 6065859b5a9SPeter Geis * pin 40 - spi3_miso_m0, shared with i2s1_8ch 6075859b5a9SPeter Geis * pin 44 - spi3_mosi_m0 6085859b5a9SPeter Geis */ 6095859b5a9SPeter Geis&spi3 { 6105859b5a9SPeter Geis status = "disabled"; 6115859b5a9SPeter Geis}; 6125859b5a9SPeter Geis 6135859b5a9SPeter Geis&tsadc { 6145859b5a9SPeter Geis status = "okay"; 6155859b5a9SPeter Geis}; 6165859b5a9SPeter Geis 6175859b5a9SPeter Geis&uart1 { 6185859b5a9SPeter Geis pinctrl-names = "default"; 6195859b5a9SPeter Geis pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>; 6205859b5a9SPeter Geis uart-has-rtscts; 6215859b5a9SPeter Geis status = "okay"; 6225859b5a9SPeter Geis 6235859b5a9SPeter Geis bluetooth { 6245859b5a9SPeter Geis compatible = "brcm,bcm43438-bt"; 6255859b5a9SPeter Geis clocks = <&rk809 1>; 6265859b5a9SPeter Geis clock-names = "lpo"; 6275859b5a9SPeter Geis device-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>; 6285859b5a9SPeter Geis host-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>; 6295859b5a9SPeter Geis shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; 6305859b5a9SPeter Geis pinctrl-names = "default"; 6315859b5a9SPeter Geis pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>; 6325859b5a9SPeter Geis vbat-supply = <&vcc3v3_sys>; 6335859b5a9SPeter Geis vddio-supply = <&vcca1v8_pmu>; 6345859b5a9SPeter Geis }; 6355859b5a9SPeter Geis}; 6365859b5a9SPeter Geis 6375859b5a9SPeter Geis/* 6385859b5a9SPeter Geis * uart2 is exposed on CM1 / Module1A 6395859b5a9SPeter Geis * pin 51 - uart2_rx_m0 6405859b5a9SPeter Geis * pin 55 - uart2_tx_m0 6415859b5a9SPeter Geis */ 6425859b5a9SPeter Geis&uart2 { 6435859b5a9SPeter Geis status = "disabled"; 6445859b5a9SPeter Geis}; 6455859b5a9SPeter Geis 6465859b5a9SPeter Geis/* 6475859b5a9SPeter Geis * uart7 is exposed on CM1 / Module1A 6485859b5a9SPeter Geis * pin 46 - uart7_tx_m2 6495859b5a9SPeter Geis * pin 47 - uart7_rx_m2 6505859b5a9SPeter Geis */ 6515859b5a9SPeter Geis&uart7 { 6525859b5a9SPeter Geis pinctrl-names = "default"; 6535859b5a9SPeter Geis pinctrl-0 = <&uart7m2_xfer>; 6545859b5a9SPeter Geis status = "disabled"; 6555859b5a9SPeter Geis}; 6565859b5a9SPeter Geis 6575859b5a9SPeter Geis/* dwc3_otg is the only usb port available */ 6585859b5a9SPeter Geis&usb2phy0 { 6595859b5a9SPeter Geis status = "disabled"; 6605859b5a9SPeter Geis}; 6615859b5a9SPeter Geis 6625859b5a9SPeter Geis&usb2phy0_otg { 6635859b5a9SPeter Geis status = "disabled"; 6645859b5a9SPeter Geis}; 6655859b5a9SPeter Geis 6665859b5a9SPeter Geis&usb_host0_xhci { 6675859b5a9SPeter Geis status = "disabled"; 6685859b5a9SPeter Geis}; 66936d7a605SNicolas Frattaroli 67036d7a605SNicolas Frattaroli&vop { 67136d7a605SNicolas Frattaroli assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; 67236d7a605SNicolas Frattaroli assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; 67336d7a605SNicolas Frattaroli status = "okay"; 67436d7a605SNicolas Frattaroli}; 67536d7a605SNicolas Frattaroli 67636d7a605SNicolas Frattaroli&vop_mmu { 67736d7a605SNicolas Frattaroli status = "okay"; 67836d7a605SNicolas Frattaroli}; 67936d7a605SNicolas Frattaroli 68036d7a605SNicolas Frattaroli&vp0 { 68136d7a605SNicolas Frattaroli vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 68236d7a605SNicolas Frattaroli reg = <ROCKCHIP_VOP2_EP_HDMI0>; 68336d7a605SNicolas Frattaroli remote-endpoint = <&hdmi_in_vp0>; 68436d7a605SNicolas Frattaroli }; 68536d7a605SNicolas Frattaroli}; 686