| RK8XX Power Management Integrated Circuit |
| |
| The rk8xx family current members: |
| rk805 |
| rk808 |
| rk809 |
| rk817 |
| rk818 |
| |
| Required properties: |
| - compatible: "rockchip,rk805" |
| - compatible: "rockchip,rk808" |
| - compatible: "rockchip,rk809" |
| - compatible: "rockchip,rk817" |
| - compatible: "rockchip,rk818" |
| - reg: I2C slave address |
| - interrupts: the interrupt outputs of the controller. |
| - #clock-cells: from common clock binding; shall be set to 1 (multiple clock |
| outputs). See <dt-bindings/clock/rockchip,rk808.h> for clock IDs. |
| |
| 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. |
| - wakeup-source: Device can be used as a wakeup source. |
| |
| Optional RK805 properties: |
| - 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 and LDO_REG2 |
| - vcc6-supply: The input supply for LDO_REG3 |
| |
| Optional RK808 properties: |
| - 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 |
| - vcc6-supply: The input supply for LDO_REG1 and LDO_REG2 |
| - vcc7-supply: The input supply for LDO_REG3 and LDO_REG7 |
| - vcc8-supply: The input supply for SWITCH_REG1 |
| - vcc9-supply: The input supply for LDO_REG4 and LDO_REG5 |
| - vcc10-supply: The input supply for LDO_REG6 |
| - vcc11-supply: The input supply for LDO_REG8 |
| - vcc12-supply: The input supply for SWITCH_REG2 |
| - dvs-gpios: buck1/2 can be controlled by gpio dvs, this is GPIO specifiers |
| for 2 host gpio's used for dvs. The format of the gpio specifier depends in |
| the gpio controller. If DVS GPIOs aren't present, voltage changes will happen |
| very quickly with no slow ramp time. |
| |
| Optional shared RK809 and RK817 properties: |
| - 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 |
| - vcc7-supply: The input supply for LDO_REG7, LDO_REG8, LDO_REG9 |
| |
| Optional RK809 properties: |
| - vcc8-supply: The input supply for SWITCH_REG1 |
| - vcc9-supply: The input supply for DCDC_REG5, SWITCH_REG2 |
| |
| Optional RK817 properties: |
| - clocks: The input clock for the audio codec |
| - clock-names: The clock name for the codec clock. Should be "mclk". |
| - #sound-dai-cells: Needed for the interpretation of sound dais. Should be 0. |
| |
| - vcc8-supply: The input supply for BOOST |
| - vcc9-supply: The input supply for OTG_SWITCH |
| - codec: The child node for the codec to hold additional properties. |
| If no additional properties are required for the codec, this |
| node can be omitted. |
| |
| - rockchip,mic-in-differential: Telling if the microphone uses differential |
| mode. Should be under the codec child node. |
| |
| Optional RK818 properties: |
| - 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 |
| - boost-supply: The input supply for DCDC_BOOST |
| - vcc6-supply: The input supply for LDO_REG1 and LDO_REG2 |
| - vcc7-supply: The input supply for LDO_REG3, LDO_REG5 and LDO_REG7 |
| - vcc8-supply: The input supply for LDO_REG4, LDO_REG6 and LDO_REG8 |
| - vcc9-supply: The input supply for LDO_REG9 and SWITCH_REG |
| - h_5v-supply: The input supply for HDMI_SWITCH |
| - usb-supply: The input supply for OTG_SWITCH |
| |
| Regulators: All the regulators of RK8XX 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 RK805 PMIC regulators are supported. Note that |
| the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO |
| number as described in RK805 datasheet. |
| |
| - DCDC_REGn |
| - valid values for n are 1 to 4. |
| - LDO_REGn |
| - valid values for n are 1 to 3 |
| |
| Following regulators of the RK808 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 RK808 datasheet. |
| |
| - DCDC_REGn |
| - valid values for n are 1 to 4. |
| - LDO_REGn |
| - valid values for n are 1 to 8. |
| - SWITCH_REGn |
| - valid values for n are 1 to 2 |
| |
| Following regulators of the RK809 and RK817 PMIC blocks are supported. Note that |
| the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO |
| number as described in RK809 and RK817 datasheets. |
| |
| - DCDC_REGn |
| - valid values for n are 1 to 5 for RK809. |
| - valid values for n are 1 to 4 for RK817. |
| - LDO_REGn |
| - valid values for n are 1 to 9 for RK809. |
| - valid values for n are 1 to 9 for RK817. |
| - SWITCH_REGn |
| - valid values for n are 1 to 2 for RK809. |
| - BOOST for RK817 |
| - OTG_SWITCH for RK817 |
| |
| Following regulators of the RK818 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 RK818 datasheet. |
| |
| - DCDC_REGn |
| - valid values for n are 1 to 4. |
| - LDO_REGn |
| - valid values for n are 1 to 9. |
| - SWITCH_REG |
| - HDMI_SWITCH |
| - OTG_SWITCH |
| |
| It is necessary to configure three pins for both the RK809 and RK817, the three |
| pins are "gpio_ts" "gpio_gt" "gpio_slp". |
| The gpio_gt and gpio_ts pins support the gpio function. |
| The gpio_slp pin is for controlling the pmic states, as below: |
| - reset |
| - power down |
| - sleep |
| |
| Standard regulator bindings are used inside regulator subnodes. Check |
| Documentation/devicetree/bindings/regulator/regulator.txt |
| for more details |
| |
| Example: |
| rk808: pmic@1b { |
| compatible = "rockchip,rk808"; |
| clock-output-names = "xin32k", "rk808-clkout2"; |
| interrupt-parent = <&gpio0>; |
| interrupts = <4 IRQ_TYPE_LEVEL_LOW>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pmic_int &dvs_1 &dvs_2>; |
| dvs-gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>, |
| <&gpio7 15 GPIO_ACTIVE_HIGH>; |
| reg = <0x1b>; |
| rockchip,system-power-controller; |
| wakeup-source; |
| #clock-cells = <1>; |
| |
| vcc8-supply = <&vcc_18>; |
| vcc9-supply = <&vcc_io>; |
| vcc10-supply = <&vcc_io>; |
| vcc12-supply = <&vcc_io>; |
| vddio-supply = <&vccio_pmu>; |
| |
| regulators { |
| vdd_cpu: DCDC_REG1 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-min-microvolt = <750000>; |
| regulator-max-microvolt = <1300000>; |
| regulator-name = "vdd_arm"; |
| }; |
| |
| vdd_gpu: DCDC_REG2 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-min-microvolt = <850000>; |
| regulator-max-microvolt = <1250000>; |
| regulator-name = "vdd_gpu"; |
| }; |
| |
| vcc_ddr: DCDC_REG3 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-name = "vcc_ddr"; |
| }; |
| |
| vcc_io: DCDC_REG4 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-name = "vcc_io"; |
| }; |
| |
| vccio_pmu: LDO_REG1 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-name = "vccio_pmu"; |
| }; |
| |
| vcc_tp: LDO_REG2 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-name = "vcc_tp"; |
| }; |
| |
| vdd_10: LDO_REG3 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-min-microvolt = <1000000>; |
| regulator-max-microvolt = <1000000>; |
| regulator-name = "vdd_10"; |
| }; |
| |
| vcc18_lcd: LDO_REG4 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-name = "vcc18_lcd"; |
| }; |
| |
| vccio_sd: LDO_REG5 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-name = "vccio_sd"; |
| }; |
| |
| vdd10_lcd: LDO_REG6 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-min-microvolt = <1000000>; |
| regulator-max-microvolt = <1000000>; |
| regulator-name = "vdd10_lcd"; |
| }; |
| |
| vcc_18: LDO_REG7 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-name = "vcc_18"; |
| }; |
| |
| vcca_codec: LDO_REG8 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-name = "vcca_codec"; |
| }; |
| |
| vcc_wl: SWITCH_REG1 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-name = "vcc_wl"; |
| }; |
| |
| vcc_lcd: SWITCH_REG2 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-name = "vcc_lcd"; |
| }; |
| }; |
| }; |
| |
| rk817: pmic@20 { |
| compatible = "rockchip,rk817"; |
| reg = <0x20>; |
| interrupt-parent = <&gpio0>; |
| interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>; |
| clock-output-names = "rk808-clkout1", "xin32k"; |
| clock-names = "mclk"; |
| clocks = <&cru SCLK_I2S1_OUT>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>; |
| wakeup-source; |
| #clock-cells = <1>; |
| #sound-dai-cells = <0>; |
| |
| vcc1-supply = <&vccsys>; |
| vcc2-supply = <&vccsys>; |
| vcc3-supply = <&vccsys>; |
| vcc4-supply = <&vccsys>; |
| vcc5-supply = <&vccsys>; |
| vcc6-supply = <&vccsys>; |
| vcc7-supply = <&vccsys>; |
| |
| regulators { |
| vdd_logic: DCDC_REG1 { |
| regulator-name = "vdd_logic"; |
| regulator-min-microvolt = <950000>; |
| regulator-max-microvolt = <1150000>; |
| regulator-ramp-delay = <6001>; |
| regulator-always-on; |
| regulator-boot-on; |
| |
| regulator-state-mem { |
| regulator-on-in-suspend; |
| regulator-suspend-microvolt = <950000>; |
| }; |
| }; |
| |
| vdd_arm: DCDC_REG2 { |
| regulator-name = "vdd_arm"; |
| regulator-min-microvolt = <950000>; |
| regulator-max-microvolt = <1350000>; |
| regulator-ramp-delay = <6001>; |
| regulator-always-on; |
| regulator-boot-on; |
| |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| regulator-suspend-microvolt = <950000>; |
| }; |
| }; |
| |
| vcc_ddr: DCDC_REG3 { |
| regulator-name = "vcc_ddr"; |
| regulator-always-on; |
| regulator-boot-on; |
| |
| regulator-state-mem { |
| regulator-on-in-suspend; |
| }; |
| }; |
| |
| vcc_3v3: DCDC_REG4 { |
| regulator-name = "vcc_3v3"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-always-on; |
| regulator-boot-on; |
| |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| regulator-suspend-microvolt = <3300000>; |
| }; |
| }; |
| |
| vcc_1v8: LDO_REG2 { |
| regulator-name = "vcc_1v8"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-always-on; |
| regulator-boot-on; |
| |
| regulator-state-mem { |
| regulator-on-in-suspend; |
| regulator-suspend-microvolt = <1800000>; |
| }; |
| }; |
| |
| vdd_1v0: LDO_REG3 { |
| regulator-name = "vdd_1v0"; |
| regulator-min-microvolt = <1000000>; |
| regulator-max-microvolt = <1000000>; |
| regulator-always-on; |
| regulator-boot-on; |
| |
| regulator-state-mem { |
| regulator-on-in-suspend; |
| regulator-suspend-microvolt = <1000000>; |
| }; |
| }; |
| |
| vcc3v3_pmu: LDO_REG4 { |
| regulator-name = "vcc3v3_pmu"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-always-on; |
| regulator-boot-on; |
| |
| regulator-state-mem { |
| regulator-on-in-suspend; |
| regulator-suspend-microvolt = <3300000>; |
| }; |
| }; |
| |
| vccio_sd: LDO_REG5 { |
| regulator-name = "vccio_sd"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-always-on; |
| regulator-boot-on; |
| |
| regulator-state-mem { |
| regulator-on-in-suspend; |
| regulator-suspend-microvolt = <3300000>; |
| }; |
| }; |
| |
| vcc_sd: LDO_REG6 { |
| regulator-name = "vcc_sd"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-boot-on; |
| |
| regulator-state-mem { |
| regulator-on-in-suspend; |
| regulator-suspend-microvolt = <3300000>; |
| }; |
| }; |
| |
| vcc_bl: LDO_REG7 { |
| regulator-name = "vcc_bl"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| regulator-suspend-microvolt = <3300000>; |
| }; |
| }; |
| |
| vcc_lcd: LDO_REG8 { |
| regulator-name = "vcc_lcd"; |
| regulator-min-microvolt = <2800000>; |
| regulator-max-microvolt = <2800000>; |
| |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| regulator-suspend-microvolt = <2800000>; |
| }; |
| }; |
| |
| vcc_cam: LDO_REG9 { |
| regulator-name = "vcc_cam"; |
| regulator-min-microvolt = <3000000>; |
| regulator-max-microvolt = <3000000>; |
| |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| regulator-suspend-microvolt = <3000000>; |
| }; |
| }; |
| }; |
| |
| rk817_codec: codec { |
| rockchip,mic-in-differential; |
| }; |
| }; |