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> 7*36d7a605SNicolas 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 32*36d7a605SNicolas Frattaroli hdmi-con { 33*36d7a605SNicolas Frattaroli compatible = "hdmi-connector"; 34*36d7a605SNicolas Frattaroli type = "a"; 35*36d7a605SNicolas Frattaroli 36*36d7a605SNicolas Frattaroli port { 37*36d7a605SNicolas Frattaroli hdmi_con_in: endpoint { 38*36d7a605SNicolas Frattaroli remote-endpoint = <&hdmi_out_con>; 39*36d7a605SNicolas Frattaroli }; 40*36d7a605SNicolas Frattaroli }; 41*36d7a605SNicolas Frattaroli }; 42*36d7a605SNicolas 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 sdmmc_pwr: sdmmc-pwr-regulator { 1095859b5a9SPeter Geis compatible = "regulator-fixed"; 1105859b5a9SPeter Geis enable-active-high; 1115859b5a9SPeter Geis gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>; 1125859b5a9SPeter Geis pinctrl-names = "default"; 1135859b5a9SPeter Geis pinctrl-0 = <&sdmmc_pwr_h>; 1145859b5a9SPeter Geis regulator-name = "sdmmc_pwr"; 1155859b5a9SPeter Geis status = "disabled"; 1165859b5a9SPeter Geis }; 1175859b5a9SPeter Geis}; 1185859b5a9SPeter Geis 1195859b5a9SPeter Geis&cpu0 { 1205859b5a9SPeter Geis cpu-supply = <&vdd_cpu>; 1215859b5a9SPeter Geis}; 1225859b5a9SPeter Geis 1235859b5a9SPeter Geis&cpu1 { 1245859b5a9SPeter Geis cpu-supply = <&vdd_cpu>; 1255859b5a9SPeter Geis}; 1265859b5a9SPeter Geis 1275859b5a9SPeter Geis&cpu2 { 1285859b5a9SPeter Geis cpu-supply = <&vdd_cpu>; 1295859b5a9SPeter Geis}; 1305859b5a9SPeter Geis 1315859b5a9SPeter Geis&cpu3 { 1325859b5a9SPeter Geis cpu-supply = <&vdd_cpu>; 1335859b5a9SPeter Geis}; 1345859b5a9SPeter Geis 1355859b5a9SPeter Geis&gmac1 { 1365859b5a9SPeter Geis assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>; 1375859b5a9SPeter Geis assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>; 1385859b5a9SPeter Geis clock_in_out = "input"; 1395859b5a9SPeter Geis phy-supply = <&vcc_3v3>; 1405859b5a9SPeter Geis phy-mode = "rgmii"; 1415859b5a9SPeter Geis pinctrl-names = "default"; 1425859b5a9SPeter Geis pinctrl-0 = <&gmac1m0_miim 1435859b5a9SPeter Geis &gmac1m0_tx_bus2 1445859b5a9SPeter Geis &gmac1m0_rx_bus2 1455859b5a9SPeter Geis &gmac1m0_rgmii_clk 1465859b5a9SPeter Geis &gmac1m0_clkinout 1475859b5a9SPeter Geis &gmac1m0_rgmii_bus>; 1485859b5a9SPeter Geis snps,reset-gpio = <&gpio0 RK_PC3 GPIO_ACTIVE_LOW>; 1495859b5a9SPeter Geis snps,reset-active-low; 1505859b5a9SPeter Geis /* Reset time is 20ms, 100ms for rtl8211f, also works well here */ 1515859b5a9SPeter Geis snps,reset-delays-us = <0 20000 100000>; 1525859b5a9SPeter Geis tx_delay = <0x30>; 1535859b5a9SPeter Geis rx_delay = <0x10>; 1545859b5a9SPeter Geis phy-handle = <&rgmii_phy1>; 1555859b5a9SPeter Geis status = "disabled"; 1565859b5a9SPeter Geis}; 1575859b5a9SPeter Geis 158e48824e8SNicolas Frattaroli&gpu { 159e48824e8SNicolas Frattaroli mali-supply = <&vdd_gpu>; 160e48824e8SNicolas Frattaroli status = "okay"; 161e48824e8SNicolas Frattaroli}; 162e48824e8SNicolas Frattaroli 163*36d7a605SNicolas Frattaroli&hdmi { 164*36d7a605SNicolas Frattaroli avdd-0v9-supply = <&vdda0v9_image>; 165*36d7a605SNicolas Frattaroli avdd-1v8-supply = <&vcca1v8_image>; 166*36d7a605SNicolas Frattaroli status = "okay"; 167*36d7a605SNicolas Frattaroli}; 168*36d7a605SNicolas Frattaroli 169*36d7a605SNicolas Frattaroli&hdmi_in { 170*36d7a605SNicolas Frattaroli hdmi_in_vp0: endpoint { 171*36d7a605SNicolas Frattaroli remote-endpoint = <&vp0_out_hdmi>; 172*36d7a605SNicolas Frattaroli }; 173*36d7a605SNicolas Frattaroli}; 174*36d7a605SNicolas Frattaroli 175*36d7a605SNicolas Frattaroli&hdmi_out { 176*36d7a605SNicolas Frattaroli hdmi_out_con: endpoint { 177*36d7a605SNicolas Frattaroli remote-endpoint = <&hdmi_con_in>; 178*36d7a605SNicolas Frattaroli }; 179*36d7a605SNicolas Frattaroli}; 180*36d7a605SNicolas Frattaroli 1815859b5a9SPeter Geis&i2c0 { 1825859b5a9SPeter Geis status = "okay"; 1835859b5a9SPeter Geis 1845859b5a9SPeter Geis vdd_cpu: regulator@1c { 1855859b5a9SPeter Geis compatible = "tcs,tcs4525"; 1865859b5a9SPeter Geis reg = <0x1c>; 1875859b5a9SPeter Geis fcs,suspend-voltage-selector = <1>; 1885859b5a9SPeter Geis regulator-name = "vdd_cpu"; 1895859b5a9SPeter Geis regulator-min-microvolt = <800000>; 1905859b5a9SPeter Geis regulator-max-microvolt = <1150000>; 1915859b5a9SPeter Geis regulator-ramp-delay = <2300>; 1925859b5a9SPeter Geis regulator-always-on; 1935859b5a9SPeter Geis regulator-boot-on; 1945859b5a9SPeter Geis vin-supply = <&vcc5v0_sys>; 1955859b5a9SPeter Geis 1965859b5a9SPeter Geis regulator-state-mem { 1975859b5a9SPeter Geis regulator-off-in-suspend; 1985859b5a9SPeter Geis }; 1995859b5a9SPeter Geis }; 2005859b5a9SPeter Geis 2015859b5a9SPeter Geis rk809: pmic@20 { 2025859b5a9SPeter Geis compatible = "rockchip,rk809"; 2035859b5a9SPeter Geis reg = <0x20>; 2045859b5a9SPeter Geis interrupt-parent = <&gpio0>; 2055859b5a9SPeter Geis interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>; 2065859b5a9SPeter Geis #clock-cells = <1>; 2075859b5a9SPeter Geis clock-output-names = "rk808-clkout1", "rk808-clkout2"; 2085859b5a9SPeter Geis pinctrl-names = "default"; 2095859b5a9SPeter Geis pinctrl-0 = <&pmic_int_l>; 2105859b5a9SPeter Geis rockchip,system-power-controller; 2115859b5a9SPeter Geis wakeup-source; 2125859b5a9SPeter Geis 2135859b5a9SPeter Geis vcc1-supply = <&vcc3v3_sys>; 2145859b5a9SPeter Geis vcc2-supply = <&vcc3v3_sys>; 2155859b5a9SPeter Geis vcc3-supply = <&vcc3v3_sys>; 2165859b5a9SPeter Geis vcc4-supply = <&vcc3v3_sys>; 2175859b5a9SPeter Geis vcc5-supply = <&vcc3v3_sys>; 2185859b5a9SPeter Geis vcc6-supply = <&vcc3v3_sys>; 2195859b5a9SPeter Geis vcc7-supply = <&vcc3v3_sys>; 2205859b5a9SPeter Geis vcc8-supply = <&vcc3v3_sys>; 2215859b5a9SPeter Geis vcc9-supply = <&vcc3v3_sys>; 2225859b5a9SPeter Geis 2235859b5a9SPeter Geis regulators { 2245859b5a9SPeter Geis vdd_logic: DCDC_REG1 { 2255859b5a9SPeter Geis regulator-name = "vdd_logic"; 2265859b5a9SPeter Geis regulator-always-on; 2275859b5a9SPeter Geis regulator-boot-on; 2285859b5a9SPeter Geis regulator-min-microvolt = <500000>; 2295859b5a9SPeter Geis regulator-max-microvolt = <1350000>; 2305859b5a9SPeter Geis regulator-init-microvolt = <900000>; 2315859b5a9SPeter Geis regulator-ramp-delay = <6001>; 2325859b5a9SPeter Geis regulator-initial-mode = <0x2>; 2335859b5a9SPeter Geis regulator-state-mem { 2345859b5a9SPeter Geis regulator-on-in-suspend; 2355859b5a9SPeter Geis regulator-suspend-microvolt = <900000>; 2365859b5a9SPeter Geis }; 2375859b5a9SPeter Geis }; 2385859b5a9SPeter Geis 2395859b5a9SPeter Geis vdd_gpu: DCDC_REG2 { 2405859b5a9SPeter Geis regulator-name = "vdd_gpu"; 2415859b5a9SPeter Geis regulator-always-on; 2425859b5a9SPeter Geis regulator-boot-on; 2435859b5a9SPeter Geis regulator-min-microvolt = <500000>; 2445859b5a9SPeter Geis regulator-max-microvolt = <1350000>; 2455859b5a9SPeter Geis regulator-init-microvolt = <900000>; 2465859b5a9SPeter Geis regulator-ramp-delay = <6001>; 2475859b5a9SPeter Geis regulator-initial-mode = <0x2>; 2485859b5a9SPeter Geis regulator-state-mem { 2495859b5a9SPeter Geis regulator-off-in-suspend; 2505859b5a9SPeter Geis }; 2515859b5a9SPeter Geis }; 2525859b5a9SPeter Geis 2535859b5a9SPeter Geis vcc_ddr: DCDC_REG3 { 2545859b5a9SPeter Geis regulator-always-on; 2555859b5a9SPeter Geis regulator-boot-on; 2565859b5a9SPeter Geis regulator-initial-mode = <0x2>; 2575859b5a9SPeter Geis regulator-name = "vcc_ddr"; 2585859b5a9SPeter Geis regulator-state-mem { 2595859b5a9SPeter Geis regulator-on-in-suspend; 2605859b5a9SPeter Geis }; 2615859b5a9SPeter Geis }; 2625859b5a9SPeter Geis 2635859b5a9SPeter Geis vdd_npu: DCDC_REG4 { 2645859b5a9SPeter Geis regulator-always-on; 2655859b5a9SPeter Geis regulator-boot-on; 2665859b5a9SPeter Geis regulator-min-microvolt = <500000>; 2675859b5a9SPeter Geis regulator-max-microvolt = <1350000>; 2685859b5a9SPeter Geis regulator-init-microvolt = <900000>; 2695859b5a9SPeter Geis regulator-initial-mode = <0x2>; 2705859b5a9SPeter Geis regulator-name = "vdd_npu"; 2715859b5a9SPeter Geis regulator-state-mem { 2725859b5a9SPeter Geis regulator-off-in-suspend; 2735859b5a9SPeter Geis }; 2745859b5a9SPeter Geis }; 2755859b5a9SPeter Geis 2765859b5a9SPeter Geis vcc_1v8: DCDC_REG5 { 2775859b5a9SPeter Geis regulator-name = "vcc_1v8"; 2785859b5a9SPeter Geis regulator-always-on; 2795859b5a9SPeter Geis regulator-boot-on; 2805859b5a9SPeter Geis regulator-min-microvolt = <1800000>; 2815859b5a9SPeter Geis regulator-max-microvolt = <1800000>; 2825859b5a9SPeter Geis regulator-state-mem { 2835859b5a9SPeter Geis regulator-on-in-suspend; 2845859b5a9SPeter Geis regulator-suspend-microvolt = <1800000>; 2855859b5a9SPeter Geis }; 2865859b5a9SPeter Geis }; 2875859b5a9SPeter Geis 2885859b5a9SPeter Geis vdda0v9_image: LDO_REG1 { 2895859b5a9SPeter Geis regulator-always-on; 2905859b5a9SPeter Geis regulator-boot-on; 2915859b5a9SPeter Geis regulator-min-microvolt = <900000>; 2925859b5a9SPeter Geis regulator-max-microvolt = <900000>; 2935859b5a9SPeter Geis regulator-name = "vdda0v9_image"; 2945859b5a9SPeter Geis regulator-state-mem { 2955859b5a9SPeter Geis regulator-on-in-suspend; 2965859b5a9SPeter Geis regulator-suspend-microvolt = <900000>; 2975859b5a9SPeter Geis }; 2985859b5a9SPeter Geis }; 2995859b5a9SPeter Geis 3005859b5a9SPeter Geis vdda_0v9: LDO_REG2 { 3015859b5a9SPeter Geis regulator-always-on; 3025859b5a9SPeter Geis regulator-boot-on; 3035859b5a9SPeter Geis regulator-min-microvolt = <900000>; 3045859b5a9SPeter Geis regulator-max-microvolt = <900000>; 3055859b5a9SPeter Geis regulator-name = "vdda_0v9"; 3065859b5a9SPeter Geis regulator-state-mem { 3075859b5a9SPeter Geis regulator-off-in-suspend; 3085859b5a9SPeter Geis }; 3095859b5a9SPeter Geis }; 3105859b5a9SPeter Geis 3115859b5a9SPeter Geis vdda0v9_pmu: LDO_REG3 { 3125859b5a9SPeter Geis regulator-always-on; 3135859b5a9SPeter Geis regulator-boot-on; 3145859b5a9SPeter Geis regulator-min-microvolt = <900000>; 3155859b5a9SPeter Geis regulator-max-microvolt = <900000>; 3165859b5a9SPeter Geis regulator-name = "vdda0v9_pmu"; 3175859b5a9SPeter Geis regulator-state-mem { 3185859b5a9SPeter Geis regulator-on-in-suspend; 3195859b5a9SPeter Geis regulator-suspend-microvolt = <900000>; 3205859b5a9SPeter Geis }; 3215859b5a9SPeter Geis }; 3225859b5a9SPeter Geis 3235859b5a9SPeter Geis vccio_acodec: LDO_REG4 { 3245859b5a9SPeter Geis regulator-always-on; 3255859b5a9SPeter Geis regulator-boot-on; 3265859b5a9SPeter Geis regulator-min-microvolt = <3300000>; 3275859b5a9SPeter Geis regulator-max-microvolt = <3300000>; 3285859b5a9SPeter Geis regulator-name = "vccio_acodec"; 3295859b5a9SPeter Geis regulator-state-mem { 3305859b5a9SPeter Geis regulator-off-in-suspend; 3315859b5a9SPeter Geis }; 3325859b5a9SPeter Geis }; 3335859b5a9SPeter Geis 3345859b5a9SPeter Geis vccio_sd: LDO_REG5 { 3355859b5a9SPeter Geis regulator-always-on; 3365859b5a9SPeter Geis regulator-boot-on; 3375859b5a9SPeter Geis regulator-min-microvolt = <1800000>; 3385859b5a9SPeter Geis regulator-max-microvolt = <3300000>; 3395859b5a9SPeter Geis regulator-name = "vccio_sd"; 3405859b5a9SPeter Geis regulator-state-mem { 3415859b5a9SPeter Geis regulator-off-in-suspend; 3425859b5a9SPeter Geis }; 3435859b5a9SPeter Geis }; 3445859b5a9SPeter Geis 3455859b5a9SPeter Geis vcc3v3_pmu: LDO_REG6 { 3465859b5a9SPeter Geis regulator-always-on; 3475859b5a9SPeter Geis regulator-boot-on; 3485859b5a9SPeter Geis regulator-min-microvolt = <3300000>; 3495859b5a9SPeter Geis regulator-max-microvolt = <3300000>; 3505859b5a9SPeter Geis regulator-name = "vcc3v3_pmu"; 3515859b5a9SPeter Geis regulator-state-mem { 3525859b5a9SPeter Geis regulator-on-in-suspend; 3535859b5a9SPeter Geis regulator-suspend-microvolt = <3300000>; 3545859b5a9SPeter Geis }; 3555859b5a9SPeter Geis }; 3565859b5a9SPeter Geis 3575859b5a9SPeter Geis vcca_1v8: LDO_REG7 { 3585859b5a9SPeter Geis regulator-always-on; 3595859b5a9SPeter Geis regulator-boot-on; 3605859b5a9SPeter Geis regulator-min-microvolt = <1800000>; 3615859b5a9SPeter Geis regulator-max-microvolt = <1800000>; 3625859b5a9SPeter Geis regulator-name = "vcca_1v8"; 3635859b5a9SPeter Geis regulator-state-mem { 3645859b5a9SPeter Geis regulator-off-in-suspend; 3655859b5a9SPeter Geis }; 3665859b5a9SPeter Geis }; 3675859b5a9SPeter Geis 3685859b5a9SPeter Geis vcca1v8_pmu: LDO_REG8 { 3695859b5a9SPeter Geis regulator-always-on; 3705859b5a9SPeter Geis regulator-boot-on; 3715859b5a9SPeter Geis regulator-min-microvolt = <1800000>; 3725859b5a9SPeter Geis regulator-max-microvolt = <1800000>; 3735859b5a9SPeter Geis regulator-name = "vcca1v8_pmu"; 3745859b5a9SPeter Geis regulator-state-mem { 3755859b5a9SPeter Geis regulator-off-in-suspend; 3765859b5a9SPeter Geis }; 3775859b5a9SPeter Geis }; 3785859b5a9SPeter Geis 3795859b5a9SPeter Geis vcca1v8_image: LDO_REG9 { 3805859b5a9SPeter Geis regulator-always-on; 3815859b5a9SPeter Geis regulator-boot-on; 3825859b5a9SPeter Geis regulator-min-microvolt = <1800000>; 3835859b5a9SPeter Geis regulator-max-microvolt = <1800000>; 3845859b5a9SPeter Geis regulator-name = "vcca1v8_image"; 3855859b5a9SPeter Geis regulator-state-mem { 3865859b5a9SPeter Geis regulator-off-in-suspend; 3875859b5a9SPeter Geis }; 3885859b5a9SPeter Geis }; 3895859b5a9SPeter Geis 3905859b5a9SPeter Geis vcc_3v3: SWITCH_REG1 { 3915859b5a9SPeter Geis regulator-name = "vcc_3v3"; 3925859b5a9SPeter Geis regulator-state-mem { 3935859b5a9SPeter Geis regulator-off-in-suspend; 3945859b5a9SPeter Geis }; 3955859b5a9SPeter Geis }; 3965859b5a9SPeter Geis 3975859b5a9SPeter Geis vcc3v3_sd: SWITCH_REG2 { 3985859b5a9SPeter Geis regulator-name = "vcc3v3_sd"; 3995859b5a9SPeter Geis status = "disabled"; 4005859b5a9SPeter Geis regulator-state-mem { 4015859b5a9SPeter Geis regulator-on-in-suspend; 4025859b5a9SPeter Geis }; 4035859b5a9SPeter Geis }; 4045859b5a9SPeter Geis 4055859b5a9SPeter Geis }; 4065859b5a9SPeter Geis }; 4075859b5a9SPeter Geis}; 4085859b5a9SPeter Geis 4095859b5a9SPeter Geis/* 4105859b5a9SPeter Geis * i2c1 is exposed on CM1 / Module1A 4115859b5a9SPeter Geis * pin 80 - i2c1_scl_m0, pullup to vcc3v3_pmu 4125859b5a9SPeter Geis * pin 82 - i2c1_sda_m0, pullup to vcc3v3_pmu 4135859b5a9SPeter Geis */ 4145859b5a9SPeter Geis&i2c1 { 4155859b5a9SPeter Geis status = "disabled"; 4165859b5a9SPeter Geis}; 4175859b5a9SPeter Geis 4185859b5a9SPeter Geis/* 4195859b5a9SPeter Geis * i2c2 is exposed on CM1 / Module1A 4205859b5a9SPeter Geis * pin 56 - i2c2_scl_m1, pullup to vcc_3v3, shared with i2s1_8ch 4215859b5a9SPeter Geis * pin 58 - i2c2_sda_m1, pullup to vcc_3v3 4225859b5a9SPeter Geis */ 4235859b5a9SPeter Geis&i2c2 { 4245859b5a9SPeter Geis pinctrl-names = "default"; 4255859b5a9SPeter Geis pinctrl-0 = <&i2c2m1_xfer>; 4265859b5a9SPeter Geis status = "disabled"; 4275859b5a9SPeter Geis}; 4285859b5a9SPeter Geis 4295859b5a9SPeter Geis/* 4305859b5a9SPeter Geis * i2c3 is exposed on CM1 / Module1A 4315859b5a9SPeter Geis * pin 35 - i2c3_scl_m0, pullup to vcc_3v3 4325859b5a9SPeter Geis * pin 36 - i2c3_sda_m0, pullup to vcc_3v3 4335859b5a9SPeter Geis */ 4345859b5a9SPeter Geis&i2c3 { 4355859b5a9SPeter Geis status = "disabled"; 4365859b5a9SPeter Geis}; 4375859b5a9SPeter Geis 4385859b5a9SPeter Geis/* 4395859b5a9SPeter Geis * i2c4 is exposed on CM2 / Module1B 4405859b5a9SPeter Geis * pin 45 - i2c4_scl_m1 4415859b5a9SPeter Geis * pin 47 - i2c4_sda_m1 4425859b5a9SPeter Geis */ 4435859b5a9SPeter Geis&i2c4 { 4445859b5a9SPeter Geis pinctrl-names = "default"; 4455859b5a9SPeter Geis pinctrl-0 = <&i2c4m1_xfer>; 4465859b5a9SPeter Geis status = "disabled"; 4475859b5a9SPeter Geis}; 4485859b5a9SPeter Geis 4495859b5a9SPeter Geis/* 4505859b5a9SPeter Geis * i2s1_8ch is exposed on CM1 / Module1A 4515859b5a9SPeter Geis * pin 24 - i2s1_sdi1_m1 4525859b5a9SPeter Geis * pin 25 - i2s1_sdo0_m1 4535859b5a9SPeter Geis * pin 26 - i2s1_lrck_tx_m1 4545859b5a9SPeter Geis * pin 27 - i2s1_sdi0_m1 4555859b5a9SPeter Geis * pin 29 - i2s1_sdi3_m1 4565859b5a9SPeter Geis * pin 30 - i2s1_sdi2_m1 4575859b5a9SPeter Geis * pin 40 - i2s1_sdo1_m1, shared with spi3 4585859b5a9SPeter Geis * pin 41 - i2s1_sdo2_m1 4595859b5a9SPeter Geis * pin 49 - i2s1_sclk_tx_m1 4605859b5a9SPeter Geis * pin 50 - i2s1_mclk_m1 4615859b5a9SPeter Geis * pin 56 - i2s1_sdo3_m1, shared with i2c2 4625859b5a9SPeter Geis */ 4635859b5a9SPeter Geis&i2s1_8ch { 4645859b5a9SPeter Geis pinctrl-names = "default"; 4655859b5a9SPeter Geis pinctrl-0 = <&i2s1m1_sclktx &i2s1m1_sclkrx 4665859b5a9SPeter Geis &i2s1m1_lrcktx &i2s1m1_lrckrx 4675859b5a9SPeter Geis &i2s1m1_sdi0 &i2s1m1_sdi1 4685859b5a9SPeter Geis &i2s1m1_sdi2 &i2s1m1_sdi3 4695859b5a9SPeter Geis &i2s1m1_sdo0 &i2s1m1_sdo1 4705859b5a9SPeter Geis &i2s1m1_sdo2 &i2s1m1_sdo3>; 4715859b5a9SPeter Geis status = "disabled"; 4725859b5a9SPeter Geis}; 4735859b5a9SPeter Geis 4745859b5a9SPeter Geis&mdio1 { 4755859b5a9SPeter Geis rgmii_phy1: ethernet-phy@0 { 4765859b5a9SPeter Geis compatible = "ethernet-phy-ieee802.3-c22"; 4775859b5a9SPeter Geis reg = <0>; 4785859b5a9SPeter Geis status = "disabled"; 4795859b5a9SPeter Geis }; 4805859b5a9SPeter Geis}; 4815859b5a9SPeter Geis 4825859b5a9SPeter Geis&pinctrl { 4835859b5a9SPeter Geis bt { 4845859b5a9SPeter Geis bt_enable_h: bt-enable-h { 4855859b5a9SPeter Geis rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 4865859b5a9SPeter Geis }; 4875859b5a9SPeter Geis 4885859b5a9SPeter Geis bt_host_wake_l: bt-host-wake-l { 4895859b5a9SPeter Geis rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_down>; 4905859b5a9SPeter Geis }; 4915859b5a9SPeter Geis 4925859b5a9SPeter Geis bt_wake_l: bt-wake-l { 4935859b5a9SPeter Geis rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; 4945859b5a9SPeter Geis }; 4955859b5a9SPeter Geis }; 4965859b5a9SPeter Geis 4975859b5a9SPeter Geis leds { 4985859b5a9SPeter Geis work_led_enable_h: work-led-enable-h { 4995859b5a9SPeter Geis rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>; 5005859b5a9SPeter Geis }; 5015859b5a9SPeter Geis 5025859b5a9SPeter Geis diy_led_enable_h: diy-led-enable-h { 5035859b5a9SPeter Geis rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; 5045859b5a9SPeter Geis }; 5055859b5a9SPeter Geis }; 5065859b5a9SPeter Geis 5075859b5a9SPeter Geis pmic { 5085859b5a9SPeter Geis pmic_int_l: pmic-int-l { 5095859b5a9SPeter Geis rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; 5105859b5a9SPeter Geis }; 5115859b5a9SPeter Geis }; 5125859b5a9SPeter Geis 5135859b5a9SPeter Geis sdio-pwrseq { 5145859b5a9SPeter Geis wifi_enable_h: wifi-enable-h { 5155859b5a9SPeter Geis rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; 5165859b5a9SPeter Geis }; 5175859b5a9SPeter Geis }; 5185859b5a9SPeter Geis 5195859b5a9SPeter Geis sdmmc-pwr { 5205859b5a9SPeter Geis sdmmc_pwr_h: sdmmc-pwr-h { 5215859b5a9SPeter Geis rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; 5225859b5a9SPeter Geis }; 5235859b5a9SPeter Geis }; 5245859b5a9SPeter Geis}; 5255859b5a9SPeter Geis 5265859b5a9SPeter Geis&pmu_io_domains { 5275859b5a9SPeter Geis pmuio1-supply = <&vcc3v3_pmu>; 5285859b5a9SPeter Geis pmuio2-supply = <&vcc3v3_pmu>; 5295859b5a9SPeter Geis vccio1-supply = <&vcc_3v3>; 5305859b5a9SPeter Geis vccio2-supply = <&vcc_1v8>; 5315859b5a9SPeter Geis vccio3-supply = <&vccio_sd>; 5325859b5a9SPeter Geis vccio4-supply = <&vcc_1v8>; 5335859b5a9SPeter Geis vccio5-supply = <&vcc_3v3>; 5345859b5a9SPeter Geis vccio6-supply = <&vcc_3v3>; 5355859b5a9SPeter Geis vccio7-supply = <&vcc_3v3>; 5365859b5a9SPeter Geis status = "okay"; 5375859b5a9SPeter Geis}; 5385859b5a9SPeter Geis 5395859b5a9SPeter Geis/* 5405859b5a9SPeter Geis * saradc is exposed on CM1 / Module1A 5415859b5a9SPeter Geis * pin 94 - saradc_vin3 5425859b5a9SPeter Geis * pin 96 - saradc_vin2 5435859b5a9SPeter Geis */ 5445859b5a9SPeter Geis&saradc { 5455859b5a9SPeter Geis vref-supply = <&vcca_1v8>; 5465859b5a9SPeter Geis status = "disabled"; 5475859b5a9SPeter Geis}; 5485859b5a9SPeter Geis 5495859b5a9SPeter Geis&sdhci { 5505859b5a9SPeter Geis bus-width = <8>; 5515859b5a9SPeter Geis mmc-hs200-1_8v; 5525859b5a9SPeter Geis non-removable; 5535859b5a9SPeter Geis vmmc-supply = <&vcc_3v3>; 5545859b5a9SPeter Geis vqmmc-supply = <&vcc_1v8>; 5555859b5a9SPeter Geis status = "okay"; 5565859b5a9SPeter Geis}; 5575859b5a9SPeter Geis 5585859b5a9SPeter Geis&sdmmc0 { 5595859b5a9SPeter Geis broken-cd; 5605859b5a9SPeter Geis bus-width = <4>; 5615859b5a9SPeter Geis cap-sd-highspeed; 5625859b5a9SPeter Geis disable-wp; 5635859b5a9SPeter Geis pinctrl-names = "default"; 5645859b5a9SPeter Geis pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; 5655859b5a9SPeter Geis vqmmc-supply = <&vccio_sd>; 5665859b5a9SPeter Geis status = "disabled"; 5675859b5a9SPeter Geis}; 5685859b5a9SPeter Geis 5695859b5a9SPeter Geis&sdmmc1 { 5705859b5a9SPeter Geis bus-width = <4>; 5715859b5a9SPeter Geis cap-sd-highspeed; 5725859b5a9SPeter Geis cap-sdio-irq; 5735859b5a9SPeter Geis keep-power-in-suspend; 5745859b5a9SPeter Geis mmc-pwrseq = <&sdio_pwrseq>; 5755859b5a9SPeter Geis non-removable; 5765859b5a9SPeter Geis pinctrl-names = "default"; 5775859b5a9SPeter Geis pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>; 5785859b5a9SPeter Geis sd-uhs-sdr104; 5795859b5a9SPeter Geis vmmc-supply = <&vcc3v3_sys>; 5805859b5a9SPeter Geis vqmmc-supply = <&vcc_1v8>; 5815859b5a9SPeter Geis status = "okay"; 5825859b5a9SPeter Geis}; 5835859b5a9SPeter Geis 5845859b5a9SPeter Geis/* 5855859b5a9SPeter Geis * spi3 is exposed on CM1 / Module1A 5865859b5a9SPeter Geis * pin 37 - spi3_cs1_m0 5875859b5a9SPeter Geis * pin 38 - spi3_clk_m0 5885859b5a9SPeter Geis * pin 39 - spi3_cs0_m0 5895859b5a9SPeter Geis * pin 40 - spi3_miso_m0, shared with i2s1_8ch 5905859b5a9SPeter Geis * pin 44 - spi3_mosi_m0 5915859b5a9SPeter Geis */ 5925859b5a9SPeter Geis&spi3 { 5935859b5a9SPeter Geis status = "disabled"; 5945859b5a9SPeter Geis}; 5955859b5a9SPeter Geis 5965859b5a9SPeter Geis&tsadc { 5975859b5a9SPeter Geis status = "okay"; 5985859b5a9SPeter Geis}; 5995859b5a9SPeter Geis 6005859b5a9SPeter Geis&uart1 { 6015859b5a9SPeter Geis pinctrl-names = "default"; 6025859b5a9SPeter Geis pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>; 6035859b5a9SPeter Geis uart-has-rtscts; 6045859b5a9SPeter Geis status = "okay"; 6055859b5a9SPeter Geis 6065859b5a9SPeter Geis bluetooth { 6075859b5a9SPeter Geis compatible = "brcm,bcm43438-bt"; 6085859b5a9SPeter Geis clocks = <&rk809 1>; 6095859b5a9SPeter Geis clock-names = "lpo"; 6105859b5a9SPeter Geis device-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>; 6115859b5a9SPeter Geis host-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>; 6125859b5a9SPeter Geis shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; 6135859b5a9SPeter Geis pinctrl-names = "default"; 6145859b5a9SPeter Geis pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>; 6155859b5a9SPeter Geis vbat-supply = <&vcc3v3_sys>; 6165859b5a9SPeter Geis vddio-supply = <&vcca1v8_pmu>; 6175859b5a9SPeter Geis }; 6185859b5a9SPeter Geis}; 6195859b5a9SPeter Geis 6205859b5a9SPeter Geis/* 6215859b5a9SPeter Geis * uart2 is exposed on CM1 / Module1A 6225859b5a9SPeter Geis * pin 51 - uart2_rx_m0 6235859b5a9SPeter Geis * pin 55 - uart2_tx_m0 6245859b5a9SPeter Geis */ 6255859b5a9SPeter Geis&uart2 { 6265859b5a9SPeter Geis status = "disabled"; 6275859b5a9SPeter Geis}; 6285859b5a9SPeter Geis 6295859b5a9SPeter Geis/* 6305859b5a9SPeter Geis * uart7 is exposed on CM1 / Module1A 6315859b5a9SPeter Geis * pin 46 - uart7_tx_m2 6325859b5a9SPeter Geis * pin 47 - uart7_rx_m2 6335859b5a9SPeter Geis */ 6345859b5a9SPeter Geis&uart7 { 6355859b5a9SPeter Geis pinctrl-names = "default"; 6365859b5a9SPeter Geis pinctrl-0 = <&uart7m2_xfer>; 6375859b5a9SPeter Geis status = "disabled"; 6385859b5a9SPeter Geis}; 6395859b5a9SPeter Geis 6405859b5a9SPeter Geis/* dwc3_otg is the only usb port available */ 6415859b5a9SPeter Geis&usb2phy0 { 6425859b5a9SPeter Geis status = "disabled"; 6435859b5a9SPeter Geis}; 6445859b5a9SPeter Geis 6455859b5a9SPeter Geis&usb2phy0_otg { 6465859b5a9SPeter Geis status = "disabled"; 6475859b5a9SPeter Geis}; 6485859b5a9SPeter Geis 6495859b5a9SPeter Geis&usb_host0_xhci { 6505859b5a9SPeter Geis status = "disabled"; 6515859b5a9SPeter Geis}; 652*36d7a605SNicolas Frattaroli 653*36d7a605SNicolas Frattaroli&vop { 654*36d7a605SNicolas Frattaroli assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; 655*36d7a605SNicolas Frattaroli assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; 656*36d7a605SNicolas Frattaroli status = "okay"; 657*36d7a605SNicolas Frattaroli}; 658*36d7a605SNicolas Frattaroli 659*36d7a605SNicolas Frattaroli&vop_mmu { 660*36d7a605SNicolas Frattaroli status = "okay"; 661*36d7a605SNicolas Frattaroli}; 662*36d7a605SNicolas Frattaroli 663*36d7a605SNicolas Frattaroli&vp0 { 664*36d7a605SNicolas Frattaroli vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 665*36d7a605SNicolas Frattaroli reg = <ROCKCHIP_VOP2_EP_HDMI0>; 666*36d7a605SNicolas Frattaroli remote-endpoint = <&hdmi_in_vp0>; 667*36d7a605SNicolas Frattaroli }; 668*36d7a605SNicolas Frattaroli}; 669