RK816 Power Management Integrated Circuit Required properties: - compatible: "rockchip,rk816" - reg: I2C slave address - interrupt-parent: The parent interrupt controller. - interrupts: the interrupt outputs of the controller. - #clock-cells: from common clock binding; shall be set to 1 (multiple clock outputs). Optional properties: - clock-output-names: From common clock binding to override the default output clock name - rockchip,system-power-controller: Telling whether or not this pmic is controlling the system power. - gpio-controller: Specifies that the node is a gpio controller when you attempt to use the TS pin of RK816 by GPIO general interface. - #gpio-cells: Should be two. The first cell is the GPIO number and the second cell is used to specify the GPIO polarity. - wakeup-source: Flag to indicate this device can wake system (suspend/resume) - vcc1-supply: The input supply for DCDC_REG1 - vcc2-supply: The input supply for DCDC_REG2 - vcc3-supply: The input supply for DCDC_REG3 - vcc4-supply: The input supply for DCDC_REG4 - vcc5-supply: The input supply for LDO_REG1, LDO_REG2, LDO_REG3 - vcc6-supply: The input supply for LDO_REG4, LDO_REG5, LDO_REG6 - regulator-initial-mode: default mode to set on startup - regulator-initial-mode is set as: REGULATOR_MODE_FAST 0x1 REGULATOR_MODE_NORMAL 0x2 Regulators: All the regulators of RK816 to be instantiated shall be listed in a child node named 'regulators'. Each regulator is represented by a child node of the 'regulators' node. regulator-name { /* standard regulator bindings here */ }; Following regulators of the RK816 PMIC block are supported. Note that the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO number as described in RK816 datasheet. - DCDC_REGn - valid values for n are 1 to 4. - LDO_REGn - valid values for n are 1 to 6. Standard regulator bindings are used inside regulator subnodes. Check Documentation/devicetree/bindings/regulator/regulator.txt for more details Gpio, Rtc, Pwrkey: the node are represented like below. When you attempt to enable the module, setting the "status" to be "okay", otherwise "disabled". rtc { status = "okay"; }; pwrkey { status = "okay"; }; gpio { status = "okay"; }; Example: rk816: pmic@1a { compatible = "rockchip,rk816"; status = "disabled"; reg = <0x1a>; clock-output-names = "xin32k", "wifibt_32kin"; interrupt-parent = <&gpio0>; interrupts = <1 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&pmic_int>; rockchip,system-power-controller; wakeup-source; #clock-cells = <1>; gpio-controller; #gpio-cells = <2>; vcc1-supply = <&vcc_sys>; vcc2-supply = <&vcc_sys>; vcc3-supply = <&vcc_sys>; vcc4-supply = <&vcc_sys>; vcc5-supply = <&vcc_sys>; vcc6-supply = <&vcc_sys>; rtc { status = "okay"; }; pwrkey { status = "okay"; }; gpio { status = "okay"; }; regulators { vdd_cpu: DCDC_REG1 { regulator-name = "vdd_logic"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <750000>; regulator-max-microvolt = <1450000>; regulator-ramp-delay = <6001>; regulator-initial-mode = <1>; regulator-state-mem { regulator-off-in-suspend; }; }; vdd_gpu: DCDC_REG2 { regulator-name = "vdd_gpu"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <800000>; regulator-max-microvolt = <1250000>; regulator-ramp-delay = <6001>; regulator-initial-mode = <1>; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1000000>; }; }; vcc_ddr: DCDC_REG3 { regulator-always-on; regulator-boot-on; regulator-name = "vcc_ddr"; regulator-initial-mode = <1>; regulator-state-mem { regulator-on-in-suspend; }; }; vcc33_io: DCDC_REG4 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc33_io"; regulator-initial-mode = <1>; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3300000>; }; }; vccio_pmu: LDO_REG1 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vccio_pmu"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3300000>; }; }; vcc_tp: LDO_REG2 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc_tp"; regulator-state-mem { regulator-off-in-suspend; }; }; vdd_10: LDO_REG3 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; regulator-name = "vdd_10"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1000000>; }; }; vcc18_lcd: LDO_REG4 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-name = "vcc18_lcd"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1800000>; }; }; vccio_sd: LDO_REG5 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-name = "vccio_sd"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3300000>; }; }; vdd10_lcd: LDO_REG6 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; regulator-name = "vdd10_lcd"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1000000>; }; }; }; };