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