1*56198acdSHeiko Stuebner// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*56198acdSHeiko Stuebner/* 3*56198acdSHeiko Stuebner * Copyright (c) 2025 Cherry Embedded Solutions GmbH 4*56198acdSHeiko Stuebner */ 5*56198acdSHeiko Stuebner 6*56198acdSHeiko Stuebner/dts-v1/; 7*56198acdSHeiko Stuebner#include <dt-bindings/gpio/gpio.h> 8*56198acdSHeiko Stuebner#include <dt-bindings/input/input.h> 9*56198acdSHeiko Stuebner#include <dt-bindings/pinctrl/rockchip.h> 10*56198acdSHeiko Stuebner#include "px30.dtsi" 11*56198acdSHeiko Stuebner 12*56198acdSHeiko Stuebner/ { 13*56198acdSHeiko Stuebner aliases { 14*56198acdSHeiko Stuebner mmc0 = &emmc; 15*56198acdSHeiko Stuebner }; 16*56198acdSHeiko Stuebner 17*56198acdSHeiko Stuebner chosen { 18*56198acdSHeiko Stuebner stdout-path = "serial5:115200n8"; 19*56198acdSHeiko Stuebner }; 20*56198acdSHeiko Stuebner 21*56198acdSHeiko Stuebner backlight: backlight { 22*56198acdSHeiko Stuebner compatible = "pwm-backlight"; 23*56198acdSHeiko Stuebner power-supply = <&vcc5v0_sys>; 24*56198acdSHeiko Stuebner pwms = <&pwm0 0 25000 0>; 25*56198acdSHeiko Stuebner }; 26*56198acdSHeiko Stuebner 27*56198acdSHeiko Stuebner beeper { 28*56198acdSHeiko Stuebner compatible = "pwm-beeper"; 29*56198acdSHeiko Stuebner pwms = <&pwm1 0 1000 0>; 30*56198acdSHeiko Stuebner }; 31*56198acdSHeiko Stuebner 32*56198acdSHeiko Stuebner emmc_pwrseq: emmc-pwrseq { 33*56198acdSHeiko Stuebner compatible = "mmc-pwrseq-emmc"; 34*56198acdSHeiko Stuebner pinctrl-0 = <&emmc_reset>; 35*56198acdSHeiko Stuebner pinctrl-names = "default"; 36*56198acdSHeiko Stuebner reset-gpios = <&gpio1 RK_PB3 GPIO_ACTIVE_HIGH>; 37*56198acdSHeiko Stuebner }; 38*56198acdSHeiko Stuebner 39*56198acdSHeiko Stuebner gpio-leds { 40*56198acdSHeiko Stuebner compatible = "gpio-leds"; 41*56198acdSHeiko Stuebner pinctrl-names = "default"; 42*56198acdSHeiko Stuebner pinctrl-0 = <&debug_led_pin>, <&heartbeat_led_pin>; 43*56198acdSHeiko Stuebner 44*56198acdSHeiko Stuebner /* 45*56198acdSHeiko Stuebner * LED2 on the PCB, left of the USB-C connector. 46*56198acdSHeiko Stuebner * Typically NOT populated. 47*56198acdSHeiko Stuebner */ 48*56198acdSHeiko Stuebner debug: led-0 { 49*56198acdSHeiko Stuebner label = "debug"; 50*56198acdSHeiko Stuebner gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_HIGH>; 51*56198acdSHeiko Stuebner linux,default-trigger = "none"; 52*56198acdSHeiko Stuebner }; 53*56198acdSHeiko Stuebner 54*56198acdSHeiko Stuebner /* 55*56198acdSHeiko Stuebner * LED14 on the PCB, left of the PX30 SoC. 56*56198acdSHeiko Stuebner * Typically NOT populated. 57*56198acdSHeiko Stuebner */ 58*56198acdSHeiko Stuebner heartbeat: led-1 { 59*56198acdSHeiko Stuebner label = "heartbeat"; 60*56198acdSHeiko Stuebner gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>; 61*56198acdSHeiko Stuebner linux,default-trigger = "heartbeat"; 62*56198acdSHeiko Stuebner }; 63*56198acdSHeiko Stuebner }; 64*56198acdSHeiko Stuebner 65*56198acdSHeiko Stuebner vcc5v0_sys: regulator-vccsys { 66*56198acdSHeiko Stuebner compatible = "regulator-fixed"; 67*56198acdSHeiko Stuebner regulator-name = "vcc5v0_sys"; 68*56198acdSHeiko Stuebner regulator-always-on; 69*56198acdSHeiko Stuebner regulator-boot-on; 70*56198acdSHeiko Stuebner regulator-min-microvolt = <5000000>; 71*56198acdSHeiko Stuebner regulator-max-microvolt = <5000000>; 72*56198acdSHeiko Stuebner }; 73*56198acdSHeiko Stuebner 74*56198acdSHeiko Stuebner vcc_cam_avdd: regulator-vcc-cam-avdd { 75*56198acdSHeiko Stuebner compatible = "regulator-fixed"; 76*56198acdSHeiko Stuebner regulator-name = "vcc_cam_avdd"; 77*56198acdSHeiko Stuebner gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>; 78*56198acdSHeiko Stuebner pinctrl-names = "default"; 79*56198acdSHeiko Stuebner pinctrl-0 = <&cam_avdd_en>; 80*56198acdSHeiko Stuebner regulator-min-microvolt = <2800000>; 81*56198acdSHeiko Stuebner regulator-max-microvolt = <2800000>; 82*56198acdSHeiko Stuebner vin-supply = <&vcc_2v8>; 83*56198acdSHeiko Stuebner }; 84*56198acdSHeiko Stuebner 85*56198acdSHeiko Stuebner vcc_cam_dovdd: regulator-vcc-cam-dovdd { 86*56198acdSHeiko Stuebner compatible = "regulator-fixed"; 87*56198acdSHeiko Stuebner regulator-name = "vcc_cam_dovdd"; 88*56198acdSHeiko Stuebner gpio = <&gpio3 RK_PC1 GPIO_ACTIVE_LOW>; 89*56198acdSHeiko Stuebner pinctrl-names = "default"; 90*56198acdSHeiko Stuebner pinctrl-0 = <&cam_dovdd_en>; 91*56198acdSHeiko Stuebner regulator-min-microvolt = <1800000>; 92*56198acdSHeiko Stuebner regulator-max-microvolt = <1800000>; 93*56198acdSHeiko Stuebner vin-supply = <&vcc_1v8>; 94*56198acdSHeiko Stuebner }; 95*56198acdSHeiko Stuebner 96*56198acdSHeiko Stuebner vcc_cam_dvdd: regulator-vcc-cam-dvdd { 97*56198acdSHeiko Stuebner compatible = "regulator-fixed"; 98*56198acdSHeiko Stuebner regulator-name = "vcc_cam_dvdd"; 99*56198acdSHeiko Stuebner gpio = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; 100*56198acdSHeiko Stuebner enable-active-high; 101*56198acdSHeiko Stuebner pinctrl-names = "default"; 102*56198acdSHeiko Stuebner pinctrl-0 = <&cam_dvdd_en>; 103*56198acdSHeiko Stuebner regulator-min-microvolt = <1200000>; 104*56198acdSHeiko Stuebner regulator-max-microvolt = <1200000>; 105*56198acdSHeiko Stuebner vin-supply = <&vcc_3v3>; 106*56198acdSHeiko Stuebner }; 107*56198acdSHeiko Stuebner 108*56198acdSHeiko Stuebner vcc_lens_afvdd: regulator-vcc-lens-afvdd { 109*56198acdSHeiko Stuebner compatible = "regulator-fixed"; 110*56198acdSHeiko Stuebner regulator-name = "vcc_lens_afvdd"; 111*56198acdSHeiko Stuebner gpio = <&gpio3 RK_PB2 GPIO_ACTIVE_LOW>; 112*56198acdSHeiko Stuebner pinctrl-names = "default"; 113*56198acdSHeiko Stuebner pinctrl-0 = <&cam_afvdd_en>; 114*56198acdSHeiko Stuebner regulator-min-microvolt = <2800000>; 115*56198acdSHeiko Stuebner regulator-max-microvolt = <2800000>; 116*56198acdSHeiko Stuebner vin-supply = <&vcc_2v8>; 117*56198acdSHeiko Stuebner }; 118*56198acdSHeiko Stuebner}; 119*56198acdSHeiko Stuebner 120*56198acdSHeiko Stuebner&cpu0 { 121*56198acdSHeiko Stuebner cpu-supply = <&vdd_arm>; 122*56198acdSHeiko Stuebner}; 123*56198acdSHeiko Stuebner 124*56198acdSHeiko Stuebner&cpu1 { 125*56198acdSHeiko Stuebner cpu-supply = <&vdd_arm>; 126*56198acdSHeiko Stuebner}; 127*56198acdSHeiko Stuebner 128*56198acdSHeiko Stuebner&cpu2 { 129*56198acdSHeiko Stuebner cpu-supply = <&vdd_arm>; 130*56198acdSHeiko Stuebner}; 131*56198acdSHeiko Stuebner 132*56198acdSHeiko Stuebner&cpu3 { 133*56198acdSHeiko Stuebner cpu-supply = <&vdd_arm>; 134*56198acdSHeiko Stuebner}; 135*56198acdSHeiko Stuebner 136*56198acdSHeiko Stuebner&csi_dphy { 137*56198acdSHeiko Stuebner status = "okay"; 138*56198acdSHeiko Stuebner}; 139*56198acdSHeiko Stuebner 140*56198acdSHeiko Stuebner&display_subsystem { 141*56198acdSHeiko Stuebner status = "okay"; 142*56198acdSHeiko Stuebner}; 143*56198acdSHeiko Stuebner 144*56198acdSHeiko Stuebner&dsi_dphy { 145*56198acdSHeiko Stuebner status = "okay"; 146*56198acdSHeiko Stuebner}; 147*56198acdSHeiko Stuebner 148*56198acdSHeiko Stuebner&emmc { 149*56198acdSHeiko Stuebner bus-width = <8>; 150*56198acdSHeiko Stuebner cap-mmc-highspeed; 151*56198acdSHeiko Stuebner /* 152*56198acdSHeiko Stuebner * For hs200 support, U-Boot would have to set the RK809 DCDC4 153*56198acdSHeiko Stuebner * rail to 1.8V from the default of 3.0V. It doesn't do that on 154*56198acdSHeiko Stuebner * devices out in the field, so disable hs200. 155*56198acdSHeiko Stuebner * mmc-hs200-1_8v; 156*56198acdSHeiko Stuebner */ 157*56198acdSHeiko Stuebner mmc-pwrseq = <&emmc_pwrseq>; 158*56198acdSHeiko Stuebner non-removable; 159*56198acdSHeiko Stuebner vmmc-supply = <&vcc_3v3>; 160*56198acdSHeiko Stuebner vqmmc-supply = <&vcc_emmc>; 161*56198acdSHeiko Stuebner status = "okay"; 162*56198acdSHeiko Stuebner}; 163*56198acdSHeiko Stuebner 164*56198acdSHeiko Stuebner&gpu { 165*56198acdSHeiko Stuebner mali-supply = <&vdd_log>; 166*56198acdSHeiko Stuebner status = "okay"; 167*56198acdSHeiko Stuebner}; 168*56198acdSHeiko Stuebner 169*56198acdSHeiko Stuebner/* I2C0 = PMIC, Touchscreen */ 170*56198acdSHeiko Stuebner&i2c0 { 171*56198acdSHeiko Stuebner status = "okay"; 172*56198acdSHeiko Stuebner 173*56198acdSHeiko Stuebner touchscreen@14 { 174*56198acdSHeiko Stuebner compatible = "goodix,gt911"; 175*56198acdSHeiko Stuebner reg = <0x14>; 176*56198acdSHeiko Stuebner AVDD28-supply = <&vcc_2v8>; 177*56198acdSHeiko Stuebner interrupt-parent = <&gpio0>; 178*56198acdSHeiko Stuebner interrupts = <RK_PA1 IRQ_TYPE_LEVEL_LOW>; 179*56198acdSHeiko Stuebner irq-gpios = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>; 180*56198acdSHeiko Stuebner pinctrl-names = "default"; 181*56198acdSHeiko Stuebner pinctrl-0 = <&tch_int &tch_rst>; 182*56198acdSHeiko Stuebner reset-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; 183*56198acdSHeiko Stuebner VDDIO-supply = <&vcc_3v3>; 184*56198acdSHeiko Stuebner }; 185*56198acdSHeiko Stuebner 186*56198acdSHeiko Stuebner rk809: pmic@20 { 187*56198acdSHeiko Stuebner compatible = "rockchip,rk809"; 188*56198acdSHeiko Stuebner reg = <0x20>; 189*56198acdSHeiko Stuebner #clock-cells = <0>; 190*56198acdSHeiko Stuebner clock-output-names = "xin32k"; 191*56198acdSHeiko Stuebner interrupt-parent = <&gpio0>; 192*56198acdSHeiko Stuebner interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>; 193*56198acdSHeiko Stuebner pinctrl-names = "default"; 194*56198acdSHeiko Stuebner pinctrl-0 = <&pmic_int>; 195*56198acdSHeiko Stuebner system-power-controller; 196*56198acdSHeiko Stuebner wakeup-source; 197*56198acdSHeiko Stuebner 198*56198acdSHeiko Stuebner vcc1-supply = <&vcc5v0_sys>; 199*56198acdSHeiko Stuebner vcc2-supply = <&vcc5v0_sys>; 200*56198acdSHeiko Stuebner vcc3-supply = <&vcc5v0_sys>; 201*56198acdSHeiko Stuebner vcc4-supply = <&vcc5v0_sys>; 202*56198acdSHeiko Stuebner vcc5-supply = <&vcc_3v3>; 203*56198acdSHeiko Stuebner vcc6-supply = <&vcc_3v3>; 204*56198acdSHeiko Stuebner vcc7-supply = <&vcc_3v3>; 205*56198acdSHeiko Stuebner vcc9-supply = <&vcc5v0_sys>; 206*56198acdSHeiko Stuebner 207*56198acdSHeiko Stuebner regulators { 208*56198acdSHeiko Stuebner vdd_log: DCDC_REG1 { 209*56198acdSHeiko Stuebner regulator-name = "vdd_log"; 210*56198acdSHeiko Stuebner regulator-always-on; 211*56198acdSHeiko Stuebner regulator-boot-on; 212*56198acdSHeiko Stuebner regulator-min-microvolt = <950000>; 213*56198acdSHeiko Stuebner regulator-max-microvolt = <1350000>; 214*56198acdSHeiko Stuebner regulator-ramp-delay = <6001>; 215*56198acdSHeiko Stuebner 216*56198acdSHeiko Stuebner regulator-state-mem { 217*56198acdSHeiko Stuebner regulator-on-in-suspend; 218*56198acdSHeiko Stuebner regulator-suspend-microvolt = <950000>; 219*56198acdSHeiko Stuebner }; 220*56198acdSHeiko Stuebner }; 221*56198acdSHeiko Stuebner 222*56198acdSHeiko Stuebner vdd_arm: DCDC_REG2 { 223*56198acdSHeiko Stuebner regulator-name = "vdd_arm"; 224*56198acdSHeiko Stuebner regulator-always-on; 225*56198acdSHeiko Stuebner regulator-boot-on; 226*56198acdSHeiko Stuebner regulator-min-microvolt = <950000>; 227*56198acdSHeiko Stuebner regulator-max-microvolt = <1350000>; 228*56198acdSHeiko Stuebner regulator-ramp-delay = <6001>; 229*56198acdSHeiko Stuebner 230*56198acdSHeiko Stuebner regulator-state-mem { 231*56198acdSHeiko Stuebner regulator-off-in-suspend; 232*56198acdSHeiko Stuebner regulator-suspend-microvolt = <950000>; 233*56198acdSHeiko Stuebner }; 234*56198acdSHeiko Stuebner }; 235*56198acdSHeiko Stuebner 236*56198acdSHeiko Stuebner vcc_ddr: DCDC_REG3 { 237*56198acdSHeiko Stuebner regulator-name = "vcc_ddr"; 238*56198acdSHeiko Stuebner regulator-always-on; 239*56198acdSHeiko Stuebner regulator-boot-on; 240*56198acdSHeiko Stuebner 241*56198acdSHeiko Stuebner regulator-state-mem { 242*56198acdSHeiko Stuebner regulator-on-in-suspend; 243*56198acdSHeiko Stuebner }; 244*56198acdSHeiko Stuebner }; 245*56198acdSHeiko Stuebner 246*56198acdSHeiko Stuebner vcc_3v0_1v8: vcc_emmc: DCDC_REG4 { 247*56198acdSHeiko Stuebner regulator-name = "vcc_3v0_1v8"; 248*56198acdSHeiko Stuebner regulator-always-on; 249*56198acdSHeiko Stuebner regulator-boot-on; 250*56198acdSHeiko Stuebner regulator-min-microvolt = <3000000>; 251*56198acdSHeiko Stuebner regulator-max-microvolt = <3000000>; 252*56198acdSHeiko Stuebner 253*56198acdSHeiko Stuebner regulator-state-mem { 254*56198acdSHeiko Stuebner regulator-on-in-suspend; 255*56198acdSHeiko Stuebner regulator-suspend-microvolt = <3000000>; 256*56198acdSHeiko Stuebner }; 257*56198acdSHeiko Stuebner }; 258*56198acdSHeiko Stuebner 259*56198acdSHeiko Stuebner vcc_3v3: DCDC_REG5 { 260*56198acdSHeiko Stuebner regulator-name = "vcc_3v3"; 261*56198acdSHeiko Stuebner regulator-always-on; 262*56198acdSHeiko Stuebner regulator-boot-on; 263*56198acdSHeiko Stuebner regulator-min-microvolt = <3300000>; 264*56198acdSHeiko Stuebner regulator-max-microvolt = <3300000>; 265*56198acdSHeiko Stuebner 266*56198acdSHeiko Stuebner regulator-state-mem { 267*56198acdSHeiko Stuebner regulator-on-in-suspend; 268*56198acdSHeiko Stuebner regulator-suspend-microvolt = <3300000>; 269*56198acdSHeiko Stuebner }; 270*56198acdSHeiko Stuebner }; 271*56198acdSHeiko Stuebner 272*56198acdSHeiko Stuebner vcc_1v8: LDO_REG2 { 273*56198acdSHeiko Stuebner regulator-name = "vcc_1v8"; 274*56198acdSHeiko Stuebner regulator-always-on; 275*56198acdSHeiko Stuebner regulator-boot-on; 276*56198acdSHeiko Stuebner regulator-min-microvolt = <1800000>; 277*56198acdSHeiko Stuebner regulator-max-microvolt = <1800000>; 278*56198acdSHeiko Stuebner 279*56198acdSHeiko Stuebner regulator-state-mem { 280*56198acdSHeiko Stuebner regulator-on-in-suspend; 281*56198acdSHeiko Stuebner regulator-suspend-microvolt = <1800000>; 282*56198acdSHeiko Stuebner }; 283*56198acdSHeiko Stuebner }; 284*56198acdSHeiko Stuebner 285*56198acdSHeiko Stuebner vcc_1v0: LDO_REG3 { 286*56198acdSHeiko Stuebner regulator-name = "vcc_1v0"; 287*56198acdSHeiko Stuebner regulator-always-on; 288*56198acdSHeiko Stuebner regulator-boot-on; 289*56198acdSHeiko Stuebner regulator-min-microvolt = <1000000>; 290*56198acdSHeiko Stuebner regulator-max-microvolt = <1000000>; 291*56198acdSHeiko Stuebner 292*56198acdSHeiko Stuebner regulator-state-mem { 293*56198acdSHeiko Stuebner regulator-on-in-suspend; 294*56198acdSHeiko Stuebner regulator-suspend-microvolt = <1000000>; 295*56198acdSHeiko Stuebner }; 296*56198acdSHeiko Stuebner }; 297*56198acdSHeiko Stuebner 298*56198acdSHeiko Stuebner vcc_2v8: LDO_REG4 { 299*56198acdSHeiko Stuebner regulator-name = "vcc_2v8"; 300*56198acdSHeiko Stuebner regulator-always-on; 301*56198acdSHeiko Stuebner regulator-boot-on; 302*56198acdSHeiko Stuebner regulator-min-microvolt = <2800000>; 303*56198acdSHeiko Stuebner regulator-max-microvolt = <2800000>; 304*56198acdSHeiko Stuebner 305*56198acdSHeiko Stuebner regulator-state-mem { 306*56198acdSHeiko Stuebner regulator-off-in-suspend; 307*56198acdSHeiko Stuebner regulator-suspend-microvolt = <2800000>; 308*56198acdSHeiko Stuebner }; 309*56198acdSHeiko Stuebner }; 310*56198acdSHeiko Stuebner 311*56198acdSHeiko Stuebner vccio_sd: LDO_REG5 { 312*56198acdSHeiko Stuebner regulator-name = "vccio_sd"; 313*56198acdSHeiko Stuebner regulator-always-on; 314*56198acdSHeiko Stuebner regulator-boot-on; 315*56198acdSHeiko Stuebner regulator-min-microvolt = <3000000>; 316*56198acdSHeiko Stuebner regulator-max-microvolt = <3000000>; 317*56198acdSHeiko Stuebner 318*56198acdSHeiko Stuebner regulator-state-mem { 319*56198acdSHeiko Stuebner regulator-on-in-suspend; 320*56198acdSHeiko Stuebner regulator-suspend-microvolt = <3000000>; 321*56198acdSHeiko Stuebner }; 322*56198acdSHeiko Stuebner }; 323*56198acdSHeiko Stuebner 324*56198acdSHeiko Stuebner vcc_sdio: LDO_REG6 { 325*56198acdSHeiko Stuebner regulator-name = "vcc_sdio"; 326*56198acdSHeiko Stuebner regulator-always-on; 327*56198acdSHeiko Stuebner regulator-boot-on; 328*56198acdSHeiko Stuebner regulator-min-microvolt = <1800000>; 329*56198acdSHeiko Stuebner regulator-max-microvolt = <1800000>; 330*56198acdSHeiko Stuebner 331*56198acdSHeiko Stuebner regulator-state-mem { 332*56198acdSHeiko Stuebner regulator-on-in-suspend; 333*56198acdSHeiko Stuebner regulator-suspend-microvolt = <1800000>; 334*56198acdSHeiko Stuebner }; 335*56198acdSHeiko Stuebner }; 336*56198acdSHeiko Stuebner 337*56198acdSHeiko Stuebner vcc_lcd: LDO_REG7 { 338*56198acdSHeiko Stuebner regulator-name = "vcc_lcd"; 339*56198acdSHeiko Stuebner regulator-always-on; 340*56198acdSHeiko Stuebner regulator-boot-on; 341*56198acdSHeiko Stuebner regulator-min-microvolt = <1000000>; 342*56198acdSHeiko Stuebner regulator-max-microvolt = <1000000>; 343*56198acdSHeiko Stuebner 344*56198acdSHeiko Stuebner regulator-state-mem { 345*56198acdSHeiko Stuebner regulator-off-in-suspend; 346*56198acdSHeiko Stuebner regulator-suspend-microvolt = <1000000>; 347*56198acdSHeiko Stuebner }; 348*56198acdSHeiko Stuebner }; 349*56198acdSHeiko Stuebner 350*56198acdSHeiko Stuebner vcc_1v8_lcd: LDO_REG8 { 351*56198acdSHeiko Stuebner regulator-name = "vcc_1v8_lcd"; 352*56198acdSHeiko Stuebner regulator-always-on; 353*56198acdSHeiko Stuebner regulator-boot-on; 354*56198acdSHeiko Stuebner regulator-min-microvolt = <1800000>; 355*56198acdSHeiko Stuebner regulator-max-microvolt = <1800000>; 356*56198acdSHeiko Stuebner 357*56198acdSHeiko Stuebner regulator-state-mem { 358*56198acdSHeiko Stuebner regulator-on-in-suspend; 359*56198acdSHeiko Stuebner regulator-suspend-microvolt = <1800000>; 360*56198acdSHeiko Stuebner }; 361*56198acdSHeiko Stuebner }; 362*56198acdSHeiko Stuebner 363*56198acdSHeiko Stuebner vcca_1v8: LDO_REG9 { 364*56198acdSHeiko Stuebner regulator-name = "vcca_1v8"; 365*56198acdSHeiko Stuebner regulator-always-on; 366*56198acdSHeiko Stuebner regulator-boot-on; 367*56198acdSHeiko Stuebner regulator-min-microvolt = <1800000>; 368*56198acdSHeiko Stuebner regulator-max-microvolt = <1800000>; 369*56198acdSHeiko Stuebner 370*56198acdSHeiko Stuebner regulator-state-mem { 371*56198acdSHeiko Stuebner regulator-off-in-suspend; 372*56198acdSHeiko Stuebner regulator-suspend-microvolt = <1800000>; 373*56198acdSHeiko Stuebner }; 374*56198acdSHeiko Stuebner }; 375*56198acdSHeiko Stuebner }; 376*56198acdSHeiko Stuebner }; 377*56198acdSHeiko Stuebner}; 378*56198acdSHeiko Stuebner 379*56198acdSHeiko Stuebner&i2c1 { 380*56198acdSHeiko Stuebner clock-frequency = <100000>; 381*56198acdSHeiko Stuebner status = "okay"; 382*56198acdSHeiko Stuebner}; 383*56198acdSHeiko Stuebner 384*56198acdSHeiko Stuebner/* I2C2 = Accelerometer + Camera */ 385*56198acdSHeiko Stuebner&i2c2 { 386*56198acdSHeiko Stuebner /* MEMSIC MXC4005 accelerometer is rated for I2C Fast Mode (<=400KHz) */ 387*56198acdSHeiko Stuebner /* OmniVision OV5675 camera is rated for I2C Fast Mode (<=400KHz) */ 388*56198acdSHeiko Stuebner clock-frequency = <400000>; 389*56198acdSHeiko Stuebner status = "okay"; 390*56198acdSHeiko Stuebner 391*56198acdSHeiko Stuebner focus: focus@c { 392*56198acdSHeiko Stuebner compatible = "dongwoon,dw9714"; 393*56198acdSHeiko Stuebner reg = <0xc>; 394*56198acdSHeiko Stuebner vcc-supply = <&vcc_lens_afvdd>; 395*56198acdSHeiko Stuebner }; 396*56198acdSHeiko Stuebner 397*56198acdSHeiko Stuebner accel@15 { 398*56198acdSHeiko Stuebner compatible = "memsic,mxc4005"; 399*56198acdSHeiko Stuebner reg = <0x15>; 400*56198acdSHeiko Stuebner interrupt-parent = <&gpio2>; 401*56198acdSHeiko Stuebner interrupts = <RK_PB4 IRQ_TYPE_LEVEL_LOW>; 402*56198acdSHeiko Stuebner pinctrl-names = "default"; 403*56198acdSHeiko Stuebner pinctrl-0 = <&accel_int>; 404*56198acdSHeiko Stuebner }; 405*56198acdSHeiko Stuebner 406*56198acdSHeiko Stuebner camera@36 { 407*56198acdSHeiko Stuebner compatible = "ovti,ov5675"; 408*56198acdSHeiko Stuebner reg = <0x36>; 409*56198acdSHeiko Stuebner clocks = <&cru SCLK_CIF_OUT>; 410*56198acdSHeiko Stuebner assigned-clocks = <&cru SCLK_CIF_OUT>; 411*56198acdSHeiko Stuebner assigned-clock-rates = <19200000>; 412*56198acdSHeiko Stuebner avdd-supply = <&vcc_cam_avdd>; 413*56198acdSHeiko Stuebner dvdd-supply = <&vcc_cam_dvdd>; 414*56198acdSHeiko Stuebner dovdd-supply = <&vcc_cam_dovdd>; 415*56198acdSHeiko Stuebner lens-focus = <&focus>; 416*56198acdSHeiko Stuebner orientation = <0>; 417*56198acdSHeiko Stuebner pinctrl-names = "default"; 418*56198acdSHeiko Stuebner pinctrl-0 = <&cif_clkout_m0 &cam_pwdn>; 419*56198acdSHeiko Stuebner reset-gpios = <&gpio2 RK_PB0 GPIO_ACTIVE_LOW>; 420*56198acdSHeiko Stuebner rotation = <0>; 421*56198acdSHeiko Stuebner 422*56198acdSHeiko Stuebner port { 423*56198acdSHeiko Stuebner ucam_out: endpoint { 424*56198acdSHeiko Stuebner remote-endpoint = <&mipi_in_ucam>; 425*56198acdSHeiko Stuebner data-lanes = <1 2>; 426*56198acdSHeiko Stuebner link-frequencies = /bits/ 64 <450000000>; 427*56198acdSHeiko Stuebner }; 428*56198acdSHeiko Stuebner }; 429*56198acdSHeiko Stuebner }; 430*56198acdSHeiko Stuebner}; 431*56198acdSHeiko Stuebner 432*56198acdSHeiko Stuebner&io_domains { 433*56198acdSHeiko Stuebner vccio1-supply = <&vcc_sdio>; 434*56198acdSHeiko Stuebner vccio2-supply = <&vccio_sd>; 435*56198acdSHeiko Stuebner vccio3-supply = <&vcc_1v8>; 436*56198acdSHeiko Stuebner vccio4-supply = <&vcc_3v3>; 437*56198acdSHeiko Stuebner vccio5-supply = <&vcc_3v3>; 438*56198acdSHeiko Stuebner vccio6-supply = <&vcc_emmc>; 439*56198acdSHeiko Stuebner status = "okay"; 440*56198acdSHeiko Stuebner}; 441*56198acdSHeiko Stuebner 442*56198acdSHeiko Stuebner&isp { 443*56198acdSHeiko Stuebner status = "okay"; 444*56198acdSHeiko Stuebner 445*56198acdSHeiko Stuebner ports { 446*56198acdSHeiko Stuebner port@0 { 447*56198acdSHeiko Stuebner mipi_in_ucam: endpoint { 448*56198acdSHeiko Stuebner data-lanes = <1 2>; 449*56198acdSHeiko Stuebner remote-endpoint = <&ucam_out>; 450*56198acdSHeiko Stuebner }; 451*56198acdSHeiko Stuebner }; 452*56198acdSHeiko Stuebner }; 453*56198acdSHeiko Stuebner}; 454*56198acdSHeiko Stuebner 455*56198acdSHeiko Stuebner&isp_mmu { 456*56198acdSHeiko Stuebner status = "okay"; 457*56198acdSHeiko Stuebner}; 458*56198acdSHeiko Stuebner 459*56198acdSHeiko Stuebner&pinctrl { 460*56198acdSHeiko Stuebner accel { 461*56198acdSHeiko Stuebner accel_int: accel-int { 462*56198acdSHeiko Stuebner rockchip,pins = 463*56198acdSHeiko Stuebner <2 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; 464*56198acdSHeiko Stuebner }; 465*56198acdSHeiko Stuebner }; 466*56198acdSHeiko Stuebner 467*56198acdSHeiko Stuebner camera { 468*56198acdSHeiko Stuebner cam_afvdd_en: cam-afvdd-en { 469*56198acdSHeiko Stuebner rockchip,pins = 470*56198acdSHeiko Stuebner <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 471*56198acdSHeiko Stuebner }; 472*56198acdSHeiko Stuebner 473*56198acdSHeiko Stuebner cam_avdd_en: cam-avdd-en { 474*56198acdSHeiko Stuebner rockchip,pins = 475*56198acdSHeiko Stuebner <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>; 476*56198acdSHeiko Stuebner }; 477*56198acdSHeiko Stuebner 478*56198acdSHeiko Stuebner cam_dovdd_en: cam-dovdd-en { 479*56198acdSHeiko Stuebner rockchip,pins = 480*56198acdSHeiko Stuebner <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; 481*56198acdSHeiko Stuebner }; 482*56198acdSHeiko Stuebner 483*56198acdSHeiko Stuebner cam_dvdd_en: cam-dvdd-en { 484*56198acdSHeiko Stuebner rockchip,pins = 485*56198acdSHeiko Stuebner <3 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; 486*56198acdSHeiko Stuebner }; 487*56198acdSHeiko Stuebner 488*56198acdSHeiko Stuebner cam_pwdn: cam-pwdn { 489*56198acdSHeiko Stuebner rockchip,pins = 490*56198acdSHeiko Stuebner <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 491*56198acdSHeiko Stuebner }; 492*56198acdSHeiko Stuebner }; 493*56198acdSHeiko Stuebner 494*56198acdSHeiko Stuebner emmc { 495*56198acdSHeiko Stuebner emmc_reset: emmc-reset { 496*56198acdSHeiko Stuebner rockchip,pins = 497*56198acdSHeiko Stuebner <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 498*56198acdSHeiko Stuebner }; 499*56198acdSHeiko Stuebner }; 500*56198acdSHeiko Stuebner 501*56198acdSHeiko Stuebner leds { 502*56198acdSHeiko Stuebner debug_led_pin: debug-led-pin { 503*56198acdSHeiko Stuebner rockchip,pins = 504*56198acdSHeiko Stuebner <3 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; 505*56198acdSHeiko Stuebner }; 506*56198acdSHeiko Stuebner 507*56198acdSHeiko Stuebner heartbeat_led_pin: heartbeat-led-pin { 508*56198acdSHeiko Stuebner rockchip,pins = 509*56198acdSHeiko Stuebner <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; 510*56198acdSHeiko Stuebner }; 511*56198acdSHeiko Stuebner }; 512*56198acdSHeiko Stuebner 513*56198acdSHeiko Stuebner panel { 514*56198acdSHeiko Stuebner dsp_rst: dsp-rst { 515*56198acdSHeiko Stuebner rockchip,pins = 516*56198acdSHeiko Stuebner <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_down>; 517*56198acdSHeiko Stuebner }; 518*56198acdSHeiko Stuebner 519*56198acdSHeiko Stuebner tch_int: tch-int { 520*56198acdSHeiko Stuebner rockchip,pins = 521*56198acdSHeiko Stuebner <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; 522*56198acdSHeiko Stuebner }; 523*56198acdSHeiko Stuebner 524*56198acdSHeiko Stuebner tch_rst: tch-rst { 525*56198acdSHeiko Stuebner rockchip,pins = 526*56198acdSHeiko Stuebner <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; 527*56198acdSHeiko Stuebner }; 528*56198acdSHeiko Stuebner }; 529*56198acdSHeiko Stuebner 530*56198acdSHeiko Stuebner pmic { 531*56198acdSHeiko Stuebner pmic_int: pmic-int { 532*56198acdSHeiko Stuebner rockchip,pins = 533*56198acdSHeiko Stuebner <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>; 534*56198acdSHeiko Stuebner }; 535*56198acdSHeiko Stuebner }; 536*56198acdSHeiko Stuebner}; 537*56198acdSHeiko Stuebner 538*56198acdSHeiko Stuebner&pmu_io_domains { 539*56198acdSHeiko Stuebner pmuio1-supply = <&vcc_3v3>; 540*56198acdSHeiko Stuebner pmuio2-supply = <&vcc_3v3>; 541*56198acdSHeiko Stuebner status = "okay"; 542*56198acdSHeiko Stuebner}; 543*56198acdSHeiko Stuebner 544*56198acdSHeiko Stuebner&pwm0 { 545*56198acdSHeiko Stuebner status = "okay"; 546*56198acdSHeiko Stuebner}; 547*56198acdSHeiko Stuebner 548*56198acdSHeiko Stuebner&pwm1 { 549*56198acdSHeiko Stuebner status = "okay"; 550*56198acdSHeiko Stuebner}; 551*56198acdSHeiko Stuebner 552*56198acdSHeiko Stuebner&saradc { 553*56198acdSHeiko Stuebner vref-supply = <&vcc_1v8>; 554*56198acdSHeiko Stuebner status = "okay"; 555*56198acdSHeiko Stuebner}; 556*56198acdSHeiko Stuebner 557*56198acdSHeiko Stuebner&tsadc { 558*56198acdSHeiko Stuebner status = "okay"; 559*56198acdSHeiko Stuebner}; 560*56198acdSHeiko Stuebner 561*56198acdSHeiko Stuebner&u2phy { 562*56198acdSHeiko Stuebner status = "okay"; 563*56198acdSHeiko Stuebner}; 564*56198acdSHeiko Stuebner 565*56198acdSHeiko Stuebner&u2phy_host { 566*56198acdSHeiko Stuebner status = "okay"; 567*56198acdSHeiko Stuebner}; 568*56198acdSHeiko Stuebner 569*56198acdSHeiko Stuebner&u2phy_otg { 570*56198acdSHeiko Stuebner status = "okay"; 571*56198acdSHeiko Stuebner}; 572*56198acdSHeiko Stuebner 573*56198acdSHeiko Stuebner&uart5 { 574*56198acdSHeiko Stuebner pinctrl-0 = <&uart5_xfer>; 575*56198acdSHeiko Stuebner status = "okay"; 576*56198acdSHeiko Stuebner}; 577*56198acdSHeiko Stuebner 578*56198acdSHeiko Stuebner&usb20_otg { 579*56198acdSHeiko Stuebner dr_mode = "peripheral"; 580*56198acdSHeiko Stuebner status = "okay"; 581*56198acdSHeiko Stuebner}; 582*56198acdSHeiko Stuebner 583*56198acdSHeiko Stuebner&usb_host0_ehci { 584*56198acdSHeiko Stuebner status = "okay"; 585*56198acdSHeiko Stuebner}; 586*56198acdSHeiko Stuebner 587*56198acdSHeiko Stuebner&usb_host0_ohci { 588*56198acdSHeiko Stuebner status = "okay"; 589*56198acdSHeiko Stuebner}; 590*56198acdSHeiko Stuebner 591*56198acdSHeiko Stuebner&vopb { 592*56198acdSHeiko Stuebner status = "okay"; 593*56198acdSHeiko Stuebner}; 594*56198acdSHeiko Stuebner 595*56198acdSHeiko Stuebner&vopb_mmu { 596*56198acdSHeiko Stuebner status = "okay"; 597*56198acdSHeiko Stuebner}; 598*56198acdSHeiko Stuebner 599*56198acdSHeiko Stuebner&wdt { 600*56198acdSHeiko Stuebner status = "okay"; 601*56198acdSHeiko Stuebner}; 602*56198acdSHeiko Stuebner