1*9f80b395SMichael Opdenacker// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2*9f80b395SMichael Opdenacker/* 3*9f80b395SMichael Opdenacker * Copyright (C) 2025 Michael Opdenacker <michael.opdenacker@rootcommit.com> 4*9f80b395SMichael Opdenacker */ 5*9f80b395SMichael Opdenacker 6*9f80b395SMichael Opdenacker#include <dt-bindings/gpio/gpio.h> 7*9f80b395SMichael Opdenacker#include <dt-bindings/leds/common.h> 8*9f80b395SMichael Opdenacker#include <dt-bindings/pinctrl/rockchip.h> 9*9f80b395SMichael Opdenacker#include <dt-bindings/soc/rockchip,vop2.h> 10*9f80b395SMichael Opdenacker#include "rk3566.dtsi" 11*9f80b395SMichael Opdenacker 12*9f80b395SMichael Opdenacker/ { 13*9f80b395SMichael Opdenacker aliases { 14*9f80b395SMichael Opdenacker i2c0 = &i2c0; 15*9f80b395SMichael Opdenacker i2c2 = &i2c2; 16*9f80b395SMichael Opdenacker mmc1 = &sdmmc0; 17*9f80b395SMichael Opdenacker serial2 = &uart2; 18*9f80b395SMichael Opdenacker }; 19*9f80b395SMichael Opdenacker 20*9f80b395SMichael Opdenacker chosen { 21*9f80b395SMichael Opdenacker stdout-path = "serial2:1500000n8"; 22*9f80b395SMichael Opdenacker }; 23*9f80b395SMichael Opdenacker 24*9f80b395SMichael Opdenacker gpio_leds: gpio-leds { 25*9f80b395SMichael Opdenacker compatible = "gpio-leds"; 26*9f80b395SMichael Opdenacker 27*9f80b395SMichael Opdenacker act-led { 28*9f80b395SMichael Opdenacker gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; 29*9f80b395SMichael Opdenacker linux,default-trigger="mmc1"; 30*9f80b395SMichael Opdenacker }; 31*9f80b395SMichael Opdenacker 32*9f80b395SMichael Opdenacker rsv-led { 33*9f80b395SMichael Opdenacker gpios = <&gpio0 RK_PD6 GPIO_ACTIVE_HIGH>; 34*9f80b395SMichael Opdenacker linux,default-trigger="none"; 35*9f80b395SMichael Opdenacker }; 36*9f80b395SMichael Opdenacker }; 37*9f80b395SMichael Opdenacker 38*9f80b395SMichael Opdenacker vcc3v3_sys: regulator-3v3-vcc-sys { 39*9f80b395SMichael Opdenacker compatible = "regulator-fixed"; 40*9f80b395SMichael Opdenacker regulator-name = "vcc3v3_sys"; 41*9f80b395SMichael Opdenacker regulator-always-on; 42*9f80b395SMichael Opdenacker regulator-boot-on; 43*9f80b395SMichael Opdenacker regulator-min-microvolt = <3300000>; 44*9f80b395SMichael Opdenacker regulator-max-microvolt = <3300000>; 45*9f80b395SMichael Opdenacker vin-supply = <&vcc5v0_sys>; 46*9f80b395SMichael Opdenacker }; 47*9f80b395SMichael Opdenacker 48*9f80b395SMichael Opdenacker vcc5v0_sys: regulator-5v0-vcc-sys { 49*9f80b395SMichael Opdenacker compatible = "regulator-fixed"; 50*9f80b395SMichael Opdenacker regulator-name = "vcc5v0_sys"; 51*9f80b395SMichael Opdenacker regulator-always-on; 52*9f80b395SMichael Opdenacker regulator-boot-on; 53*9f80b395SMichael Opdenacker regulator-min-microvolt = <5000000>; 54*9f80b395SMichael Opdenacker regulator-max-microvolt = <5000000>; 55*9f80b395SMichael Opdenacker }; 56*9f80b395SMichael Opdenacker 57*9f80b395SMichael Opdenacker vcc5v0_usb_host: regulator-5v0-vcc-usb-host { 58*9f80b395SMichael Opdenacker compatible = "regulator-fixed"; 59*9f80b395SMichael Opdenacker enable-active-high; 60*9f80b395SMichael Opdenacker gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; 61*9f80b395SMichael Opdenacker pinctrl-names = "default"; 62*9f80b395SMichael Opdenacker pinctrl-0 = <&u2_a_vbus_en>; 63*9f80b395SMichael Opdenacker regulator-name = "vcc5v0_usb_host"; 64*9f80b395SMichael Opdenacker regulator-min-microvolt = <5000000>; 65*9f80b395SMichael Opdenacker regulator-max-microvolt = <5000000>; 66*9f80b395SMichael Opdenacker vin-supply = <&vcc5v0_sys>; 67*9f80b395SMichael Opdenacker }; 68*9f80b395SMichael Opdenacker}; 69*9f80b395SMichael Opdenacker 70*9f80b395SMichael Opdenacker&cpu0 { 71*9f80b395SMichael Opdenacker cpu-supply = <&vdd_cpu>; 72*9f80b395SMichael Opdenacker}; 73*9f80b395SMichael Opdenacker 74*9f80b395SMichael Opdenacker&cpu1 { 75*9f80b395SMichael Opdenacker cpu-supply = <&vdd_cpu>; 76*9f80b395SMichael Opdenacker}; 77*9f80b395SMichael Opdenacker 78*9f80b395SMichael Opdenacker&cpu2 { 79*9f80b395SMichael Opdenacker cpu-supply = <&vdd_cpu>; 80*9f80b395SMichael Opdenacker}; 81*9f80b395SMichael Opdenacker 82*9f80b395SMichael Opdenacker&cpu3 { 83*9f80b395SMichael Opdenacker cpu-supply = <&vdd_cpu>; 84*9f80b395SMichael Opdenacker}; 85*9f80b395SMichael Opdenacker 86*9f80b395SMichael Opdenacker&i2c0 { 87*9f80b395SMichael Opdenacker status = "okay"; 88*9f80b395SMichael Opdenacker 89*9f80b395SMichael Opdenacker rk809: pmic@20 { 90*9f80b395SMichael Opdenacker compatible = "rockchip,rk809"; 91*9f80b395SMichael Opdenacker reg = <0x20>; 92*9f80b395SMichael Opdenacker assigned-clocks = <&cru I2S1_MCLKOUT_TX>; 93*9f80b395SMichael Opdenacker assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>; 94*9f80b395SMichael Opdenacker #clock-cells = <1>; 95*9f80b395SMichael Opdenacker clocks = <&cru I2S1_MCLKOUT_TX>; 96*9f80b395SMichael Opdenacker clock-names = "mclk"; 97*9f80b395SMichael Opdenacker clock-output-names = "rk809-clkout1", "rk809-clkout2"; 98*9f80b395SMichael Opdenacker interrupt-parent = <&gpio0>; 99*9f80b395SMichael Opdenacker interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>; 100*9f80b395SMichael Opdenacker pinctrl-names = "default"; 101*9f80b395SMichael Opdenacker pinctrl-0 = <&pmic_int_l>, <&i2s1m0_mclk>; 102*9f80b395SMichael Opdenacker #sound-dai-cells = <0>; 103*9f80b395SMichael Opdenacker system-power-controller; 104*9f80b395SMichael Opdenacker wakeup-source; 105*9f80b395SMichael Opdenacker 106*9f80b395SMichael Opdenacker vcc1-supply = <&vcc3v3_sys>; 107*9f80b395SMichael Opdenacker vcc2-supply = <&vcc3v3_sys>; 108*9f80b395SMichael Opdenacker vcc3-supply = <&vcc3v3_sys>; 109*9f80b395SMichael Opdenacker vcc4-supply = <&vcc3v3_sys>; 110*9f80b395SMichael Opdenacker vcc5-supply = <&vcc3v3_sys>; 111*9f80b395SMichael Opdenacker vcc6-supply = <&vcc3v3_sys>; 112*9f80b395SMichael Opdenacker vcc7-supply = <&vcc3v3_sys>; 113*9f80b395SMichael Opdenacker vcc8-supply = <&vcc3v3_sys>; 114*9f80b395SMichael Opdenacker vcc9-supply = <&vcc3v3_sys>; 115*9f80b395SMichael Opdenacker 116*9f80b395SMichael Opdenacker regulators { 117*9f80b395SMichael Opdenacker vcc_1v8: DCDC_REG5 { 118*9f80b395SMichael Opdenacker regulator-name = "vcc_1v8"; 119*9f80b395SMichael Opdenacker regulator-always-on; 120*9f80b395SMichael Opdenacker regulator-boot-on; 121*9f80b395SMichael Opdenacker regulator-min-microvolt = <1800000>; 122*9f80b395SMichael Opdenacker regulator-max-microvolt = <1800000>; 123*9f80b395SMichael Opdenacker 124*9f80b395SMichael Opdenacker regulator-state-mem { 125*9f80b395SMichael Opdenacker regulator-off-in-suspend; 126*9f80b395SMichael Opdenacker }; 127*9f80b395SMichael Opdenacker }; 128*9f80b395SMichael Opdenacker 129*9f80b395SMichael Opdenacker vcc_3v3: SWITCH_REG1 { 130*9f80b395SMichael Opdenacker regulator-name = "vcc_3v3"; 131*9f80b395SMichael Opdenacker regulator-always-on; 132*9f80b395SMichael Opdenacker regulator-boot-on; 133*9f80b395SMichael Opdenacker 134*9f80b395SMichael Opdenacker regulator-state-mem { 135*9f80b395SMichael Opdenacker regulator-off-in-suspend; 136*9f80b395SMichael Opdenacker }; 137*9f80b395SMichael Opdenacker }; 138*9f80b395SMichael Opdenacker 139*9f80b395SMichael Opdenacker vcc3v3_sd: SWITCH_REG2 { 140*9f80b395SMichael Opdenacker regulator-name = "vcc3v3_sd"; 141*9f80b395SMichael Opdenacker regulator-always-on; 142*9f80b395SMichael Opdenacker regulator-boot-on; 143*9f80b395SMichael Opdenacker 144*9f80b395SMichael Opdenacker regulator-state-mem { 145*9f80b395SMichael Opdenacker regulator-off-in-suspend; 146*9f80b395SMichael Opdenacker }; 147*9f80b395SMichael Opdenacker }; 148*9f80b395SMichael Opdenacker 149*9f80b395SMichael Opdenacker vccio_sd: LDO_REG5 { 150*9f80b395SMichael Opdenacker regulator-name = "vccio_sd"; 151*9f80b395SMichael Opdenacker regulator-always-on; 152*9f80b395SMichael Opdenacker regulator-boot-on; 153*9f80b395SMichael Opdenacker regulator-min-microvolt = <1800000>; 154*9f80b395SMichael Opdenacker regulator-max-microvolt = <3300000>; 155*9f80b395SMichael Opdenacker 156*9f80b395SMichael Opdenacker regulator-state-mem { 157*9f80b395SMichael Opdenacker regulator-off-in-suspend; 158*9f80b395SMichael Opdenacker }; 159*9f80b395SMichael Opdenacker }; 160*9f80b395SMichael Opdenacker }; 161*9f80b395SMichael Opdenacker }; 162*9f80b395SMichael Opdenacker 163*9f80b395SMichael Opdenacker vdd_cpu: regulator@40 { 164*9f80b395SMichael Opdenacker compatible = "silergy,syr827"; 165*9f80b395SMichael Opdenacker reg = <0x40>; 166*9f80b395SMichael Opdenacker fcs,suspend-voltage-selector = <1>; 167*9f80b395SMichael Opdenacker regulator-name = "vdd_cpu"; 168*9f80b395SMichael Opdenacker regulator-always-on; 169*9f80b395SMichael Opdenacker regulator-boot-on; 170*9f80b395SMichael Opdenacker regulator-min-microvolt = <830000>; 171*9f80b395SMichael Opdenacker regulator-max-microvolt = <1200000>; 172*9f80b395SMichael Opdenacker regulator-ramp-delay = <2300>; 173*9f80b395SMichael Opdenacker vin-supply = <&vcc3v3_sys>; 174*9f80b395SMichael Opdenacker 175*9f80b395SMichael Opdenacker regulator-state-mem { 176*9f80b395SMichael Opdenacker regulator-off-in-suspend; 177*9f80b395SMichael Opdenacker }; 178*9f80b395SMichael Opdenacker }; 179*9f80b395SMichael Opdenacker}; 180*9f80b395SMichael Opdenacker 181*9f80b395SMichael Opdenacker&i2c2 { 182*9f80b395SMichael Opdenacker status = "okay"; 183*9f80b395SMichael Opdenacker 184*9f80b395SMichael Opdenacker eeprom@50 { 185*9f80b395SMichael Opdenacker compatible = "atmel,24c08"; 186*9f80b395SMichael Opdenacker reg = <0x50>; 187*9f80b395SMichael Opdenacker pinctrl-names = "default"; 188*9f80b395SMichael Opdenacker pinctrl-0 = <&eeprom_wc_n>; 189*9f80b395SMichael Opdenacker }; 190*9f80b395SMichael Opdenacker 191*9f80b395SMichael Opdenacker rtc_isl1208: rtc@6f { 192*9f80b395SMichael Opdenacker compatible = "isil,isl1208"; 193*9f80b395SMichael Opdenacker reg = <0x6f>; 194*9f80b395SMichael Opdenacker interrupt-names = "irq"; 195*9f80b395SMichael Opdenacker interrupts-extended = <&gpio0 RK_PD3 IRQ_TYPE_EDGE_FALLING>; 196*9f80b395SMichael Opdenacker pinctrl-names = "default"; 197*9f80b395SMichael Opdenacker pinctrl-0 = <&rtcic_int_l>; 198*9f80b395SMichael Opdenacker }; 199*9f80b395SMichael Opdenacker}; 200*9f80b395SMichael Opdenacker 201*9f80b395SMichael Opdenacker&pinctrl { 202*9f80b395SMichael Opdenacker eeprom { 203*9f80b395SMichael Opdenacker eeprom_wc_n: eeprom-wc-n { 204*9f80b395SMichael Opdenacker rockchip,pins = <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>; 205*9f80b395SMichael Opdenacker }; 206*9f80b395SMichael Opdenacker }; 207*9f80b395SMichael Opdenacker 208*9f80b395SMichael Opdenacker pmic { 209*9f80b395SMichael Opdenacker pmic_int_l: pmic-int-l { 210*9f80b395SMichael Opdenacker rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; 211*9f80b395SMichael Opdenacker }; 212*9f80b395SMichael Opdenacker }; 213*9f80b395SMichael Opdenacker 214*9f80b395SMichael Opdenacker rtc { 215*9f80b395SMichael Opdenacker rtcic_int_l: rtcic-int-l { 216*9f80b395SMichael Opdenacker rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>; 217*9f80b395SMichael Opdenacker }; 218*9f80b395SMichael Opdenacker }; 219*9f80b395SMichael Opdenacker 220*9f80b395SMichael Opdenacker usb { 221*9f80b395SMichael Opdenacker u2_a_vbus_en: u2-a-vbus-en { 222*9f80b395SMichael Opdenacker rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; 223*9f80b395SMichael Opdenacker }; 224*9f80b395SMichael Opdenacker 225*9f80b395SMichael Opdenacker u3_a_vbus_en: u3-a-vbus-en { 226*9f80b395SMichael Opdenacker rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; 227*9f80b395SMichael Opdenacker }; 228*9f80b395SMichael Opdenacker }; 229*9f80b395SMichael Opdenacker}; 230*9f80b395SMichael Opdenacker 231*9f80b395SMichael Opdenacker&sdmmc0 { 232*9f80b395SMichael Opdenacker bus-width = <4>; 233*9f80b395SMichael Opdenacker cap-sd-highspeed; 234*9f80b395SMichael Opdenacker disable-wp; 235*9f80b395SMichael Opdenacker pinctrl-names = "default"; 236*9f80b395SMichael Opdenacker pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; 237*9f80b395SMichael Opdenacker vmmc-supply = <&vcc3v3_sd>; 238*9f80b395SMichael Opdenacker vqmmc-supply = <&vccio_sd>; 239*9f80b395SMichael Opdenacker status = "okay"; 240*9f80b395SMichael Opdenacker}; 241*9f80b395SMichael Opdenacker 242*9f80b395SMichael Opdenacker&uart2 { 243*9f80b395SMichael Opdenacker status = "okay"; 244*9f80b395SMichael Opdenacker}; 245*9f80b395SMichael Opdenacker 246*9f80b395SMichael Opdenacker&usb_host0_ehci { 247*9f80b395SMichael Opdenacker status = "okay"; 248*9f80b395SMichael Opdenacker}; 249*9f80b395SMichael Opdenacker 250*9f80b395SMichael Opdenacker&usb_host0_ohci { 251*9f80b395SMichael Opdenacker status = "okay"; 252*9f80b395SMichael Opdenacker}; 253*9f80b395SMichael Opdenacker 254*9f80b395SMichael Opdenacker&usb_host1_ehci { 255*9f80b395SMichael Opdenacker status = "okay"; 256*9f80b395SMichael Opdenacker}; 257*9f80b395SMichael Opdenacker 258*9f80b395SMichael Opdenacker&usb_host1_ohci { 259*9f80b395SMichael Opdenacker status = "okay"; 260*9f80b395SMichael Opdenacker}; 261*9f80b395SMichael Opdenacker 262*9f80b395SMichael Opdenacker&usb2phy0 { 263*9f80b395SMichael Opdenacker status = "okay"; 264*9f80b395SMichael Opdenacker}; 265*9f80b395SMichael Opdenacker 266*9f80b395SMichael Opdenacker&usb2phy0_host { 267*9f80b395SMichael Opdenacker phy-supply = <&vcc5v0_usb_host>; 268*9f80b395SMichael Opdenacker status = "okay"; 269*9f80b395SMichael Opdenacker}; 270*9f80b395SMichael Opdenacker 271*9f80b395SMichael Opdenacker&usb2phy1 { 272*9f80b395SMichael Opdenacker status = "okay"; 273*9f80b395SMichael Opdenacker}; 274*9f80b395SMichael Opdenacker 275*9f80b395SMichael Opdenacker&usb2phy1_host { 276*9f80b395SMichael Opdenacker phy-supply = <&vcc5v0_usb_host>; 277*9f80b395SMichael Opdenacker status = "okay"; 278*9f80b395SMichael Opdenacker}; 279