1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Copyright (c) 2022 Rockchip Electronics Co., Ltd. 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h> 8*4882a593Smuzhiyun#include <dt-bindings/pinctrl/rockchip.h> 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun&i2c0 { 11*4882a593Smuzhiyun status = "okay"; 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun rk817: pmic@20 { 14*4882a593Smuzhiyun compatible = "rockchip,rk817"; 15*4882a593Smuzhiyun reg = <0x20>; 16*4882a593Smuzhiyun interrupt-parent = <&gpio0>; 17*4882a593Smuzhiyun interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun pinctrl-names = "default", "pmic-sleep", 20*4882a593Smuzhiyun "pmic-power-off", "pmic-reset"; 21*4882a593Smuzhiyun pinctrl-0 = <&pmic_int>; 22*4882a593Smuzhiyun pinctrl-1 = <&soc_slppin_slp>, <&rk817_slppin_slp>; 23*4882a593Smuzhiyun pinctrl-2 = <&soc_slppin_gpio>, <&rk817_slppin_pwrdn>; 24*4882a593Smuzhiyun pinctrl-3 = <&soc_slppin_gpio>, <&rk817_slppin_rst>; 25*4882a593Smuzhiyun rockchip,system-power-controller; 26*4882a593Smuzhiyun wakeup-source; 27*4882a593Smuzhiyun #clock-cells = <1>; 28*4882a593Smuzhiyun clock-output-names = "rk808-clkout1", "rk808-clkout2"; 29*4882a593Smuzhiyun /* 1: rst regs (default in codes), 0: rst the pmic */ 30*4882a593Smuzhiyun pmic-reset-func = <0>; 31*4882a593Smuzhiyun vcc1-supply = <&vcc_sys>; 32*4882a593Smuzhiyun vcc2-supply = <&vcc_sys>; 33*4882a593Smuzhiyun vcc3-supply = <&vcc_sys>; 34*4882a593Smuzhiyun vcc4-supply = <&vcc_sys>; 35*4882a593Smuzhiyun vcc5-supply = <&vcc_sys>; 36*4882a593Smuzhiyun vcc6-supply = <&vcc_sys>; 37*4882a593Smuzhiyun vcc7-supply = <&vcc_sys>; 38*4882a593Smuzhiyun vcc8-supply = <&vcc_sys>; 39*4882a593Smuzhiyun vcc9-supply = <&dcdc_boost>; 40*4882a593Smuzhiyun pwrkey { 41*4882a593Smuzhiyun status = "okay"; 42*4882a593Smuzhiyun }; 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun pinctrl_rk8xx: pinctrl_rk8xx { 45*4882a593Smuzhiyun gpio-controller; 46*4882a593Smuzhiyun #gpio-cells = <2>; 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun rk817_slppin_null: rk817_slppin_null { 49*4882a593Smuzhiyun pins = "gpio_slp"; 50*4882a593Smuzhiyun function = "pin_fun0"; 51*4882a593Smuzhiyun }; 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun rk817_slppin_slp: rk817_slppin_slp { 54*4882a593Smuzhiyun pins = "gpio_slp"; 55*4882a593Smuzhiyun function = "pin_fun1"; 56*4882a593Smuzhiyun }; 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun rk817_slppin_pwrdn: rk817_slppin_pwrdn { 59*4882a593Smuzhiyun pins = "gpio_slp"; 60*4882a593Smuzhiyun function = "pin_fun2"; 61*4882a593Smuzhiyun }; 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun rk817_slppin_rst: rk817_slppin_rst { 64*4882a593Smuzhiyun pins = "gpio_slp"; 65*4882a593Smuzhiyun function = "pin_fun3"; 66*4882a593Smuzhiyun }; 67*4882a593Smuzhiyun }; 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun regulators { 70*4882a593Smuzhiyun vdd_logic: DCDC_REG1 { 71*4882a593Smuzhiyun regulator-always-on; 72*4882a593Smuzhiyun regulator-boot-on; 73*4882a593Smuzhiyun regulator-min-microvolt = <500000>; 74*4882a593Smuzhiyun regulator-max-microvolt = <1350000>; 75*4882a593Smuzhiyun regulator-init-microvolt = <900000>; 76*4882a593Smuzhiyun regulator-ramp-delay = <6001>; 77*4882a593Smuzhiyun regulator-initial-mode = <0x2>; 78*4882a593Smuzhiyun regulator-name = "vdd_logic"; 79*4882a593Smuzhiyun regulator-state-mem { 80*4882a593Smuzhiyun regulator-off-in-suspend; 81*4882a593Smuzhiyun regulator-suspend-microvolt = <900000>; 82*4882a593Smuzhiyun }; 83*4882a593Smuzhiyun }; 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun vdd_cpu: DCDC_REG2 { 86*4882a593Smuzhiyun regulator-always-on; 87*4882a593Smuzhiyun regulator-boot-on; 88*4882a593Smuzhiyun regulator-min-microvolt = <500000>; 89*4882a593Smuzhiyun regulator-max-microvolt = <1350000>; 90*4882a593Smuzhiyun regulator-init-microvolt = <900000>; 91*4882a593Smuzhiyun regulator-ramp-delay = <6001>; 92*4882a593Smuzhiyun regulator-initial-mode = <0x2>; 93*4882a593Smuzhiyun regulator-name = "vdd_cpu"; 94*4882a593Smuzhiyun regulator-state-mem { 95*4882a593Smuzhiyun regulator-off-in-suspend; 96*4882a593Smuzhiyun }; 97*4882a593Smuzhiyun }; 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun vcc_ddr: DCDC_REG3 { 100*4882a593Smuzhiyun regulator-always-on; 101*4882a593Smuzhiyun regulator-boot-on; 102*4882a593Smuzhiyun regulator-initial-mode = <0x2>; 103*4882a593Smuzhiyun regulator-name = "vcc_ddr"; 104*4882a593Smuzhiyun regulator-state-mem { 105*4882a593Smuzhiyun regulator-on-in-suspend; 106*4882a593Smuzhiyun }; 107*4882a593Smuzhiyun }; 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun vcc_3v3: DCDC_REG4 { 110*4882a593Smuzhiyun regulator-always-on; 111*4882a593Smuzhiyun regulator-boot-on; 112*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 113*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 114*4882a593Smuzhiyun regulator-initial-mode = <0x2>; 115*4882a593Smuzhiyun regulator-name = "vcc_3v3"; 116*4882a593Smuzhiyun regulator-state-mem { 117*4882a593Smuzhiyun regulator-off-in-suspend; 118*4882a593Smuzhiyun }; 119*4882a593Smuzhiyun }; 120*4882a593Smuzhiyun 121*4882a593Smuzhiyun vcca1v8_pmu: LDO_REG1 { 122*4882a593Smuzhiyun regulator-always-on; 123*4882a593Smuzhiyun regulator-boot-on; 124*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 125*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 126*4882a593Smuzhiyun regulator-name = "vcca1v8_pmu"; 127*4882a593Smuzhiyun regulator-state-mem { 128*4882a593Smuzhiyun regulator-on-in-suspend; 129*4882a593Smuzhiyun regulator-suspend-microvolt = <1800000>; 130*4882a593Smuzhiyun }; 131*4882a593Smuzhiyun }; 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun vdda_0v9: LDO_REG2 { 134*4882a593Smuzhiyun regulator-always-on; 135*4882a593Smuzhiyun regulator-boot-on; 136*4882a593Smuzhiyun regulator-min-microvolt = <900000>; 137*4882a593Smuzhiyun regulator-max-microvolt = <900000>; 138*4882a593Smuzhiyun regulator-name = "vdda_0v9"; 139*4882a593Smuzhiyun regulator-state-mem { 140*4882a593Smuzhiyun regulator-off-in-suspend; 141*4882a593Smuzhiyun }; 142*4882a593Smuzhiyun }; 143*4882a593Smuzhiyun 144*4882a593Smuzhiyun vdda0v9_pmu: LDO_REG3 { 145*4882a593Smuzhiyun regulator-always-on; 146*4882a593Smuzhiyun regulator-boot-on; 147*4882a593Smuzhiyun regulator-min-microvolt = <900000>; 148*4882a593Smuzhiyun regulator-max-microvolt = <900000>; 149*4882a593Smuzhiyun regulator-name = "vdda0v9_pmu"; 150*4882a593Smuzhiyun regulator-state-mem { 151*4882a593Smuzhiyun regulator-on-in-suspend; 152*4882a593Smuzhiyun regulator-suspend-microvolt = <900000>; 153*4882a593Smuzhiyun }; 154*4882a593Smuzhiyun }; 155*4882a593Smuzhiyun 156*4882a593Smuzhiyun vccio_acodec: LDO_REG4 { 157*4882a593Smuzhiyun regulator-always-on; 158*4882a593Smuzhiyun regulator-boot-on; 159*4882a593Smuzhiyun regulator-min-microvolt = <3000000>; 160*4882a593Smuzhiyun regulator-max-microvolt = <3000000>; 161*4882a593Smuzhiyun regulator-name = "vccio_acodec"; 162*4882a593Smuzhiyun regulator-state-mem { 163*4882a593Smuzhiyun regulator-off-in-suspend; 164*4882a593Smuzhiyun }; 165*4882a593Smuzhiyun }; 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun vccio_sd: LDO_REG5 { 168*4882a593Smuzhiyun regulator-always-on; 169*4882a593Smuzhiyun regulator-boot-on; 170*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 171*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 172*4882a593Smuzhiyun regulator-name = "vccio_sd"; 173*4882a593Smuzhiyun regulator-state-mem { 174*4882a593Smuzhiyun regulator-off-in-suspend; 175*4882a593Smuzhiyun }; 176*4882a593Smuzhiyun }; 177*4882a593Smuzhiyun 178*4882a593Smuzhiyun vcc3v3_pmu: LDO_REG6 { 179*4882a593Smuzhiyun regulator-always-on; 180*4882a593Smuzhiyun regulator-boot-on; 181*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 182*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 183*4882a593Smuzhiyun regulator-name = "vcc3v3_pmu"; 184*4882a593Smuzhiyun regulator-state-mem { 185*4882a593Smuzhiyun regulator-on-in-suspend; 186*4882a593Smuzhiyun regulator-suspend-microvolt = <3000000>; 187*4882a593Smuzhiyun }; 188*4882a593Smuzhiyun }; 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun vcc_1v8: LDO_REG7 { 191*4882a593Smuzhiyun regulator-always-on; 192*4882a593Smuzhiyun regulator-boot-on; 193*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 194*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 195*4882a593Smuzhiyun regulator-name = "vcc_1v8"; 196*4882a593Smuzhiyun regulator-state-mem { 197*4882a593Smuzhiyun regulator-off-in-suspend; 198*4882a593Smuzhiyun }; 199*4882a593Smuzhiyun }; 200*4882a593Smuzhiyun 201*4882a593Smuzhiyun vcc1v8_dvp: LDO_REG8 { 202*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 203*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 204*4882a593Smuzhiyun regulator-name = "vcc1v8_dvp"; 205*4882a593Smuzhiyun regulator-state-mem { 206*4882a593Smuzhiyun regulator-off-in-suspend; 207*4882a593Smuzhiyun }; 208*4882a593Smuzhiyun }; 209*4882a593Smuzhiyun 210*4882a593Smuzhiyun vcc2v8_dvp: LDO_REG9 { 211*4882a593Smuzhiyun regulator-min-microvolt = <2800000>; 212*4882a593Smuzhiyun regulator-max-microvolt = <2800000>; 213*4882a593Smuzhiyun regulator-name = "vcc2v8_dvp"; 214*4882a593Smuzhiyun regulator-state-mem { 215*4882a593Smuzhiyun regulator-off-in-suspend; 216*4882a593Smuzhiyun }; 217*4882a593Smuzhiyun }; 218*4882a593Smuzhiyun 219*4882a593Smuzhiyun dcdc_boost: BOOST { 220*4882a593Smuzhiyun regulator-always-on; 221*4882a593Smuzhiyun regulator-boot-on; 222*4882a593Smuzhiyun regulator-min-microvolt = <4700000>; 223*4882a593Smuzhiyun regulator-max-microvolt = <5400000>; 224*4882a593Smuzhiyun regulator-name = "boost"; 225*4882a593Smuzhiyun regulator-state-mem { 226*4882a593Smuzhiyun regulator-off-in-suspend; 227*4882a593Smuzhiyun }; 228*4882a593Smuzhiyun }; 229*4882a593Smuzhiyun 230*4882a593Smuzhiyun otg_switch: OTG_SWITCH { 231*4882a593Smuzhiyun regulator-name = "otg_switch"; 232*4882a593Smuzhiyun regulator-state-mem { 233*4882a593Smuzhiyun regulator-off-in-suspend; 234*4882a593Smuzhiyun }; 235*4882a593Smuzhiyun }; 236*4882a593Smuzhiyun }; 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun rk817_codec: codec { 239*4882a593Smuzhiyun #sound-dai-cells = <0>; 240*4882a593Smuzhiyun compatible = "rockchip,rk817-codec"; 241*4882a593Smuzhiyun clocks = <&mclkout_sai0>; 242*4882a593Smuzhiyun clock-names = "mclk"; 243*4882a593Smuzhiyun assigned-clocks = <&mclkout_sai0>; 244*4882a593Smuzhiyun assigned-clock-rates = <12288000>; 245*4882a593Smuzhiyun pinctrl-names = "default"; 246*4882a593Smuzhiyun pinctrl-0 = <&i2s0m0_mclk>; 247*4882a593Smuzhiyun hp-volume = <20>; 248*4882a593Smuzhiyun spk-volume = <3>; 249*4882a593Smuzhiyun mic-in-differential; 250*4882a593Smuzhiyun status = "okay"; 251*4882a593Smuzhiyun }; 252*4882a593Smuzhiyun }; 253*4882a593Smuzhiyun}; 254