1dcc8c66bSPeter Geis// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2dcc8c66bSPeter Geis 3dcc8c66bSPeter Geis/dts-v1/; 4dcc8c66bSPeter Geis 5dcc8c66bSPeter Geis#include <dt-bindings/gpio/gpio.h> 6dcc8c66bSPeter Geis#include <dt-bindings/pinctrl/rockchip.h> 7d99efdabSNicolas Frattaroli#include <dt-bindings/soc/rockchip,vop2.h> 8dcc8c66bSPeter Geis#include "rk3566.dtsi" 9dcc8c66bSPeter Geis 10dcc8c66bSPeter Geis/ { 11dcc8c66bSPeter Geis model = "Pine64 RK3566 Quartz64-B Board"; 12dcc8c66bSPeter Geis compatible = "pine64,quartz64-b", "rockchip,rk3566"; 13dcc8c66bSPeter Geis 14dcc8c66bSPeter Geis aliases { 15dcc8c66bSPeter Geis ethernet0 = &gmac1; 16dcc8c66bSPeter Geis mmc0 = &sdmmc0; 17dcc8c66bSPeter Geis mmc1 = &sdhci; 18dcc8c66bSPeter Geis mmc2 = &sdmmc1; 19dcc8c66bSPeter Geis }; 20dcc8c66bSPeter Geis 21dcc8c66bSPeter Geis chosen: chosen { 22dcc8c66bSPeter Geis stdout-path = "serial2:1500000n8"; 23dcc8c66bSPeter Geis }; 24dcc8c66bSPeter Geis 25dcc8c66bSPeter Geis gmac1_clkin: external-gmac1-clock { 26dcc8c66bSPeter Geis compatible = "fixed-clock"; 27dcc8c66bSPeter Geis clock-frequency = <125000000>; 28dcc8c66bSPeter Geis clock-output-names = "gmac1_clkin"; 29dcc8c66bSPeter Geis #clock-cells = <0>; 30dcc8c66bSPeter Geis }; 31dcc8c66bSPeter Geis 32d99efdabSNicolas Frattaroli hdmi-con { 33d99efdabSNicolas Frattaroli compatible = "hdmi-connector"; 34d99efdabSNicolas Frattaroli type = "a"; 35d99efdabSNicolas Frattaroli 36d99efdabSNicolas Frattaroli port { 37d99efdabSNicolas Frattaroli hdmi_con_in: endpoint { 38d99efdabSNicolas Frattaroli remote-endpoint = <&hdmi_out_con>; 39d99efdabSNicolas Frattaroli }; 40d99efdabSNicolas Frattaroli }; 41d99efdabSNicolas Frattaroli }; 42d99efdabSNicolas Frattaroli 43dcc8c66bSPeter Geis leds { 44dcc8c66bSPeter Geis compatible = "gpio-leds"; 45dcc8c66bSPeter Geis 46dcc8c66bSPeter Geis led-user { 47dcc8c66bSPeter Geis label = "user-led"; 48dcc8c66bSPeter Geis default-state = "on"; 49dcc8c66bSPeter Geis gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>; 50dcc8c66bSPeter Geis linux,default-trigger = "heartbeat"; 51dcc8c66bSPeter Geis pinctrl-names = "default"; 52dcc8c66bSPeter Geis pinctrl-0 = <&user_led_enable_h>; 53dcc8c66bSPeter Geis retain-state-suspended; 54dcc8c66bSPeter Geis }; 55dcc8c66bSPeter Geis }; 56dcc8c66bSPeter Geis 57db7ad415SNicolas Frattaroli sound { 58db7ad415SNicolas Frattaroli compatible = "simple-audio-card"; 59db7ad415SNicolas Frattaroli simple-audio-card,format = "i2s"; 60db7ad415SNicolas Frattaroli simple-audio-card,name = "Analog RK809"; 61db7ad415SNicolas Frattaroli simple-audio-card,mclk-fs = <256>; 62db7ad415SNicolas Frattaroli 63db7ad415SNicolas Frattaroli simple-audio-card,cpu { 64db7ad415SNicolas Frattaroli sound-dai = <&i2s1_8ch>; 65db7ad415SNicolas Frattaroli }; 66db7ad415SNicolas Frattaroli 67db7ad415SNicolas Frattaroli simple-audio-card,codec { 68db7ad415SNicolas Frattaroli sound-dai = <&rk809>; 69db7ad415SNicolas Frattaroli }; 70db7ad415SNicolas Frattaroli }; 71db7ad415SNicolas Frattaroli 72dcc8c66bSPeter Geis sdio_pwrseq: sdio-pwrseq { 73dcc8c66bSPeter Geis status = "okay"; 74dcc8c66bSPeter Geis compatible = "mmc-pwrseq-simple"; 75dcc8c66bSPeter Geis clocks = <&rk809 1>; 76dcc8c66bSPeter Geis clock-names = "ext_clock"; 77dcc8c66bSPeter Geis pinctrl-names = "default"; 78dcc8c66bSPeter Geis pinctrl-0 = <&wifi_enable_h>; 79dcc8c66bSPeter Geis reset-gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>; 80dcc8c66bSPeter Geis post-power-on-delay-ms = <100>; 81dcc8c66bSPeter Geis power-off-delay-us = <5000000>; 82dcc8c66bSPeter Geis }; 83dcc8c66bSPeter Geis 84cd4e5f30SNicolas Frattaroli vcc3v3_pcie_p: vcc3v3-pcie-p-regulator { 85cd4e5f30SNicolas Frattaroli compatible = "regulator-fixed"; 86cd4e5f30SNicolas Frattaroli enable-active-high; 87cd4e5f30SNicolas Frattaroli gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; 88cd4e5f30SNicolas Frattaroli pinctrl-names = "default"; 89cd4e5f30SNicolas Frattaroli pinctrl-0 = <&pcie_enable_h>; 90cd4e5f30SNicolas Frattaroli regulator-name = "vcc3v3_pcie_p"; 91cd4e5f30SNicolas Frattaroli regulator-min-microvolt = <3300000>; 92cd4e5f30SNicolas Frattaroli regulator-max-microvolt = <3300000>; 93cd4e5f30SNicolas Frattaroli vin-supply = <&vcc_3v3>; 94cd4e5f30SNicolas Frattaroli }; 95cd4e5f30SNicolas Frattaroli 96dcc8c66bSPeter Geis vcc5v0_in: vcc5v0-in-regulator { 97dcc8c66bSPeter Geis compatible = "regulator-fixed"; 98dcc8c66bSPeter Geis regulator-name = "vcc5v0_in"; 99dcc8c66bSPeter Geis regulator-always-on; 100dcc8c66bSPeter Geis regulator-boot-on; 101dcc8c66bSPeter Geis regulator-min-microvolt = <5000000>; 102dcc8c66bSPeter Geis regulator-max-microvolt = <5000000>; 103dcc8c66bSPeter Geis }; 104dcc8c66bSPeter Geis 105dcc8c66bSPeter Geis vcc5v0_sys: vcc5v0-sys-regulator { 106dcc8c66bSPeter Geis compatible = "regulator-fixed"; 107dcc8c66bSPeter Geis regulator-name = "vcc5v0_sys"; 108dcc8c66bSPeter Geis regulator-always-on; 109dcc8c66bSPeter Geis regulator-boot-on; 110dcc8c66bSPeter Geis regulator-min-microvolt = <5000000>; 111dcc8c66bSPeter Geis regulator-max-microvolt = <5000000>; 112dcc8c66bSPeter Geis vin-supply = <&vcc5v0_in>; 113dcc8c66bSPeter Geis }; 114dcc8c66bSPeter Geis 115dcc8c66bSPeter Geis vcc3v3_sys: vcc3v3-sys-regulator { 116dcc8c66bSPeter Geis compatible = "regulator-fixed"; 117dcc8c66bSPeter Geis regulator-name = "vcc3v3_sys"; 118dcc8c66bSPeter Geis regulator-min-microvolt = <3300000>; 119dcc8c66bSPeter Geis regulator-max-microvolt = <3300000>; 120dcc8c66bSPeter Geis regulator-always-on; 121dcc8c66bSPeter Geis vin-supply = <&vcc5v0_sys>; 122dcc8c66bSPeter Geis }; 123dcc8c66bSPeter Geis 124dcc8c66bSPeter Geis vcc5v0_usb30_host: vcc5v0-usb30-host-regulator { 125dcc8c66bSPeter Geis compatible = "regulator-fixed"; 126dcc8c66bSPeter Geis regulator-name = "vcc5v0_usb30_host"; 127dcc8c66bSPeter Geis enable-active-high; 128dcc8c66bSPeter Geis gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>; 129dcc8c66bSPeter Geis pinctrl-names = "default"; 130dcc8c66bSPeter Geis pinctrl-0 = <&vcc5v0_usb30_host_en_h>; 131dcc8c66bSPeter Geis regulator-always-on; 132dcc8c66bSPeter Geis regulator-min-microvolt = <5000000>; 133dcc8c66bSPeter Geis regulator-max-microvolt = <5000000>; 134dcc8c66bSPeter Geis vin-supply = <&vcc5v0_sys>; 135dcc8c66bSPeter Geis }; 136dcc8c66bSPeter Geis 137dcc8c66bSPeter Geis vcc5v0_usb_otg: vcc5v0-usb-otg-regulator { 138dcc8c66bSPeter Geis compatible = "regulator-fixed"; 139dcc8c66bSPeter Geis regulator-name = "vcc5v0_usb_otg"; 140dcc8c66bSPeter Geis enable-active-high; 141dcc8c66bSPeter Geis gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; 142dcc8c66bSPeter Geis pinctrl-names = "default"; 143dcc8c66bSPeter Geis pinctrl-0 = <&vcc5v0_usb_otg_en_h>; 144dcc8c66bSPeter Geis regulator-always-on; 145dcc8c66bSPeter Geis regulator-min-microvolt = <5000000>; 146dcc8c66bSPeter Geis regulator-max-microvolt = <5000000>; 147dcc8c66bSPeter Geis vin-supply = <&vcc5v0_sys>; 148dcc8c66bSPeter Geis }; 149dcc8c66bSPeter Geis}; 150dcc8c66bSPeter Geis 151dcc8c66bSPeter Geis&combphy1 { 152dcc8c66bSPeter Geis status = "okay"; 153dcc8c66bSPeter Geis}; 154dcc8c66bSPeter Geis 155cd4e5f30SNicolas Frattaroli&combphy2 { 156cd4e5f30SNicolas Frattaroli status = "okay"; 157cd4e5f30SNicolas Frattaroli}; 158cd4e5f30SNicolas Frattaroli 159dcc8c66bSPeter Geis&cpu0 { 160dcc8c66bSPeter Geis cpu-supply = <&vdd_cpu>; 161dcc8c66bSPeter Geis}; 162dcc8c66bSPeter Geis 163dcc8c66bSPeter Geis&cpu1 { 164dcc8c66bSPeter Geis cpu-supply = <&vdd_cpu>; 165dcc8c66bSPeter Geis}; 166dcc8c66bSPeter Geis 167dcc8c66bSPeter Geis&cpu2 { 168dcc8c66bSPeter Geis cpu-supply = <&vdd_cpu>; 169dcc8c66bSPeter Geis}; 170dcc8c66bSPeter Geis 171dcc8c66bSPeter Geis&cpu3 { 172dcc8c66bSPeter Geis cpu-supply = <&vdd_cpu>; 173dcc8c66bSPeter Geis}; 174dcc8c66bSPeter Geis 175dcc8c66bSPeter Geis&gmac1 { 176dcc8c66bSPeter Geis assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>; 177dcc8c66bSPeter Geis assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>; 178dcc8c66bSPeter Geis clock_in_out = "input"; 17916bc4d19SPeter Geis phy-mode = "rgmii"; 180dcc8c66bSPeter Geis phy-supply = <&vcc_3v3>; 181dcc8c66bSPeter Geis pinctrl-names = "default"; 182dcc8c66bSPeter Geis pinctrl-0 = <&gmac1m1_miim 183dcc8c66bSPeter Geis &gmac1m1_tx_bus2 184dcc8c66bSPeter Geis &gmac1m1_rx_bus2 185dcc8c66bSPeter Geis &gmac1m1_rgmii_clk 186dcc8c66bSPeter Geis &gmac1m1_clkinout 187dcc8c66bSPeter Geis &gmac1m1_rgmii_bus>; 188dcc8c66bSPeter Geis snps,reset-gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>; 189dcc8c66bSPeter Geis snps,reset-active-low; 190dcc8c66bSPeter Geis /* Reset time is 20ms, 100ms for rtl8211f, also works well here */ 191dcc8c66bSPeter Geis snps,reset-delays-us = <0 20000 100000>; 192dcc8c66bSPeter Geis tx_delay = <0x4f>; 193dcc8c66bSPeter Geis rx_delay = <0x24>; 194dcc8c66bSPeter Geis phy-handle = <&rgmii_phy1>; 195dcc8c66bSPeter Geis status = "okay"; 196dcc8c66bSPeter Geis}; 197dcc8c66bSPeter Geis 198d99efdabSNicolas Frattaroli&gpu { 199d99efdabSNicolas Frattaroli mali-supply = <&vdd_gpu>; 200d99efdabSNicolas Frattaroli status = "okay"; 201d99efdabSNicolas Frattaroli}; 202d99efdabSNicolas Frattaroli 203d99efdabSNicolas Frattaroli&hdmi { 204d99efdabSNicolas Frattaroli avdd-0v9-supply = <&vdda0v9_image>; 205d99efdabSNicolas Frattaroli avdd-1v8-supply = <&vcca1v8_image>; 206d99efdabSNicolas Frattaroli status = "okay"; 207d99efdabSNicolas Frattaroli}; 208d99efdabSNicolas Frattaroli 209d99efdabSNicolas Frattaroli&hdmi_in { 210d99efdabSNicolas Frattaroli hdmi_in_vp0: endpoint { 211d99efdabSNicolas Frattaroli remote-endpoint = <&vp0_out_hdmi>; 212d99efdabSNicolas Frattaroli }; 213d99efdabSNicolas Frattaroli}; 214d99efdabSNicolas Frattaroli 215d99efdabSNicolas Frattaroli&hdmi_out { 216d99efdabSNicolas Frattaroli hdmi_out_con: endpoint { 217d99efdabSNicolas Frattaroli remote-endpoint = <&hdmi_con_in>; 218d99efdabSNicolas Frattaroli }; 219d99efdabSNicolas Frattaroli}; 220d99efdabSNicolas Frattaroli 221d99efdabSNicolas Frattaroli&hdmi_sound { 222d99efdabSNicolas Frattaroli status = "okay"; 223d99efdabSNicolas Frattaroli}; 224d99efdabSNicolas Frattaroli 225dcc8c66bSPeter Geis&i2c0 { 226dcc8c66bSPeter Geis status = "okay"; 227dcc8c66bSPeter Geis 228dcc8c66bSPeter Geis vdd_cpu: regulator@1c { 229dcc8c66bSPeter Geis compatible = "tcs,tcs4525"; 230dcc8c66bSPeter Geis reg = <0x1c>; 231dcc8c66bSPeter Geis fcs,suspend-voltage-selector = <1>; 232dcc8c66bSPeter Geis regulator-name = "vdd_cpu"; 233dcc8c66bSPeter Geis regulator-min-microvolt = <800000>; 234dcc8c66bSPeter Geis regulator-max-microvolt = <1150000>; 235dcc8c66bSPeter Geis regulator-ramp-delay = <2300>; 236dcc8c66bSPeter Geis regulator-always-on; 237dcc8c66bSPeter Geis regulator-boot-on; 238dcc8c66bSPeter Geis vin-supply = <&vcc5v0_sys>; 239dcc8c66bSPeter Geis 240dcc8c66bSPeter Geis regulator-state-mem { 241dcc8c66bSPeter Geis regulator-off-in-suspend; 242dcc8c66bSPeter Geis }; 243dcc8c66bSPeter Geis }; 244dcc8c66bSPeter Geis 245dcc8c66bSPeter Geis rk809: pmic@20 { 246dcc8c66bSPeter Geis compatible = "rockchip,rk809"; 247dcc8c66bSPeter Geis reg = <0x20>; 248dcc8c66bSPeter Geis interrupt-parent = <&gpio0>; 249562105c1SChen-Yu Tsai interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>; 250db7ad415SNicolas Frattaroli assigned-clocks = <&cru I2S1_MCLKOUT_TX>; 251db7ad415SNicolas Frattaroli assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>; 252db7ad415SNicolas Frattaroli clock-names = "mclk"; 253db7ad415SNicolas Frattaroli clocks = <&cru I2S1_MCLKOUT_TX>; 254dcc8c66bSPeter Geis clock-output-names = "rk808-clkout1", "rk808-clkout2"; 255dcc8c66bSPeter Geis 256dcc8c66bSPeter Geis pinctrl-names = "default"; 257db7ad415SNicolas Frattaroli pinctrl-0 = <&pmic_int>, <&i2s1m0_mclk>; 258dcc8c66bSPeter Geis rockchip,system-power-controller; 259db7ad415SNicolas Frattaroli #sound-dai-cells = <0>; 260dcc8c66bSPeter Geis wakeup-source; 261dcc8c66bSPeter Geis #clock-cells = <1>; 262dcc8c66bSPeter Geis 263dcc8c66bSPeter Geis vcc1-supply = <&vcc3v3_sys>; 264dcc8c66bSPeter Geis vcc2-supply = <&vcc3v3_sys>; 265dcc8c66bSPeter Geis vcc3-supply = <&vcc3v3_sys>; 266dcc8c66bSPeter Geis vcc4-supply = <&vcc3v3_sys>; 267dcc8c66bSPeter Geis vcc5-supply = <&vcc3v3_sys>; 268dcc8c66bSPeter Geis vcc6-supply = <&vcc3v3_sys>; 269dcc8c66bSPeter Geis vcc7-supply = <&vcc3v3_sys>; 270dcc8c66bSPeter Geis vcc8-supply = <&vcc3v3_sys>; 271dcc8c66bSPeter Geis vcc9-supply = <&vcc3v3_sys>; 272dcc8c66bSPeter Geis 273dcc8c66bSPeter Geis regulators { 274dcc8c66bSPeter Geis vdd_log: DCDC_REG1 { 275dcc8c66bSPeter Geis regulator-name = "vdd_log"; 276dcc8c66bSPeter Geis regulator-always-on; 277dcc8c66bSPeter Geis regulator-boot-on; 278dcc8c66bSPeter Geis regulator-min-microvolt = <500000>; 279dcc8c66bSPeter Geis regulator-max-microvolt = <1350000>; 280dcc8c66bSPeter Geis regulator-ramp-delay = <6001>; 281dcc8c66bSPeter Geis 282dcc8c66bSPeter Geis regulator-state-mem { 283dcc8c66bSPeter Geis regulator-on-in-suspend; 284dcc8c66bSPeter Geis regulator-suspend-microvolt = <900000>; 285dcc8c66bSPeter Geis }; 286dcc8c66bSPeter Geis }; 287dcc8c66bSPeter Geis 288dcc8c66bSPeter Geis vdd_gpu: DCDC_REG2 { 289dcc8c66bSPeter Geis regulator-name = "vdd_gpu"; 290dcc8c66bSPeter Geis regulator-always-on; 291dcc8c66bSPeter Geis regulator-boot-on; 292*cecffd9eSDragan Simic regulator-min-microvolt = <500000>; 293dcc8c66bSPeter Geis regulator-max-microvolt = <1350000>; 294dcc8c66bSPeter Geis regulator-ramp-delay = <6001>; 295dcc8c66bSPeter Geis 296dcc8c66bSPeter Geis regulator-state-mem { 297dcc8c66bSPeter Geis regulator-off-in-suspend; 298dcc8c66bSPeter Geis regulator-suspend-microvolt = <900000>; 299dcc8c66bSPeter Geis }; 300dcc8c66bSPeter Geis }; 301dcc8c66bSPeter Geis 302dcc8c66bSPeter Geis vcc_ddr: DCDC_REG3 { 303dcc8c66bSPeter Geis regulator-name = "vcc_ddr"; 304dcc8c66bSPeter Geis regulator-always-on; 305dcc8c66bSPeter Geis regulator-boot-on; 306dcc8c66bSPeter Geis regulator-initial-mode = <0x2>; 307dcc8c66bSPeter Geis regulator-state-mem { 308dcc8c66bSPeter Geis regulator-on-in-suspend; 309dcc8c66bSPeter Geis }; 310dcc8c66bSPeter Geis }; 311dcc8c66bSPeter Geis 312dcc8c66bSPeter Geis vdd_npu: DCDC_REG4 { 313dcc8c66bSPeter Geis regulator-name = "vdd_npu"; 314dcc8c66bSPeter Geis regulator-min-microvolt = <900000>; 315dcc8c66bSPeter Geis regulator-max-microvolt = <1350000>; 316dcc8c66bSPeter Geis regulator-initial-mode = <0x2>; 317dcc8c66bSPeter Geis regulator-state-mem { 318dcc8c66bSPeter Geis regulator-off-in-suspend; 319dcc8c66bSPeter Geis }; 320dcc8c66bSPeter Geis }; 321dcc8c66bSPeter Geis 322dcc8c66bSPeter Geis vcc_1v8: DCDC_REG5 { 323dcc8c66bSPeter Geis regulator-name = "vcc_1v8"; 324dcc8c66bSPeter Geis regulator-always-on; 325dcc8c66bSPeter Geis regulator-boot-on; 326dcc8c66bSPeter Geis regulator-min-microvolt = <1800000>; 327dcc8c66bSPeter Geis regulator-max-microvolt = <1800000>; 328dcc8c66bSPeter Geis 329dcc8c66bSPeter Geis regulator-state-mem { 330dcc8c66bSPeter Geis regulator-on-in-suspend; 331dcc8c66bSPeter Geis regulator-suspend-microvolt = <1800000>; 332dcc8c66bSPeter Geis }; 333dcc8c66bSPeter Geis }; 334dcc8c66bSPeter Geis 335dcc8c66bSPeter Geis vdda0v9_image: LDO_REG1 { 336dcc8c66bSPeter Geis regulator-name = "vdda0v9_image"; 337dcc8c66bSPeter Geis regulator-always-on; 338dcc8c66bSPeter Geis regulator-boot-on; 339dcc8c66bSPeter Geis regulator-min-microvolt = <900000>; 340dcc8c66bSPeter Geis regulator-max-microvolt = <900000>; 341dcc8c66bSPeter Geis 342dcc8c66bSPeter Geis regulator-state-mem { 343dcc8c66bSPeter Geis regulator-on-in-suspend; 344dcc8c66bSPeter Geis regulator-suspend-microvolt = <900000>; 345dcc8c66bSPeter Geis }; 346dcc8c66bSPeter Geis }; 347dcc8c66bSPeter Geis 348dcc8c66bSPeter Geis vdda_0v9: LDO_REG2 { 349dcc8c66bSPeter Geis regulator-name = "vdda_0v9"; 350dcc8c66bSPeter Geis regulator-always-on; 351dcc8c66bSPeter Geis regulator-boot-on; 352dcc8c66bSPeter Geis regulator-min-microvolt = <900000>; 353dcc8c66bSPeter Geis regulator-max-microvolt = <900000>; 354dcc8c66bSPeter Geis 355dcc8c66bSPeter Geis regulator-state-mem { 356dcc8c66bSPeter Geis regulator-on-in-suspend; 357dcc8c66bSPeter Geis regulator-suspend-microvolt = <900000>; 358dcc8c66bSPeter Geis }; 359dcc8c66bSPeter Geis }; 360dcc8c66bSPeter Geis 361dcc8c66bSPeter Geis vdda0v9_pmu: LDO_REG3 { 362dcc8c66bSPeter Geis regulator-name = "vdda0v9_pmu"; 363dcc8c66bSPeter Geis regulator-always-on; 364dcc8c66bSPeter Geis regulator-boot-on; 365dcc8c66bSPeter Geis regulator-min-microvolt = <900000>; 366dcc8c66bSPeter Geis regulator-max-microvolt = <900000>; 367dcc8c66bSPeter Geis regulator-state-mem { 368dcc8c66bSPeter Geis regulator-on-in-suspend; 369dcc8c66bSPeter Geis regulator-suspend-microvolt = <900000>; 370dcc8c66bSPeter Geis }; 371dcc8c66bSPeter Geis }; 372dcc8c66bSPeter Geis 373dcc8c66bSPeter Geis vccio_acodec: LDO_REG4 { 374dcc8c66bSPeter Geis regulator-name = "vccio_acodec"; 375dcc8c66bSPeter Geis regulator-always-on; 376dcc8c66bSPeter Geis regulator-boot-on; 377dcc8c66bSPeter Geis regulator-min-microvolt = <3300000>; 378dcc8c66bSPeter Geis regulator-max-microvolt = <3300000>; 379dcc8c66bSPeter Geis 380dcc8c66bSPeter Geis regulator-state-mem { 381dcc8c66bSPeter Geis regulator-on-in-suspend; 382dcc8c66bSPeter Geis regulator-suspend-microvolt = <3300000>; 383dcc8c66bSPeter Geis 384dcc8c66bSPeter Geis }; 385dcc8c66bSPeter Geis }; 386dcc8c66bSPeter Geis 387dcc8c66bSPeter Geis vccio_sd: LDO_REG5 { 388dcc8c66bSPeter Geis regulator-name = "vccio_sd"; 389dcc8c66bSPeter Geis regulator-always-on; 390dcc8c66bSPeter Geis regulator-boot-on; 391dcc8c66bSPeter Geis regulator-min-microvolt = <1800000>; 392dcc8c66bSPeter Geis regulator-max-microvolt = <3300000>; 393dcc8c66bSPeter Geis 394dcc8c66bSPeter Geis regulator-state-mem { 395dcc8c66bSPeter Geis regulator-on-in-suspend; 396dcc8c66bSPeter Geis regulator-suspend-microvolt = <3300000>; 397dcc8c66bSPeter Geis }; 398dcc8c66bSPeter Geis }; 399dcc8c66bSPeter Geis 400dcc8c66bSPeter Geis vcc3v3_pmu: LDO_REG6 { 401dcc8c66bSPeter Geis regulator-name = "vcc3v3_pmu"; 402dcc8c66bSPeter Geis regulator-always-on; 403dcc8c66bSPeter Geis regulator-boot-on; 404dcc8c66bSPeter Geis regulator-min-microvolt = <3300000>; 405dcc8c66bSPeter Geis regulator-max-microvolt = <3300000>; 406dcc8c66bSPeter Geis 407dcc8c66bSPeter Geis regulator-state-mem { 408dcc8c66bSPeter Geis regulator-on-in-suspend; 409dcc8c66bSPeter Geis regulator-suspend-microvolt = <3300000>; 410dcc8c66bSPeter Geis }; 411dcc8c66bSPeter Geis }; 412dcc8c66bSPeter Geis 413dcc8c66bSPeter Geis vcca_1v8: LDO_REG7 { 414dcc8c66bSPeter Geis regulator-name = "vcca_1v8"; 415dcc8c66bSPeter Geis regulator-always-on; 416dcc8c66bSPeter Geis regulator-boot-on; 417dcc8c66bSPeter Geis regulator-min-microvolt = <1800000>; 418dcc8c66bSPeter Geis regulator-max-microvolt = <1800000>; 419dcc8c66bSPeter Geis 420dcc8c66bSPeter Geis regulator-state-mem { 421dcc8c66bSPeter Geis regulator-on-in-suspend; 422dcc8c66bSPeter Geis regulator-suspend-microvolt = <1800000>; 423dcc8c66bSPeter Geis }; 424dcc8c66bSPeter Geis }; 425dcc8c66bSPeter Geis 426dcc8c66bSPeter Geis vcca1v8_pmu: LDO_REG8 { 427dcc8c66bSPeter Geis regulator-name = "vcca1v8_pmu"; 428dcc8c66bSPeter Geis regulator-always-on; 429dcc8c66bSPeter Geis regulator-boot-on; 430dcc8c66bSPeter Geis regulator-min-microvolt = <1800000>; 431dcc8c66bSPeter Geis regulator-max-microvolt = <1800000>; 432dcc8c66bSPeter Geis 433dcc8c66bSPeter Geis regulator-state-mem { 434dcc8c66bSPeter Geis regulator-on-in-suspend; 435dcc8c66bSPeter Geis regulator-suspend-microvolt = <1800000>; 436dcc8c66bSPeter Geis }; 437dcc8c66bSPeter Geis }; 438dcc8c66bSPeter Geis 439dcc8c66bSPeter Geis vcca1v8_image: LDO_REG9 { 440dcc8c66bSPeter Geis regulator-name = "vcca1v8_image"; 441dcc8c66bSPeter Geis regulator-always-on; 442dcc8c66bSPeter Geis regulator-boot-on; 443dcc8c66bSPeter Geis regulator-min-microvolt = <1800000>; 444dcc8c66bSPeter Geis regulator-max-microvolt = <1800000>; 445dcc8c66bSPeter Geis 446dcc8c66bSPeter Geis regulator-state-mem { 447dcc8c66bSPeter Geis regulator-on-in-suspend; 448dcc8c66bSPeter Geis regulator-suspend-microvolt = <1800000>; 449dcc8c66bSPeter Geis }; 450dcc8c66bSPeter Geis }; 451dcc8c66bSPeter Geis 452dcc8c66bSPeter Geis vcc_3v3: SWITCH_REG1 { 453dcc8c66bSPeter Geis regulator-boot-on; 454dcc8c66bSPeter Geis regulator-name = "vcc_3v3"; 455dcc8c66bSPeter Geis }; 456dcc8c66bSPeter Geis 457dcc8c66bSPeter Geis vcc3v3_sd: SWITCH_REG2 { 458dcc8c66bSPeter Geis regulator-name = "vcc3v3_sd"; 459dcc8c66bSPeter Geis }; 460dcc8c66bSPeter Geis }; 461dcc8c66bSPeter Geis }; 462dcc8c66bSPeter Geis}; 463dcc8c66bSPeter Geis 464dcc8c66bSPeter Geis/* i2c2_m1 exposed on csi port, pulled up to vcc_3v3 */ 465dcc8c66bSPeter Geis&i2c2 { 466dcc8c66bSPeter Geis pinctrl-names = "default"; 467dcc8c66bSPeter Geis pinctrl-0 = <&i2c2m1_xfer>; 468dcc8c66bSPeter Geis status = "okay"; 469dcc8c66bSPeter Geis}; 470dcc8c66bSPeter Geis 471dcc8c66bSPeter Geis/* i2c3_m1 exposed on dsi port, pulled up to vcc_3v3 */ 472dcc8c66bSPeter Geis&i2c3 { 473dcc8c66bSPeter Geis pinctrl-names = "default"; 474dcc8c66bSPeter Geis pinctrl-0 = <&i2c3m1_xfer>; 475dcc8c66bSPeter Geis status = "okay"; 476dcc8c66bSPeter Geis}; 477dcc8c66bSPeter Geis 478dcc8c66bSPeter Geis/* 479dcc8c66bSPeter Geis * i2c4_m0 is exposed on PI40, pulled up to vcc_3v3 480dcc8c66bSPeter Geis * pin 27 - i2c4_sda_m0 481dcc8c66bSPeter Geis * pin 28 - i2c4_scl_m0 482dcc8c66bSPeter Geis */ 483dcc8c66bSPeter Geis&i2c4 { 484dcc8c66bSPeter Geis status = "okay"; 485dcc8c66bSPeter Geis}; 486dcc8c66bSPeter Geis 487dcc8c66bSPeter Geis/* 488dcc8c66bSPeter Geis * i2c5_m0 is exposed on PI40 489dcc8c66bSPeter Geis * pin 29 - i2c5_scl_m0 490dcc8c66bSPeter Geis * pin 31 - i2c5_sda_m0 491dcc8c66bSPeter Geis */ 492dcc8c66bSPeter Geis&i2c5 { 493dcc8c66bSPeter Geis status = "disabled"; 494dcc8c66bSPeter Geis}; 495dcc8c66bSPeter Geis 496d99efdabSNicolas Frattaroli&i2s0_8ch { 497d99efdabSNicolas Frattaroli status = "okay"; 498d99efdabSNicolas Frattaroli}; 499d99efdabSNicolas Frattaroli 500db7ad415SNicolas Frattaroli&i2s1_8ch { 501db7ad415SNicolas Frattaroli pinctrl-names = "default"; 502db7ad415SNicolas Frattaroli pinctrl-0 = <&i2s1m0_sclktx 503db7ad415SNicolas Frattaroli &i2s1m0_lrcktx 504db7ad415SNicolas Frattaroli &i2s1m0_sdi0 505db7ad415SNicolas Frattaroli &i2s1m0_sdo0>; 506db7ad415SNicolas Frattaroli rockchip,trcm-sync-tx-only; 507db7ad415SNicolas Frattaroli status = "okay"; 508db7ad415SNicolas Frattaroli}; 509db7ad415SNicolas Frattaroli 510dcc8c66bSPeter Geis&mdio1 { 511dcc8c66bSPeter Geis rgmii_phy1: ethernet-phy@1 { 512dcc8c66bSPeter Geis compatible = "ethernet-phy-ieee802.3-c22"; 513dcc8c66bSPeter Geis reg = <0x1>; 514dcc8c66bSPeter Geis }; 515dcc8c66bSPeter Geis}; 516dcc8c66bSPeter Geis 517cd4e5f30SNicolas Frattaroli&pcie2x1 { 518cd4e5f30SNicolas Frattaroli pinctrl-names = "default"; 519cd4e5f30SNicolas Frattaroli pinctrl-0 = <&pcie_reset_h>; 520cd4e5f30SNicolas Frattaroli reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>; 521cd4e5f30SNicolas Frattaroli vpcie3v3-supply = <&vcc3v3_pcie_p>; 522cd4e5f30SNicolas Frattaroli status = "okay"; 523cd4e5f30SNicolas Frattaroli}; 524cd4e5f30SNicolas Frattaroli 525dcc8c66bSPeter Geis&pinctrl { 526dcc8c66bSPeter Geis bt { 527dcc8c66bSPeter Geis bt_enable_h: bt-enable-h { 528dcc8c66bSPeter Geis rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; 529dcc8c66bSPeter Geis }; 530dcc8c66bSPeter Geis 531dcc8c66bSPeter Geis bt_host_wake_l: bt-host-wake-l { 532dcc8c66bSPeter Geis rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_down>; 533dcc8c66bSPeter Geis }; 534dcc8c66bSPeter Geis 535dcc8c66bSPeter Geis bt_wake_l: bt-wake-l { 536dcc8c66bSPeter Geis rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; 537dcc8c66bSPeter Geis }; 538dcc8c66bSPeter Geis }; 539dcc8c66bSPeter Geis 540dcc8c66bSPeter Geis leds { 541dcc8c66bSPeter Geis user_led_enable_h: user-led-enable-h { 542dcc8c66bSPeter Geis rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; 543dcc8c66bSPeter Geis }; 544dcc8c66bSPeter Geis }; 545dcc8c66bSPeter Geis 546cd4e5f30SNicolas Frattaroli pcie { 547cd4e5f30SNicolas Frattaroli pcie_enable_h: pcie-enable-h { 548cd4e5f30SNicolas Frattaroli rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; 549cd4e5f30SNicolas Frattaroli }; 550cd4e5f30SNicolas Frattaroli 551cd4e5f30SNicolas Frattaroli pcie_reset_h: pcie-reset-h { 552cd4e5f30SNicolas Frattaroli rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 553cd4e5f30SNicolas Frattaroli }; 554cd4e5f30SNicolas Frattaroli }; 555cd4e5f30SNicolas Frattaroli 556dcc8c66bSPeter Geis pmic { 557dcc8c66bSPeter Geis pmic_int: pmic_int { 558dcc8c66bSPeter Geis rockchip,pins = 559dcc8c66bSPeter Geis <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; 560dcc8c66bSPeter Geis }; 561dcc8c66bSPeter Geis }; 562dcc8c66bSPeter Geis 563dcc8c66bSPeter Geis sdio-pwrseq { 564dcc8c66bSPeter Geis wifi_enable_h: wifi-enable-h { 565dcc8c66bSPeter Geis rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>; 566dcc8c66bSPeter Geis }; 567dcc8c66bSPeter Geis }; 568dcc8c66bSPeter Geis 569dcc8c66bSPeter Geis usb { 570dcc8c66bSPeter Geis vcc5v0_usb30_host_en_h: vcc5v0-usb30-host-en_h { 571dcc8c66bSPeter Geis rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; 572dcc8c66bSPeter Geis }; 573dcc8c66bSPeter Geis 574dcc8c66bSPeter Geis vcc5v0_usb_otg_en_h: vcc5v0-usb-otg-en_h { 575dcc8c66bSPeter Geis rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; 576dcc8c66bSPeter Geis }; 577dcc8c66bSPeter Geis }; 578dcc8c66bSPeter Geis}; 579dcc8c66bSPeter Geis 580dcc8c66bSPeter Geis&pmu_io_domains { 581dcc8c66bSPeter Geis status = "okay"; 582dcc8c66bSPeter Geis pmuio1-supply = <&vcc3v3_pmu>; 583dcc8c66bSPeter Geis pmuio2-supply = <&vcca1v8_pmu>; 584dcc8c66bSPeter Geis vccio1-supply = <&vccio_acodec>; 585dcc8c66bSPeter Geis vccio2-supply = <&vcc_1v8>; 586dcc8c66bSPeter Geis vccio3-supply = <&vccio_sd>; 587dcc8c66bSPeter Geis vccio4-supply = <&vcca1v8_pmu>; 588dcc8c66bSPeter Geis vccio5-supply = <&vcc_3v3>; 589dcc8c66bSPeter Geis vccio6-supply = <&vcc_3v3>; 590dcc8c66bSPeter Geis vccio7-supply = <&vcc_3v3>; 591dcc8c66bSPeter Geis}; 592dcc8c66bSPeter Geis 593dcc8c66bSPeter Geis&saradc { 594dcc8c66bSPeter Geis vref-supply = <&vcca_1v8>; 595dcc8c66bSPeter Geis status = "okay"; 596dcc8c66bSPeter Geis}; 597dcc8c66bSPeter Geis 598dcc8c66bSPeter Geis&sdhci { 599dcc8c66bSPeter Geis bus-width = <8>; 600dcc8c66bSPeter Geis mmc-hs200-1_8v; 601dcc8c66bSPeter Geis non-removable; 602dcc8c66bSPeter Geis vmmc-supply = <&vcc_3v3>; 603dcc8c66bSPeter Geis vqmmc-supply = <&vcc_1v8>; 604dcc8c66bSPeter Geis status = "okay"; 605dcc8c66bSPeter Geis}; 606dcc8c66bSPeter Geis 607dcc8c66bSPeter Geis&sdmmc0 { 608dcc8c66bSPeter Geis bus-width = <4>; 609dcc8c66bSPeter Geis cap-sd-highspeed; 610dcc8c66bSPeter Geis cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; 611dcc8c66bSPeter Geis disable-wp; 612dcc8c66bSPeter Geis pinctrl-names = "default"; 613dcc8c66bSPeter Geis pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; 6141ea90b2dSNicolas Frattaroli sd-uhs-sdr50; 615dcc8c66bSPeter Geis vmmc-supply = <&vcc3v3_sd>; 616dcc8c66bSPeter Geis vqmmc-supply = <&vccio_sd>; 617dcc8c66bSPeter Geis status = "okay"; 618dcc8c66bSPeter Geis}; 619dcc8c66bSPeter Geis 620dcc8c66bSPeter Geis&sdmmc1 { 621dcc8c66bSPeter Geis bus-width = <4>; 622dcc8c66bSPeter Geis cap-sd-highspeed; 623dcc8c66bSPeter Geis cap-sdio-irq; 624dcc8c66bSPeter Geis keep-power-in-suspend; 625dcc8c66bSPeter Geis mmc-pwrseq = <&sdio_pwrseq>; 626dcc8c66bSPeter Geis non-removable; 627dcc8c66bSPeter Geis pinctrl-names = "default"; 628dcc8c66bSPeter Geis pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>; 629dcc8c66bSPeter Geis vmmc-supply = <&vcc3v3_sys>; 630dcc8c66bSPeter Geis vqmmc-supply = <&vcca1v8_pmu>; 631dcc8c66bSPeter Geis status = "okay"; 632dcc8c66bSPeter Geis}; 633dcc8c66bSPeter Geis 634dcc8c66bSPeter Geis&sfc { 635dcc8c66bSPeter Geis pinctrl-0 = <&fspi_pins>; 636dcc8c66bSPeter Geis pinctrl-names = "default"; 637dcc8c66bSPeter Geis #address-cells = <1>; 638dcc8c66bSPeter Geis #size-cells = <0>; 639dcc8c66bSPeter Geis status = "okay"; 640dcc8c66bSPeter Geis 641dcc8c66bSPeter Geis flash@0 { 642dcc8c66bSPeter Geis compatible = "jedec,spi-nor"; 643dcc8c66bSPeter Geis reg = <0>; 644dcc8c66bSPeter Geis spi-max-frequency = <24000000>; 645dcc8c66bSPeter Geis spi-rx-bus-width = <4>; 646dcc8c66bSPeter Geis spi-tx-bus-width = <1>; 647dcc8c66bSPeter Geis }; 648dcc8c66bSPeter Geis}; 649dcc8c66bSPeter Geis 650dcc8c66bSPeter Geis&tsadc { 651dcc8c66bSPeter Geis status = "okay"; 652dcc8c66bSPeter Geis}; 653dcc8c66bSPeter Geis 654dcc8c66bSPeter Geis&uart1 { 655dcc8c66bSPeter Geis pinctrl-names = "default"; 656dcc8c66bSPeter Geis pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>; 657dcc8c66bSPeter Geis status = "okay"; 658dcc8c66bSPeter Geis uart-has-rtscts; 659dcc8c66bSPeter Geis 660dcc8c66bSPeter Geis bluetooth { 661dcc8c66bSPeter Geis compatible = "brcm,bcm4345c5"; 662dcc8c66bSPeter Geis clocks = <&rk809 1>; 663dcc8c66bSPeter Geis clock-names = "lpo"; 664dcc8c66bSPeter Geis device-wakeup-gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; 665dcc8c66bSPeter Geis host-wakeup-gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>; 666dcc8c66bSPeter Geis shutdown-gpios = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>; 667dcc8c66bSPeter Geis pinctrl-names = "default"; 668dcc8c66bSPeter Geis pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>; 669dcc8c66bSPeter Geis vbat-supply = <&vcc3v3_sys>; 670dcc8c66bSPeter Geis vddio-supply = <&vcca1v8_pmu>; 671dcc8c66bSPeter Geis }; 672dcc8c66bSPeter Geis}; 673dcc8c66bSPeter Geis 674dcc8c66bSPeter Geis/* 675dcc8c66bSPeter Geis * uart2_m0 is exposed on PI40 676dcc8c66bSPeter Geis * pin 8 - uart2_tx_m0 677dcc8c66bSPeter Geis * pin 10 - uart2_rx_m0 678dcc8c66bSPeter Geis */ 679dcc8c66bSPeter Geis&uart2 { 680dcc8c66bSPeter Geis status = "okay"; 681dcc8c66bSPeter Geis}; 682dcc8c66bSPeter Geis 683dcc8c66bSPeter Geis&usb2phy0_host { 684dcc8c66bSPeter Geis phy-supply = <&vcc5v0_usb30_host>; 685dcc8c66bSPeter Geis status = "okay"; 686dcc8c66bSPeter Geis}; 687dcc8c66bSPeter Geis 688dcc8c66bSPeter Geis&usb2phy0_otg { 689dcc8c66bSPeter Geis phy-supply = <&vcc5v0_usb_otg>; 690dcc8c66bSPeter Geis status = "okay"; 691dcc8c66bSPeter Geis}; 692dcc8c66bSPeter Geis 693dcc8c66bSPeter Geis&usb2phy1_otg { 694dcc8c66bSPeter Geis phy-supply = <&vcc5v0_usb30_host>; 695dcc8c66bSPeter Geis status = "okay"; 696dcc8c66bSPeter Geis}; 697dcc8c66bSPeter Geis 698dcc8c66bSPeter Geis&usb2phy0 { 699dcc8c66bSPeter Geis status = "okay"; 700dcc8c66bSPeter Geis}; 701dcc8c66bSPeter Geis 702dcc8c66bSPeter Geis&usb2phy1 { 703dcc8c66bSPeter Geis status = "okay"; 704dcc8c66bSPeter Geis}; 705dcc8c66bSPeter Geis 706dcc8c66bSPeter Geis&usb_host0_xhci { 707dcc8c66bSPeter Geis status = "okay"; 708dcc8c66bSPeter Geis}; 709dcc8c66bSPeter Geis 710dcc8c66bSPeter Geis&usb_host1_xhci { 711dcc8c66bSPeter Geis status = "okay"; 712dcc8c66bSPeter Geis}; 713dcc8c66bSPeter Geis 714dcc8c66bSPeter Geis&usb_host0_ehci { 715dcc8c66bSPeter Geis status = "okay"; 716dcc8c66bSPeter Geis}; 717dcc8c66bSPeter Geis 718dcc8c66bSPeter Geis&usb_host0_ohci { 719dcc8c66bSPeter Geis status = "okay"; 720dcc8c66bSPeter Geis}; 721d99efdabSNicolas Frattaroli 722d99efdabSNicolas Frattaroli&vop { 723d99efdabSNicolas Frattaroli assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; 724d99efdabSNicolas Frattaroli assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; 725d99efdabSNicolas Frattaroli status = "okay"; 726d99efdabSNicolas Frattaroli}; 727d99efdabSNicolas Frattaroli 728d99efdabSNicolas Frattaroli&vop_mmu { 729d99efdabSNicolas Frattaroli status = "okay"; 730d99efdabSNicolas Frattaroli}; 731d99efdabSNicolas Frattaroli 732d99efdabSNicolas Frattaroli&vp0 { 733d99efdabSNicolas Frattaroli vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 734d99efdabSNicolas Frattaroli reg = <ROCKCHIP_VOP2_EP_HDMI0>; 735d99efdabSNicolas Frattaroli remote-endpoint = <&hdmi_in_vp0>; 736d99efdabSNicolas Frattaroli }; 737d99efdabSNicolas Frattaroli}; 738