1*44a48a23SJiaxing Hu// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*44a48a23SJiaxing Hu/* 3*44a48a23SJiaxing Hu * ArmSoM CM5 - Rockchip RK3576 compute module (Raspberry Pi CM4 form factor). 4*44a48a23SJiaxing Hu * 5*44a48a23SJiaxing Hu * Common to all CM5 carriers. The carrier .dts includes this file, sets the 6*44a48a23SJiaxing Hu * board model/compatible, and adds carrier-specific peripherals. 7*44a48a23SJiaxing Hu * 8*44a48a23SJiaxing Hu * On-module devices: 9*44a48a23SJiaxing Hu * - RK806 PMIC on I2C1 10*44a48a23SJiaxing Hu * - HYM8563 RTC on I2C2 11*44a48a23SJiaxing Hu * - eMMC (SDHCI) 12*44a48a23SJiaxing Hu * - GMAC0 + MotorComm YT8531 Gigabit Ethernet PHY (RGMII) 13*44a48a23SJiaxing Hu * - SYN43752 WiFi 6 + BT 5.x (SDIO + UART4) 14*44a48a23SJiaxing Hu * 15*44a48a23SJiaxing Hu * Copyright (c) 2024 ArmSoM 16*44a48a23SJiaxing Hu * Copyright (c) 2026 Jiaxing Hu <gahing@gahingwoo.com> 17*44a48a23SJiaxing Hu */ 18*44a48a23SJiaxing Hu 19*44a48a23SJiaxing Hu#include <dt-bindings/gpio/gpio.h> 20*44a48a23SJiaxing Hu#include <dt-bindings/pinctrl/rockchip.h> 21*44a48a23SJiaxing Hu#include "rk3576.dtsi" 22*44a48a23SJiaxing Hu 23*44a48a23SJiaxing Hu/ { 24*44a48a23SJiaxing Hu compatible = "armsom,cm5", "rockchip,rk3576"; 25*44a48a23SJiaxing Hu 26*44a48a23SJiaxing Hu vcc_1v1_nldo_s3: regulator-vcc-1v1-nldo-s3 { 27*44a48a23SJiaxing Hu compatible = "regulator-fixed"; 28*44a48a23SJiaxing Hu regulator-name = "vcc_1v1_nldo_s3"; 29*44a48a23SJiaxing Hu regulator-boot-on; 30*44a48a23SJiaxing Hu regulator-always-on; 31*44a48a23SJiaxing Hu regulator-min-microvolt = <1100000>; 32*44a48a23SJiaxing Hu regulator-max-microvolt = <1100000>; 33*44a48a23SJiaxing Hu vin-supply = <&vcc_5v0_sys>; 34*44a48a23SJiaxing Hu }; 35*44a48a23SJiaxing Hu 36*44a48a23SJiaxing Hu vcc_1v2_ufs_vccq_s0: regulator-vcc-1v2-ufs-vccq-s0 { 37*44a48a23SJiaxing Hu compatible = "regulator-fixed"; 38*44a48a23SJiaxing Hu regulator-name = "vcc_1v2_ufs_vccq_s0"; 39*44a48a23SJiaxing Hu regulator-boot-on; 40*44a48a23SJiaxing Hu regulator-always-on; 41*44a48a23SJiaxing Hu regulator-min-microvolt = <1200000>; 42*44a48a23SJiaxing Hu regulator-max-microvolt = <1200000>; 43*44a48a23SJiaxing Hu vin-supply = <&vcc_5v0_sys>; 44*44a48a23SJiaxing Hu }; 45*44a48a23SJiaxing Hu 46*44a48a23SJiaxing Hu vcc_1v8_s0: regulator-vcc-1v8-s0 { 47*44a48a23SJiaxing Hu compatible = "regulator-fixed"; 48*44a48a23SJiaxing Hu regulator-name = "vcc_1v8_s0"; 49*44a48a23SJiaxing Hu regulator-boot-on; 50*44a48a23SJiaxing Hu regulator-always-on; 51*44a48a23SJiaxing Hu regulator-min-microvolt = <1800000>; 52*44a48a23SJiaxing Hu regulator-max-microvolt = <1800000>; 53*44a48a23SJiaxing Hu vin-supply = <&vcc_1v8_s3>; 54*44a48a23SJiaxing Hu }; 55*44a48a23SJiaxing Hu 56*44a48a23SJiaxing Hu vcc_1v8_ufs_vccq2_s0: regulator-vcc-1v8-ufs-vccq2-s0 { 57*44a48a23SJiaxing Hu compatible = "regulator-fixed"; 58*44a48a23SJiaxing Hu regulator-name = "vcc_1v8_ufs_vccq2_s0"; 59*44a48a23SJiaxing Hu regulator-boot-on; 60*44a48a23SJiaxing Hu regulator-always-on; 61*44a48a23SJiaxing Hu regulator-min-microvolt = <1800000>; 62*44a48a23SJiaxing Hu regulator-max-microvolt = <1800000>; 63*44a48a23SJiaxing Hu vin-supply = <&vcc_1v8_s3>; 64*44a48a23SJiaxing Hu }; 65*44a48a23SJiaxing Hu 66*44a48a23SJiaxing Hu vcc_2v0_pldo_s3: regulator-vcc-2v0-pldo-s3 { 67*44a48a23SJiaxing Hu compatible = "regulator-fixed"; 68*44a48a23SJiaxing Hu regulator-name = "vcc_2v0_pldo_s3"; 69*44a48a23SJiaxing Hu regulator-boot-on; 70*44a48a23SJiaxing Hu regulator-always-on; 71*44a48a23SJiaxing Hu regulator-min-microvolt = <2000000>; 72*44a48a23SJiaxing Hu regulator-max-microvolt = <2000000>; 73*44a48a23SJiaxing Hu vin-supply = <&vcc_5v0_sys>; 74*44a48a23SJiaxing Hu }; 75*44a48a23SJiaxing Hu 76*44a48a23SJiaxing Hu vcc_3v3_s0: regulator-vcc-3v3-s0 { 77*44a48a23SJiaxing Hu compatible = "regulator-fixed"; 78*44a48a23SJiaxing Hu regulator-name = "vcc_3v3_s0"; 79*44a48a23SJiaxing Hu regulator-boot-on; 80*44a48a23SJiaxing Hu regulator-always-on; 81*44a48a23SJiaxing Hu regulator-min-microvolt = <3300000>; 82*44a48a23SJiaxing Hu regulator-max-microvolt = <3300000>; 83*44a48a23SJiaxing Hu vin-supply = <&vcc_3v3_s3>; 84*44a48a23SJiaxing Hu }; 85*44a48a23SJiaxing Hu 86*44a48a23SJiaxing Hu vcc_3v3_ufs_s0: regulator-vcc-ufs-s0 { 87*44a48a23SJiaxing Hu compatible = "regulator-fixed"; 88*44a48a23SJiaxing Hu regulator-name = "vcc_3v3_ufs_s0"; 89*44a48a23SJiaxing Hu regulator-boot-on; 90*44a48a23SJiaxing Hu regulator-always-on; 91*44a48a23SJiaxing Hu regulator-min-microvolt = <3300000>; 92*44a48a23SJiaxing Hu regulator-max-microvolt = <3300000>; 93*44a48a23SJiaxing Hu vin-supply = <&vcc_5v0_sys>; 94*44a48a23SJiaxing Hu }; 95*44a48a23SJiaxing Hu 96*44a48a23SJiaxing Hu /* 97*44a48a23SJiaxing Hu * WiFi power sequencer for SYN43752. Reset GPIO1 PC6 active-low, 98*44a48a23SJiaxing Hu * clock from the HYM8563 RTC oscillator. 99*44a48a23SJiaxing Hu */ 100*44a48a23SJiaxing Hu sdio_pwrseq: sdio-pwrseq { 101*44a48a23SJiaxing Hu compatible = "mmc-pwrseq-simple"; 102*44a48a23SJiaxing Hu clocks = <&hym8563>; 103*44a48a23SJiaxing Hu clock-names = "ext_clock"; 104*44a48a23SJiaxing Hu pinctrl-names = "default"; 105*44a48a23SJiaxing Hu pinctrl-0 = <&wifi_reg_on>; 106*44a48a23SJiaxing Hu reset-gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_LOW>; 107*44a48a23SJiaxing Hu }; 108*44a48a23SJiaxing Hu}; 109*44a48a23SJiaxing Hu 110*44a48a23SJiaxing Hu&cpu_b0 { 111*44a48a23SJiaxing Hu cpu-supply = <&vdd_cpu_big_s0>; 112*44a48a23SJiaxing Hu}; 113*44a48a23SJiaxing Hu 114*44a48a23SJiaxing Hu&cpu_b1 { 115*44a48a23SJiaxing Hu cpu-supply = <&vdd_cpu_big_s0>; 116*44a48a23SJiaxing Hu}; 117*44a48a23SJiaxing Hu 118*44a48a23SJiaxing Hu&cpu_b2 { 119*44a48a23SJiaxing Hu cpu-supply = <&vdd_cpu_big_s0>; 120*44a48a23SJiaxing Hu}; 121*44a48a23SJiaxing Hu 122*44a48a23SJiaxing Hu&cpu_b3 { 123*44a48a23SJiaxing Hu cpu-supply = <&vdd_cpu_big_s0>; 124*44a48a23SJiaxing Hu}; 125*44a48a23SJiaxing Hu 126*44a48a23SJiaxing Hu&cpu_l0 { 127*44a48a23SJiaxing Hu cpu-supply = <&vdd_cpu_lit_s0>; 128*44a48a23SJiaxing Hu}; 129*44a48a23SJiaxing Hu 130*44a48a23SJiaxing Hu&cpu_l1 { 131*44a48a23SJiaxing Hu cpu-supply = <&vdd_cpu_lit_s0>; 132*44a48a23SJiaxing Hu}; 133*44a48a23SJiaxing Hu 134*44a48a23SJiaxing Hu&cpu_l2 { 135*44a48a23SJiaxing Hu cpu-supply = <&vdd_cpu_lit_s0>; 136*44a48a23SJiaxing Hu}; 137*44a48a23SJiaxing Hu 138*44a48a23SJiaxing Hu&cpu_l3 { 139*44a48a23SJiaxing Hu cpu-supply = <&vdd_cpu_lit_s0>; 140*44a48a23SJiaxing Hu}; 141*44a48a23SJiaxing Hu 142*44a48a23SJiaxing Hu/* 143*44a48a23SJiaxing Hu * GMAC0 drives an on-module MotorComm YT8531. The PHY has no local crystal and 144*44a48a23SJiaxing Hu * takes the SoC 25 MHz reference (REFCLKO25M_GMAC0_OUT); ethm0_clk0_25m_out 145*44a48a23SJiaxing Hu * routes that clock to the pad, and the PHY node consumes and enables it. 146*44a48a23SJiaxing Hu */ 147*44a48a23SJiaxing Hu&gmac0 { 148*44a48a23SJiaxing Hu phy-mode = "rgmii-id"; 149*44a48a23SJiaxing Hu clock_in_out = "output"; 150*44a48a23SJiaxing Hu phy-handle = <&rgmii_phy0>; 151*44a48a23SJiaxing Hu phy-supply = <&vcc_3v3_s3>; 152*44a48a23SJiaxing Hu pinctrl-names = "default"; 153*44a48a23SJiaxing Hu pinctrl-0 = <ð0m0_miim 154*44a48a23SJiaxing Hu ð0m0_tx_bus2 155*44a48a23SJiaxing Hu ð0m0_rx_bus2 156*44a48a23SJiaxing Hu ð0m0_rgmii_clk 157*44a48a23SJiaxing Hu ð0m0_rgmii_bus 158*44a48a23SJiaxing Hu ðm0_clk0_25m_out>; 159*44a48a23SJiaxing Hu status = "okay"; 160*44a48a23SJiaxing Hu}; 161*44a48a23SJiaxing Hu 162*44a48a23SJiaxing Hu&gpu { 163*44a48a23SJiaxing Hu mali-supply = <&vdd_gpu_s0>; 164*44a48a23SJiaxing Hu status = "okay"; 165*44a48a23SJiaxing Hu}; 166*44a48a23SJiaxing Hu 167*44a48a23SJiaxing Hu&i2c1 { 168*44a48a23SJiaxing Hu status = "okay"; 169*44a48a23SJiaxing Hu 170*44a48a23SJiaxing Hu pmic@23 { 171*44a48a23SJiaxing Hu compatible = "rockchip,rk806"; 172*44a48a23SJiaxing Hu reg = <0x23>; 173*44a48a23SJiaxing Hu gpio-controller; 174*44a48a23SJiaxing Hu #gpio-cells = <2>; 175*44a48a23SJiaxing Hu interrupt-parent = <&gpio0>; 176*44a48a23SJiaxing Hu interrupts = <RK_PA6 IRQ_TYPE_LEVEL_LOW>; 177*44a48a23SJiaxing Hu pinctrl-names = "default"; 178*44a48a23SJiaxing Hu pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>, 179*44a48a23SJiaxing Hu <&rk806_dvs2_null>, <&rk806_dvs3_null>; 180*44a48a23SJiaxing Hu system-power-controller; 181*44a48a23SJiaxing Hu vcc1-supply = <&vcc_5v0_sys>; 182*44a48a23SJiaxing Hu vcc2-supply = <&vcc_5v0_sys>; 183*44a48a23SJiaxing Hu vcc3-supply = <&vcc_5v0_sys>; 184*44a48a23SJiaxing Hu vcc4-supply = <&vcc_5v0_sys>; 185*44a48a23SJiaxing Hu vcc5-supply = <&vcc_5v0_sys>; 186*44a48a23SJiaxing Hu vcc6-supply = <&vcc_5v0_sys>; 187*44a48a23SJiaxing Hu vcc7-supply = <&vcc_5v0_sys>; 188*44a48a23SJiaxing Hu vcc8-supply = <&vcc_5v0_sys>; 189*44a48a23SJiaxing Hu vcc9-supply = <&vcc_5v0_sys>; 190*44a48a23SJiaxing Hu vcc10-supply = <&vcc_5v0_sys>; 191*44a48a23SJiaxing Hu vcc11-supply = <&vcc_2v0_pldo_s3>; 192*44a48a23SJiaxing Hu vcc12-supply = <&vcc_5v0_sys>; 193*44a48a23SJiaxing Hu vcc13-supply = <&vcc_1v1_nldo_s3>; 194*44a48a23SJiaxing Hu vcc14-supply = <&vcc_1v1_nldo_s3>; 195*44a48a23SJiaxing Hu vcca-supply = <&vcc_5v0_sys>; 196*44a48a23SJiaxing Hu 197*44a48a23SJiaxing Hu rk806_dvs1_null: dvs1-null-pins { 198*44a48a23SJiaxing Hu pins = "gpio_pwrctrl1"; 199*44a48a23SJiaxing Hu function = "pin_fun0"; 200*44a48a23SJiaxing Hu }; 201*44a48a23SJiaxing Hu 202*44a48a23SJiaxing Hu rk806_dvs2_null: dvs2-null-pins { 203*44a48a23SJiaxing Hu pins = "gpio_pwrctrl2"; 204*44a48a23SJiaxing Hu function = "pin_fun0"; 205*44a48a23SJiaxing Hu }; 206*44a48a23SJiaxing Hu 207*44a48a23SJiaxing Hu rk806_dvs3_null: dvs3-null-pins { 208*44a48a23SJiaxing Hu pins = "gpio_pwrctrl3"; 209*44a48a23SJiaxing Hu function = "pin_fun0"; 210*44a48a23SJiaxing Hu }; 211*44a48a23SJiaxing Hu 212*44a48a23SJiaxing Hu regulators { 213*44a48a23SJiaxing Hu vdd_cpu_big_s0: dcdc-reg1 { 214*44a48a23SJiaxing Hu regulator-always-on; 215*44a48a23SJiaxing Hu regulator-boot-on; 216*44a48a23SJiaxing Hu regulator-enable-ramp-delay = <400>; 217*44a48a23SJiaxing Hu regulator-min-microvolt = <550000>; 218*44a48a23SJiaxing Hu regulator-max-microvolt = <950000>; 219*44a48a23SJiaxing Hu regulator-name = "vdd_cpu_big_s0"; 220*44a48a23SJiaxing Hu regulator-ramp-delay = <12500>; 221*44a48a23SJiaxing Hu 222*44a48a23SJiaxing Hu regulator-state-mem { 223*44a48a23SJiaxing Hu regulator-off-in-suspend; 224*44a48a23SJiaxing Hu }; 225*44a48a23SJiaxing Hu }; 226*44a48a23SJiaxing Hu 227*44a48a23SJiaxing Hu vdd_npu_s0: dcdc-reg2 { 228*44a48a23SJiaxing Hu regulator-boot-on; 229*44a48a23SJiaxing Hu regulator-enable-ramp-delay = <400>; 230*44a48a23SJiaxing Hu regulator-min-microvolt = <550000>; 231*44a48a23SJiaxing Hu regulator-max-microvolt = <950000>; 232*44a48a23SJiaxing Hu regulator-name = "vdd_npu_s0"; 233*44a48a23SJiaxing Hu regulator-ramp-delay = <12500>; 234*44a48a23SJiaxing Hu 235*44a48a23SJiaxing Hu regulator-state-mem { 236*44a48a23SJiaxing Hu regulator-off-in-suspend; 237*44a48a23SJiaxing Hu }; 238*44a48a23SJiaxing Hu }; 239*44a48a23SJiaxing Hu 240*44a48a23SJiaxing Hu vdd_cpu_lit_s0: dcdc-reg3 { 241*44a48a23SJiaxing Hu regulator-always-on; 242*44a48a23SJiaxing Hu regulator-boot-on; 243*44a48a23SJiaxing Hu regulator-min-microvolt = <550000>; 244*44a48a23SJiaxing Hu regulator-max-microvolt = <950000>; 245*44a48a23SJiaxing Hu regulator-name = "vdd_cpu_lit_s0"; 246*44a48a23SJiaxing Hu regulator-ramp-delay = <12500>; 247*44a48a23SJiaxing Hu 248*44a48a23SJiaxing Hu regulator-state-mem { 249*44a48a23SJiaxing Hu regulator-off-in-suspend; 250*44a48a23SJiaxing Hu }; 251*44a48a23SJiaxing Hu }; 252*44a48a23SJiaxing Hu 253*44a48a23SJiaxing Hu vcc_3v3_s3: dcdc-reg4 { 254*44a48a23SJiaxing Hu regulator-always-on; 255*44a48a23SJiaxing Hu regulator-boot-on; 256*44a48a23SJiaxing Hu regulator-min-microvolt = <3300000>; 257*44a48a23SJiaxing Hu regulator-max-microvolt = <3300000>; 258*44a48a23SJiaxing Hu regulator-name = "vcc_3v3_s3"; 259*44a48a23SJiaxing Hu 260*44a48a23SJiaxing Hu regulator-state-mem { 261*44a48a23SJiaxing Hu regulator-on-in-suspend; 262*44a48a23SJiaxing Hu }; 263*44a48a23SJiaxing Hu }; 264*44a48a23SJiaxing Hu 265*44a48a23SJiaxing Hu vdd_gpu_s0: dcdc-reg5 { 266*44a48a23SJiaxing Hu regulator-boot-on; 267*44a48a23SJiaxing Hu regulator-enable-ramp-delay = <400>; 268*44a48a23SJiaxing Hu regulator-min-microvolt = <550000>; 269*44a48a23SJiaxing Hu regulator-max-microvolt = <900000>; 270*44a48a23SJiaxing Hu regulator-ramp-delay = <12500>; 271*44a48a23SJiaxing Hu regulator-name = "vdd_gpu_s0"; 272*44a48a23SJiaxing Hu 273*44a48a23SJiaxing Hu regulator-state-mem { 274*44a48a23SJiaxing Hu regulator-off-in-suspend; 275*44a48a23SJiaxing Hu }; 276*44a48a23SJiaxing Hu }; 277*44a48a23SJiaxing Hu 278*44a48a23SJiaxing Hu vddq_ddr_s0: dcdc-reg6 { 279*44a48a23SJiaxing Hu regulator-always-on; 280*44a48a23SJiaxing Hu regulator-boot-on; 281*44a48a23SJiaxing Hu regulator-name = "vddq_ddr_s0"; 282*44a48a23SJiaxing Hu 283*44a48a23SJiaxing Hu regulator-state-mem { 284*44a48a23SJiaxing Hu regulator-off-in-suspend; 285*44a48a23SJiaxing Hu }; 286*44a48a23SJiaxing Hu }; 287*44a48a23SJiaxing Hu 288*44a48a23SJiaxing Hu vdd_logic_s0: dcdc-reg7 { 289*44a48a23SJiaxing Hu regulator-always-on; 290*44a48a23SJiaxing Hu regulator-boot-on; 291*44a48a23SJiaxing Hu regulator-min-microvolt = <550000>; 292*44a48a23SJiaxing Hu regulator-max-microvolt = <800000>; 293*44a48a23SJiaxing Hu regulator-name = "vdd_logic_s0"; 294*44a48a23SJiaxing Hu 295*44a48a23SJiaxing Hu regulator-state-mem { 296*44a48a23SJiaxing Hu regulator-off-in-suspend; 297*44a48a23SJiaxing Hu }; 298*44a48a23SJiaxing Hu }; 299*44a48a23SJiaxing Hu 300*44a48a23SJiaxing Hu vcc_1v8_s3: dcdc-reg8 { 301*44a48a23SJiaxing Hu regulator-always-on; 302*44a48a23SJiaxing Hu regulator-boot-on; 303*44a48a23SJiaxing Hu regulator-min-microvolt = <1800000>; 304*44a48a23SJiaxing Hu regulator-max-microvolt = <1800000>; 305*44a48a23SJiaxing Hu regulator-name = "vcc_1v8_s3"; 306*44a48a23SJiaxing Hu 307*44a48a23SJiaxing Hu regulator-state-mem { 308*44a48a23SJiaxing Hu regulator-on-in-suspend; 309*44a48a23SJiaxing Hu }; 310*44a48a23SJiaxing Hu }; 311*44a48a23SJiaxing Hu 312*44a48a23SJiaxing Hu vdd2_ddr_s3: dcdc-reg9 { 313*44a48a23SJiaxing Hu regulator-always-on; 314*44a48a23SJiaxing Hu regulator-boot-on; 315*44a48a23SJiaxing Hu regulator-name = "vdd2_ddr_s3"; 316*44a48a23SJiaxing Hu 317*44a48a23SJiaxing Hu regulator-state-mem { 318*44a48a23SJiaxing Hu regulator-on-in-suspend; 319*44a48a23SJiaxing Hu }; 320*44a48a23SJiaxing Hu }; 321*44a48a23SJiaxing Hu 322*44a48a23SJiaxing Hu vdd_ddr_s0: dcdc-reg10 { 323*44a48a23SJiaxing Hu regulator-always-on; 324*44a48a23SJiaxing Hu regulator-boot-on; 325*44a48a23SJiaxing Hu regulator-min-microvolt = <550000>; 326*44a48a23SJiaxing Hu regulator-max-microvolt = <1200000>; 327*44a48a23SJiaxing Hu regulator-name = "vdd_ddr_s0"; 328*44a48a23SJiaxing Hu 329*44a48a23SJiaxing Hu regulator-state-mem { 330*44a48a23SJiaxing Hu regulator-off-in-suspend; 331*44a48a23SJiaxing Hu }; 332*44a48a23SJiaxing Hu }; 333*44a48a23SJiaxing Hu 334*44a48a23SJiaxing Hu vcca_1v8_s0: pldo-reg1 { 335*44a48a23SJiaxing Hu regulator-always-on; 336*44a48a23SJiaxing Hu regulator-boot-on; 337*44a48a23SJiaxing Hu regulator-min-microvolt = <1800000>; 338*44a48a23SJiaxing Hu regulator-max-microvolt = <1800000>; 339*44a48a23SJiaxing Hu regulator-name = "vcca_1v8_s0"; 340*44a48a23SJiaxing Hu 341*44a48a23SJiaxing Hu regulator-state-mem { 342*44a48a23SJiaxing Hu regulator-off-in-suspend; 343*44a48a23SJiaxing Hu }; 344*44a48a23SJiaxing Hu }; 345*44a48a23SJiaxing Hu 346*44a48a23SJiaxing Hu vcca1v8_pldo2_s0: pldo-reg2 { 347*44a48a23SJiaxing Hu regulator-always-on; 348*44a48a23SJiaxing Hu regulator-boot-on; 349*44a48a23SJiaxing Hu regulator-min-microvolt = <1800000>; 350*44a48a23SJiaxing Hu regulator-max-microvolt = <1800000>; 351*44a48a23SJiaxing Hu regulator-name = "vcca1v8_pldo2_s0"; 352*44a48a23SJiaxing Hu 353*44a48a23SJiaxing Hu regulator-state-mem { 354*44a48a23SJiaxing Hu regulator-off-in-suspend; 355*44a48a23SJiaxing Hu }; 356*44a48a23SJiaxing Hu }; 357*44a48a23SJiaxing Hu 358*44a48a23SJiaxing Hu vdda_1v2_s0: pldo-reg3 { 359*44a48a23SJiaxing Hu regulator-always-on; 360*44a48a23SJiaxing Hu regulator-boot-on; 361*44a48a23SJiaxing Hu regulator-min-microvolt = <1200000>; 362*44a48a23SJiaxing Hu regulator-max-microvolt = <1200000>; 363*44a48a23SJiaxing Hu regulator-name = "vdda_1v2_s0"; 364*44a48a23SJiaxing Hu 365*44a48a23SJiaxing Hu regulator-state-mem { 366*44a48a23SJiaxing Hu regulator-off-in-suspend; 367*44a48a23SJiaxing Hu }; 368*44a48a23SJiaxing Hu }; 369*44a48a23SJiaxing Hu 370*44a48a23SJiaxing Hu vcca_3v3_s0: pldo-reg4 { 371*44a48a23SJiaxing Hu regulator-always-on; 372*44a48a23SJiaxing Hu regulator-boot-on; 373*44a48a23SJiaxing Hu regulator-min-microvolt = <3300000>; 374*44a48a23SJiaxing Hu regulator-max-microvolt = <3300000>; 375*44a48a23SJiaxing Hu regulator-name = "vcca_3v3_s0"; 376*44a48a23SJiaxing Hu 377*44a48a23SJiaxing Hu regulator-state-mem { 378*44a48a23SJiaxing Hu regulator-off-in-suspend; 379*44a48a23SJiaxing Hu }; 380*44a48a23SJiaxing Hu }; 381*44a48a23SJiaxing Hu 382*44a48a23SJiaxing Hu vccio_sd_s0: pldo-reg5 { 383*44a48a23SJiaxing Hu regulator-always-on; 384*44a48a23SJiaxing Hu regulator-boot-on; 385*44a48a23SJiaxing Hu regulator-min-microvolt = <1800000>; 386*44a48a23SJiaxing Hu regulator-max-microvolt = <3300000>; 387*44a48a23SJiaxing Hu regulator-name = "vccio_sd_s0"; 388*44a48a23SJiaxing Hu 389*44a48a23SJiaxing Hu regulator-state-mem { 390*44a48a23SJiaxing Hu regulator-off-in-suspend; 391*44a48a23SJiaxing Hu }; 392*44a48a23SJiaxing Hu }; 393*44a48a23SJiaxing Hu 394*44a48a23SJiaxing Hu vcca1v8_pldo6_s3: pldo-reg6 { 395*44a48a23SJiaxing Hu regulator-always-on; 396*44a48a23SJiaxing Hu regulator-boot-on; 397*44a48a23SJiaxing Hu regulator-min-microvolt = <1800000>; 398*44a48a23SJiaxing Hu regulator-max-microvolt = <1800000>; 399*44a48a23SJiaxing Hu regulator-name = "vcca1v8_pldo6_s3"; 400*44a48a23SJiaxing Hu 401*44a48a23SJiaxing Hu regulator-state-mem { 402*44a48a23SJiaxing Hu regulator-on-in-suspend; 403*44a48a23SJiaxing Hu }; 404*44a48a23SJiaxing Hu }; 405*44a48a23SJiaxing Hu 406*44a48a23SJiaxing Hu vdd_0v75_s3: nldo-reg1 { 407*44a48a23SJiaxing Hu regulator-always-on; 408*44a48a23SJiaxing Hu regulator-boot-on; 409*44a48a23SJiaxing Hu regulator-min-microvolt = <750000>; 410*44a48a23SJiaxing Hu regulator-max-microvolt = <750000>; 411*44a48a23SJiaxing Hu regulator-name = "vdd_0v75_s3"; 412*44a48a23SJiaxing Hu 413*44a48a23SJiaxing Hu regulator-state-mem { 414*44a48a23SJiaxing Hu regulator-on-in-suspend; 415*44a48a23SJiaxing Hu }; 416*44a48a23SJiaxing Hu }; 417*44a48a23SJiaxing Hu 418*44a48a23SJiaxing Hu vdda_ddr_pll_s0: nldo-reg2 { 419*44a48a23SJiaxing Hu regulator-always-on; 420*44a48a23SJiaxing Hu regulator-boot-on; 421*44a48a23SJiaxing Hu regulator-min-microvolt = <850000>; 422*44a48a23SJiaxing Hu regulator-max-microvolt = <850000>; 423*44a48a23SJiaxing Hu regulator-name = "vdda_ddr_pll_s0"; 424*44a48a23SJiaxing Hu 425*44a48a23SJiaxing Hu regulator-state-mem { 426*44a48a23SJiaxing Hu regulator-off-in-suspend; 427*44a48a23SJiaxing Hu }; 428*44a48a23SJiaxing Hu }; 429*44a48a23SJiaxing Hu 430*44a48a23SJiaxing Hu vdda0v75_hdmi_s0: nldo-reg3 { 431*44a48a23SJiaxing Hu regulator-always-on; 432*44a48a23SJiaxing Hu regulator-boot-on; 433*44a48a23SJiaxing Hu regulator-min-microvolt = <837500>; 434*44a48a23SJiaxing Hu regulator-max-microvolt = <837500>; 435*44a48a23SJiaxing Hu regulator-name = "vdda0v75_hdmi_s0"; 436*44a48a23SJiaxing Hu 437*44a48a23SJiaxing Hu regulator-state-mem { 438*44a48a23SJiaxing Hu regulator-off-in-suspend; 439*44a48a23SJiaxing Hu }; 440*44a48a23SJiaxing Hu }; 441*44a48a23SJiaxing Hu 442*44a48a23SJiaxing Hu vdda_0v85_s0: nldo-reg4 { 443*44a48a23SJiaxing Hu regulator-always-on; 444*44a48a23SJiaxing Hu regulator-boot-on; 445*44a48a23SJiaxing Hu regulator-min-microvolt = <850000>; 446*44a48a23SJiaxing Hu regulator-max-microvolt = <850000>; 447*44a48a23SJiaxing Hu regulator-name = "vdda_0v85_s0"; 448*44a48a23SJiaxing Hu 449*44a48a23SJiaxing Hu regulator-state-mem { 450*44a48a23SJiaxing Hu regulator-off-in-suspend; 451*44a48a23SJiaxing Hu }; 452*44a48a23SJiaxing Hu }; 453*44a48a23SJiaxing Hu 454*44a48a23SJiaxing Hu vdda_0v75_s0: nldo-reg5 { 455*44a48a23SJiaxing Hu regulator-always-on; 456*44a48a23SJiaxing Hu regulator-boot-on; 457*44a48a23SJiaxing Hu regulator-min-microvolt = <750000>; 458*44a48a23SJiaxing Hu regulator-max-microvolt = <750000>; 459*44a48a23SJiaxing Hu regulator-name = "vdda_0v75_s0"; 460*44a48a23SJiaxing Hu 461*44a48a23SJiaxing Hu regulator-state-mem { 462*44a48a23SJiaxing Hu regulator-off-in-suspend; 463*44a48a23SJiaxing Hu }; 464*44a48a23SJiaxing Hu }; 465*44a48a23SJiaxing Hu }; 466*44a48a23SJiaxing Hu }; 467*44a48a23SJiaxing Hu}; 468*44a48a23SJiaxing Hu 469*44a48a23SJiaxing Hu/* I2C2: HYM8563 RTC @ 0x51 (interrupt on GPIO0 PA0). */ 470*44a48a23SJiaxing Hu&i2c2 { 471*44a48a23SJiaxing Hu status = "okay"; 472*44a48a23SJiaxing Hu 473*44a48a23SJiaxing Hu hym8563: rtc@51 { 474*44a48a23SJiaxing Hu compatible = "haoyu,hym8563"; 475*44a48a23SJiaxing Hu reg = <0x51>; 476*44a48a23SJiaxing Hu #clock-cells = <0>; 477*44a48a23SJiaxing Hu clock-output-names = "hym8563"; 478*44a48a23SJiaxing Hu interrupt-parent = <&gpio0>; 479*44a48a23SJiaxing Hu interrupts = <RK_PA0 IRQ_TYPE_LEVEL_LOW>; 480*44a48a23SJiaxing Hu pinctrl-names = "default"; 481*44a48a23SJiaxing Hu pinctrl-0 = <&hym8563_int>; 482*44a48a23SJiaxing Hu wakeup-source; 483*44a48a23SJiaxing Hu }; 484*44a48a23SJiaxing Hu}; 485*44a48a23SJiaxing Hu 486*44a48a23SJiaxing Hu/* 487*44a48a23SJiaxing Hu * The PHY reset has to be described at the MDIO bus level: mdiobus releases a 488*44a48a23SJiaxing Hu * bus level reset before it scans for PHY IDs, whereas the per-PHY reset-gpios 489*44a48a23SJiaxing Hu * is only applied by phylib once the PHY has already been found, which never 490*44a48a23SJiaxing Hu * happens while the YT8531 is still held in reset. 491*44a48a23SJiaxing Hu * 492*44a48a23SJiaxing Hu * The compatible names the YT8531 explicitly so phylib instantiates the PHY 493*44a48a23SJiaxing Hu * from the device tree without an MDIO ID probe; the crystal-less PHY does not 494*44a48a23SJiaxing Hu * answer on MDIO until its driver has enabled the reference clock below. 495*44a48a23SJiaxing Hu */ 496*44a48a23SJiaxing Hu&mdio0 { 497*44a48a23SJiaxing Hu reset-gpios = <&gpio2 RK_PB3 GPIO_ACTIVE_LOW>; 498*44a48a23SJiaxing Hu reset-delay-us = <20000>; 499*44a48a23SJiaxing Hu reset-post-delay-us = <100000>; 500*44a48a23SJiaxing Hu 501*44a48a23SJiaxing Hu rgmii_phy0: ethernet-phy@1 { 502*44a48a23SJiaxing Hu compatible = "ethernet-phy-id4f51.e91b"; 503*44a48a23SJiaxing Hu reg = <0x1>; 504*44a48a23SJiaxing Hu clocks = <&cru REFCLKO25M_GMAC0_OUT>; 505*44a48a23SJiaxing Hu }; 506*44a48a23SJiaxing Hu}; 507*44a48a23SJiaxing Hu 508*44a48a23SJiaxing Hu&saradc { 509*44a48a23SJiaxing Hu vref-supply = <&vcca_1v8_s0>; 510*44a48a23SJiaxing Hu status = "okay"; 511*44a48a23SJiaxing Hu}; 512*44a48a23SJiaxing Hu 513*44a48a23SJiaxing Hu/* eMMC: on-module, HS400 200 MHz with enhanced strobe. */ 514*44a48a23SJiaxing Hu&sdhci { 515*44a48a23SJiaxing Hu bus-width = <8>; 516*44a48a23SJiaxing Hu full-pwr-cycle-in-suspend; 517*44a48a23SJiaxing Hu max-frequency = <200000000>; 518*44a48a23SJiaxing Hu mmc-hs400-1_8v; 519*44a48a23SJiaxing Hu mmc-hs400-enhanced-strobe; 520*44a48a23SJiaxing Hu no-sdio; 521*44a48a23SJiaxing Hu no-sd; 522*44a48a23SJiaxing Hu non-removable; 523*44a48a23SJiaxing Hu /delete-property/ supports-cqe; 524*44a48a23SJiaxing Hu status = "okay"; 525*44a48a23SJiaxing Hu}; 526*44a48a23SJiaxing Hu 527*44a48a23SJiaxing Hu/* SDIO: SYN43752 WiFi, power-sequenced by sdio_pwrseq, clock from HYM8563. */ 528*44a48a23SJiaxing Hu&sdio { 529*44a48a23SJiaxing Hu bus-width = <4>; 530*44a48a23SJiaxing Hu cap-sdio-irq; 531*44a48a23SJiaxing Hu disable-wp; 532*44a48a23SJiaxing Hu keep-power-in-suspend; 533*44a48a23SJiaxing Hu mmc-pwrseq = <&sdio_pwrseq>; 534*44a48a23SJiaxing Hu no-sd; 535*44a48a23SJiaxing Hu no-mmc; 536*44a48a23SJiaxing Hu non-removable; 537*44a48a23SJiaxing Hu sd-uhs-sdr50; 538*44a48a23SJiaxing Hu sd-uhs-sdr104; 539*44a48a23SJiaxing Hu vmmc-supply = <&vcc_3v3_s3>; 540*44a48a23SJiaxing Hu vqmmc-supply = <&vcc_1v8_s3>; 541*44a48a23SJiaxing Hu wakeup-source; 542*44a48a23SJiaxing Hu status = "okay"; 543*44a48a23SJiaxing Hu}; 544*44a48a23SJiaxing Hu 545*44a48a23SJiaxing Hu/* UART4: Bluetooth (SYN43752). */ 546*44a48a23SJiaxing Hu&uart4 { 547*44a48a23SJiaxing Hu pinctrl-0 = <&uart4m1_xfer &uart4m1_ctsn &uart4m1_rtsn>; 548*44a48a23SJiaxing Hu pinctrl-names = "default"; 549*44a48a23SJiaxing Hu uart-has-rtscts; 550*44a48a23SJiaxing Hu status = "okay"; 551*44a48a23SJiaxing Hu}; 552*44a48a23SJiaxing Hu 553*44a48a23SJiaxing Hu&pinctrl { 554*44a48a23SJiaxing Hu hym8563 { 555*44a48a23SJiaxing Hu hym8563_int: hym8563-int { 556*44a48a23SJiaxing Hu rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; 557*44a48a23SJiaxing Hu }; 558*44a48a23SJiaxing Hu }; 559*44a48a23SJiaxing Hu 560*44a48a23SJiaxing Hu wireless-wlan { 561*44a48a23SJiaxing Hu /* GPIO1 PC6 - WiFi power enable / reset (sdio_pwrseq) */ 562*44a48a23SJiaxing Hu wifi_reg_on: wifi-reg-on { 563*44a48a23SJiaxing Hu rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>; 564*44a48a23SJiaxing Hu }; 565*44a48a23SJiaxing Hu }; 566*44a48a23SJiaxing Hu}; 567