1*4882a593SmuzhiyunRK816 Power Management Integrated Circuit 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunRequired properties: 4*4882a593Smuzhiyun- compatible: "rockchip,rk816" 5*4882a593Smuzhiyun- reg: I2C slave address 6*4882a593Smuzhiyun- interrupt-parent: The parent interrupt controller. 7*4882a593Smuzhiyun- interrupts: the interrupt outputs of the controller. 8*4882a593Smuzhiyun- #clock-cells: from common clock binding; shall be set to 1 (multiple clock 9*4882a593Smuzhiyun outputs). 10*4882a593Smuzhiyun 11*4882a593SmuzhiyunOptional properties: 12*4882a593Smuzhiyun- clock-output-names: From common clock binding to override the 13*4882a593Smuzhiyun default output clock name 14*4882a593Smuzhiyun- rockchip,system-power-controller: Telling whether or not this pmic is controlling 15*4882a593Smuzhiyun the system power. 16*4882a593Smuzhiyun- gpio-controller: Specifies that the node is a gpio controller when you attempt to 17*4882a593Smuzhiyun use the TS pin of RK816 by GPIO general interface. 18*4882a593Smuzhiyun- #gpio-cells: Should be two. The first cell is the GPIO number and the second cell 19*4882a593Smuzhiyun is used to specify the GPIO polarity. 20*4882a593Smuzhiyun- wakeup-source: Flag to indicate this device can wake system (suspend/resume) 21*4882a593Smuzhiyun- vcc1-supply: The input supply for DCDC_REG1 22*4882a593Smuzhiyun- vcc2-supply: The input supply for DCDC_REG2 23*4882a593Smuzhiyun- vcc3-supply: The input supply for DCDC_REG3 24*4882a593Smuzhiyun- vcc4-supply: The input supply for DCDC_REG4 25*4882a593Smuzhiyun- vcc5-supply: The input supply for LDO_REG1, LDO_REG2, LDO_REG3 26*4882a593Smuzhiyun- vcc6-supply: The input supply for LDO_REG4, LDO_REG5, LDO_REG6 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun- regulator-initial-mode: default mode to set on startup 29*4882a593Smuzhiyun- regulator-initial-mode is set as: 30*4882a593Smuzhiyun REGULATOR_MODE_FAST 0x1 31*4882a593Smuzhiyun REGULATOR_MODE_NORMAL 0x2 32*4882a593SmuzhiyunRegulators: All the regulators of RK816 to be instantiated shall be 33*4882a593Smuzhiyunlisted in a child node named 'regulators'. Each regulator is represented 34*4882a593Smuzhiyunby a child node of the 'regulators' node. 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun regulator-name { 37*4882a593Smuzhiyun /* standard regulator bindings here */ 38*4882a593Smuzhiyun }; 39*4882a593Smuzhiyun 40*4882a593SmuzhiyunFollowing regulators of the RK816 PMIC block are supported. Note that 41*4882a593Smuzhiyunthe 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO 42*4882a593Smuzhiyunnumber as described in RK816 datasheet. 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun - DCDC_REGn 45*4882a593Smuzhiyun - valid values for n are 1 to 4. 46*4882a593Smuzhiyun - LDO_REGn 47*4882a593Smuzhiyun - valid values for n are 1 to 6. 48*4882a593Smuzhiyun 49*4882a593SmuzhiyunStandard regulator bindings are used inside regulator subnodes. Check 50*4882a593Smuzhiyun Documentation/devicetree/bindings/regulator/regulator.txt 51*4882a593Smuzhiyunfor more details 52*4882a593Smuzhiyun 53*4882a593SmuzhiyunGpio, Rtc, Pwrkey: the node are represented like below. When you attempt to enable 54*4882a593Smuzhiyun the module, setting the "status" to be "okay", otherwise "disabled". 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun rtc { 57*4882a593Smuzhiyun status = "okay"; 58*4882a593Smuzhiyun }; 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun pwrkey { 61*4882a593Smuzhiyun status = "okay"; 62*4882a593Smuzhiyun }; 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun gpio { 65*4882a593Smuzhiyun status = "okay"; 66*4882a593Smuzhiyun }; 67*4882a593Smuzhiyun 68*4882a593SmuzhiyunExample: 69*4882a593Smuzhiyun rk816: pmic@1a { 70*4882a593Smuzhiyun compatible = "rockchip,rk816"; 71*4882a593Smuzhiyun status = "disabled"; 72*4882a593Smuzhiyun reg = <0x1a>; 73*4882a593Smuzhiyun clock-output-names = "xin32k", "wifibt_32kin"; 74*4882a593Smuzhiyun interrupt-parent = <&gpio0>; 75*4882a593Smuzhiyun interrupts = <1 IRQ_TYPE_LEVEL_LOW>; 76*4882a593Smuzhiyun pinctrl-names = "default"; 77*4882a593Smuzhiyun pinctrl-0 = <&pmic_int>; 78*4882a593Smuzhiyun rockchip,system-power-controller; 79*4882a593Smuzhiyun wakeup-source; 80*4882a593Smuzhiyun #clock-cells = <1>; 81*4882a593Smuzhiyun gpio-controller; 82*4882a593Smuzhiyun #gpio-cells = <2>; 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun vcc1-supply = <&vcc_sys>; 85*4882a593Smuzhiyun vcc2-supply = <&vcc_sys>; 86*4882a593Smuzhiyun vcc3-supply = <&vcc_sys>; 87*4882a593Smuzhiyun vcc4-supply = <&vcc_sys>; 88*4882a593Smuzhiyun vcc5-supply = <&vcc_sys>; 89*4882a593Smuzhiyun vcc6-supply = <&vcc_sys>; 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun rtc { 92*4882a593Smuzhiyun status = "okay"; 93*4882a593Smuzhiyun }; 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun pwrkey { 96*4882a593Smuzhiyun status = "okay"; 97*4882a593Smuzhiyun }; 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun gpio { 100*4882a593Smuzhiyun status = "okay"; 101*4882a593Smuzhiyun }; 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun regulators { 104*4882a593Smuzhiyun vdd_cpu: DCDC_REG1 { 105*4882a593Smuzhiyun regulator-name = "vdd_logic"; 106*4882a593Smuzhiyun regulator-always-on; 107*4882a593Smuzhiyun regulator-boot-on; 108*4882a593Smuzhiyun regulator-min-microvolt = <750000>; 109*4882a593Smuzhiyun regulator-max-microvolt = <1450000>; 110*4882a593Smuzhiyun regulator-ramp-delay = <6001>; 111*4882a593Smuzhiyun regulator-initial-mode = <1>; 112*4882a593Smuzhiyun regulator-state-mem { 113*4882a593Smuzhiyun regulator-off-in-suspend; 114*4882a593Smuzhiyun }; 115*4882a593Smuzhiyun }; 116*4882a593Smuzhiyun vdd_gpu: DCDC_REG2 { 117*4882a593Smuzhiyun regulator-name = "vdd_gpu"; 118*4882a593Smuzhiyun regulator-always-on; 119*4882a593Smuzhiyun regulator-boot-on; 120*4882a593Smuzhiyun regulator-min-microvolt = <800000>; 121*4882a593Smuzhiyun regulator-max-microvolt = <1250000>; 122*4882a593Smuzhiyun regulator-ramp-delay = <6001>; 123*4882a593Smuzhiyun regulator-initial-mode = <1>; 124*4882a593Smuzhiyun regulator-state-mem { 125*4882a593Smuzhiyun regulator-on-in-suspend; 126*4882a593Smuzhiyun regulator-suspend-microvolt = <1000000>; 127*4882a593Smuzhiyun }; 128*4882a593Smuzhiyun }; 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun vcc_ddr: DCDC_REG3 { 131*4882a593Smuzhiyun regulator-always-on; 132*4882a593Smuzhiyun regulator-boot-on; 133*4882a593Smuzhiyun regulator-name = "vcc_ddr"; 134*4882a593Smuzhiyun regulator-initial-mode = <1>; 135*4882a593Smuzhiyun regulator-state-mem { 136*4882a593Smuzhiyun regulator-on-in-suspend; 137*4882a593Smuzhiyun }; 138*4882a593Smuzhiyun }; 139*4882a593Smuzhiyun 140*4882a593Smuzhiyun vcc33_io: DCDC_REG4 { 141*4882a593Smuzhiyun regulator-always-on; 142*4882a593Smuzhiyun regulator-boot-on; 143*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 144*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 145*4882a593Smuzhiyun regulator-name = "vcc33_io"; 146*4882a593Smuzhiyun regulator-initial-mode = <1>; 147*4882a593Smuzhiyun regulator-state-mem { 148*4882a593Smuzhiyun regulator-on-in-suspend; 149*4882a593Smuzhiyun regulator-suspend-microvolt = <3300000>; 150*4882a593Smuzhiyun }; 151*4882a593Smuzhiyun }; 152*4882a593Smuzhiyun 153*4882a593Smuzhiyun vccio_pmu: LDO_REG1 { 154*4882a593Smuzhiyun regulator-always-on; 155*4882a593Smuzhiyun regulator-boot-on; 156*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 157*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 158*4882a593Smuzhiyun regulator-name = "vccio_pmu"; 159*4882a593Smuzhiyun regulator-state-mem { 160*4882a593Smuzhiyun regulator-on-in-suspend; 161*4882a593Smuzhiyun regulator-suspend-microvolt = <3300000>; 162*4882a593Smuzhiyun }; 163*4882a593Smuzhiyun }; 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun vcc_tp: LDO_REG2 { 166*4882a593Smuzhiyun regulator-always-on; 167*4882a593Smuzhiyun regulator-boot-on; 168*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 169*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 170*4882a593Smuzhiyun regulator-name = "vcc_tp"; 171*4882a593Smuzhiyun regulator-state-mem { 172*4882a593Smuzhiyun regulator-off-in-suspend; 173*4882a593Smuzhiyun }; 174*4882a593Smuzhiyun }; 175*4882a593Smuzhiyun 176*4882a593Smuzhiyun vdd_10: LDO_REG3 { 177*4882a593Smuzhiyun regulator-always-on; 178*4882a593Smuzhiyun regulator-boot-on; 179*4882a593Smuzhiyun regulator-min-microvolt = <1000000>; 180*4882a593Smuzhiyun regulator-max-microvolt = <1000000>; 181*4882a593Smuzhiyun regulator-name = "vdd_10"; 182*4882a593Smuzhiyun regulator-state-mem { 183*4882a593Smuzhiyun regulator-on-in-suspend; 184*4882a593Smuzhiyun regulator-suspend-microvolt = <1000000>; 185*4882a593Smuzhiyun }; 186*4882a593Smuzhiyun }; 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun vcc18_lcd: LDO_REG4 { 189*4882a593Smuzhiyun regulator-always-on; 190*4882a593Smuzhiyun regulator-boot-on; 191*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 192*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 193*4882a593Smuzhiyun regulator-name = "vcc18_lcd"; 194*4882a593Smuzhiyun regulator-state-mem { 195*4882a593Smuzhiyun regulator-on-in-suspend; 196*4882a593Smuzhiyun regulator-suspend-microvolt = <1800000>; 197*4882a593Smuzhiyun }; 198*4882a593Smuzhiyun }; 199*4882a593Smuzhiyun 200*4882a593Smuzhiyun vccio_sd: LDO_REG5 { 201*4882a593Smuzhiyun regulator-always-on; 202*4882a593Smuzhiyun regulator-boot-on; 203*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 204*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 205*4882a593Smuzhiyun regulator-name = "vccio_sd"; 206*4882a593Smuzhiyun regulator-state-mem { 207*4882a593Smuzhiyun regulator-on-in-suspend; 208*4882a593Smuzhiyun regulator-suspend-microvolt = <3300000>; 209*4882a593Smuzhiyun }; 210*4882a593Smuzhiyun }; 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun vdd10_lcd: LDO_REG6 { 213*4882a593Smuzhiyun regulator-always-on; 214*4882a593Smuzhiyun regulator-boot-on; 215*4882a593Smuzhiyun regulator-min-microvolt = <1000000>; 216*4882a593Smuzhiyun regulator-max-microvolt = <1000000>; 217*4882a593Smuzhiyun regulator-name = "vdd10_lcd"; 218*4882a593Smuzhiyun regulator-state-mem { 219*4882a593Smuzhiyun regulator-on-in-suspend; 220*4882a593Smuzhiyun regulator-suspend-microvolt = <1000000>; 221*4882a593Smuzhiyun }; 222*4882a593Smuzhiyun }; 223*4882a593Smuzhiyun 224*4882a593Smuzhiyun }; 225*4882a593Smuzhiyun }; 226