RK809 Power Management Integrated Circuit
|
|
Required properties:
|
- compatible: "rockchip,rk809"
|
- 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). 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.
|
- 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
|
- vcc8-supply: The input supply for SWITCH_REG1
|
- vcc9-supply: The input supply for DCDC_REG5, SWITCH_REG2
|
|
Regulators: All the regulators of RK809 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 RK809 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 5.
|
- LDO_REGn
|
- valid values for n are 1 to 9.
|
- SWITCH_REGn
|
- valid values for n are 1 to 2.
|
|
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:
|
rk809: pmic@20 {
|
compatible = "rockchip,rk809";
|
reg = <0x20>;
|
interrupt-parent = <&gpio0>;
|
interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
|
pinctrl-names = "default", "pmic-sleep",
|
"pmic-power-off", "pmic-reset";
|
pinctrl-0 = <&pmic_int>;
|
pinctrl-1 = <&soc_slppin_slp>, <&rk817_slppin_slp>;
|
pinctrl-2 = <&soc_slppin_gpio>, <&rk817_slppin_pwrdn>;
|
pinctrl-3 = <&soc_slppin_rst>, <&rk817_slppin_rst>;
|
rockchip,system-power-controller;
|
wakeup-source;
|
#clock-cells = <1>;
|
clock-output-names = "rk808-clkout1", "rk808-clkout2";
|
|
vcc1-supply = <&vcc5v0_sys>;
|
vcc2-supply = <&vcc5v0_sys>;
|
vcc3-supply = <&vcc5v0_sys>;
|
vcc4-supply = <&vcc5v0_sys>;
|
vcc5-supply = <&vcc3v3_sys>;
|
vcc6-supply = <&vcc3v3_sys>;
|
vcc7-supply = <&vcc3v3_sys>;
|
vcc8-supply = <&vcc3v3_sys>;
|
vcc9-supply = <&vcc5v0_sys>;
|
|
pwrkey {
|
status = "okay";
|
};
|
|
pinctrl_rk8xx: pinctrl_rk8xx {
|
gpio-controller;
|
#gpio-cells = <2>;
|
|
rk817_slppin_null: rk817_slppin_null {
|
pins = "gpio_slp";
|
function = "pin_fun0";
|
};
|
|
rk817_slppin_slp: rk817_slppin_slp {
|
pins = "gpio_slp";
|
function = "pin_fun1";
|
};
|
|
rk817_slppin_pwrdn: rk817_slppin_pwrdn {
|
pins = "gpio_slp";
|
function = "pin_fun2";
|
};
|
|
rk817_slppin_rst: rk817_slppin_rst {
|
pins = "gpio_slp";
|
function = "pin_fun3";
|
};
|
};
|
|
regulators {
|
vdd_logic: DCDC_REG1 {
|
regulator-always-on;
|
regulator-boot-on;
|
regulator-min-microvolt = <950000>;
|
regulator-max-microvolt = <1350000>;
|
regulator-ramp-delay = <6001>;
|
regulator-initial-mode = <0x1>;
|
regulator-name = "vdd_logic";
|
regulator-state-mem {
|
regulator-on-in-suspend;
|
regulator-suspend-microvolt = <950000>;
|
};
|
};
|
|
vdd_arm: DCDC_REG2 {
|
regulator-always-on;
|
regulator-boot-on;
|
regulator-min-microvolt = <950000>;
|
regulator-max-microvolt = <1350000>;
|
regulator-ramp-delay = <6001>;
|
regulator-initial-mode = <0x1>;
|
regulator-name = "vdd_arm";
|
regulator-state-mem {
|
regulator-off-in-suspend;
|
regulator-suspend-microvolt = <950000>;
|
};
|
};
|
|
vcc_ddr: DCDC_REG3 {
|
regulator-always-on;
|
regulator-boot-on;
|
regulator-name = "vcc_ddr";
|
regulator-initial-mode = <0x1>;
|
regulator-state-mem {
|
regulator-on-in-suspend;
|
};
|
};
|
|
vcc_3v0: DCDC_REG4 {
|
regulator-always-on;
|
regulator-boot-on;
|
regulator-min-microvolt = <3000000>;
|
regulator-max-microvolt = <3000000>;
|
regulator-initial-mode = <0x1>;
|
regulator-name = "vcc_3v0";
|
regulator-state-mem {
|
regulator-off-in-suspend;
|
regulator-suspend-microvolt = <3000000>;
|
};
|
};
|
|
vcc2v5_ddr: LDO_REG1 {
|
regulator-always-on;
|
regulator-boot-on;
|
regulator-min-microvolt = <2500000>;
|
regulator-max-microvolt = <2500000>;
|
regulator-name = "vcc2v5_ddr";
|
regulator-state-mem {
|
regulator-on-in-suspend;
|
regulator-suspend-microvolt = <2500000>;
|
};
|
};
|
|
vcc1v8_soc: LDO_REG2 {
|
regulator-always-on;
|
regulator-boot-on;
|
regulator-min-microvolt = <1800000>;
|
regulator-max-microvolt = <1800000>;
|
|
regulator-name = "vcc1v8_soc";
|
regulator-state-mem {
|
regulator-on-in-suspend;
|
regulator-suspend-microvolt = <1800000>;
|
};
|
};
|
|
vdd1v0_soc: LDO_REG3 {
|
regulator-always-on;
|
regulator-boot-on;
|
regulator-min-microvolt = <1000000>;
|
regulator-max-microvolt = <1000000>;
|
|
regulator-name = "vcc1v0_soc";
|
regulator-state-mem {
|
regulator-on-in-suspend;
|
regulator-suspend-microvolt = <1000000>;
|
};
|
};
|
|
vcc3v0_pmu: LDO_REG4 {
|
regulator-always-on;
|
regulator-boot-on;
|
regulator-min-microvolt = <3000000>;
|
regulator-max-microvolt = <3000000>;
|
|
regulator-name = "vcc3v0_pmu";
|
regulator-state-mem {
|
regulator-on-in-suspend;
|
regulator-suspend-microvolt = <3000000>;
|
|
};
|
};
|
|
vccio_sd: LDO_REG5 {
|
regulator-always-on;
|
regulator-boot-on;
|
regulator-min-microvolt = <3300000>;
|
regulator-max-microvolt = <3300000>;
|
|
regulator-name = "vccio_sd";
|
regulator-state-mem {
|
regulator-on-in-suspend;
|
regulator-suspend-microvolt = <3300000>;
|
};
|
};
|
|
vcc_sd: LDO_REG6 {
|
regulator-always-on;
|
regulator-boot-on;
|
regulator-min-microvolt = <3300000>;
|
regulator-max-microvolt = <3300000>;
|
|
regulator-name = "vcc_sd";
|
regulator-state-mem {
|
regulator-on-in-suspend;
|
regulator-suspend-microvolt = <3300000>;
|
|
};
|
};
|
|
vcc2v8_dvp: LDO_REG7 {
|
regulator-always-on;
|
regulator-boot-on;
|
regulator-min-microvolt = <2800000>;
|
regulator-max-microvolt = <2800000>;
|
|
regulator-name = "vcc2v8_dvp";
|
regulator-state-mem {
|
regulator-off-in-suspend;
|
regulator-suspend-microvolt = <2800000>;
|
};
|
};
|
|
vcc1v8_dvp: LDO_REG8 {
|
regulator-always-on;
|
regulator-boot-on;
|
regulator-min-microvolt = <1800000>;
|
regulator-max-microvolt = <1800000>;
|
|
regulator-name = "vcc1v8_dvp";
|
regulator-state-mem {
|
regulator-on-in-suspend;
|
regulator-suspend-microvolt = <1800000>;
|
};
|
};
|
|
vdd1v5_dvp: LDO_REG9 {
|
regulator-always-on;
|
regulator-boot-on;
|
regulator-min-microvolt = <1500000>;
|
regulator-max-microvolt = <1500000>;
|
|
regulator-name = "vdd1v5_dvp";
|
regulator-state-mem {
|
regulator-off-in-suspend;
|
regulator-suspend-microvolt = <1500000>;
|
};
|
};
|
|
vcc3v3_sys: DCDC_REG5 {
|
regulator-always-on;
|
regulator-boot-on;
|
regulator-min-microvolt = <3300000>;
|
regulator-max-microvolt = <3300000>;
|
regulator-name = "vcc3v3_sys";
|
regulator-state-mem {
|
regulator-on-in-suspend;
|
regulator-suspend-microvolt = <3300000>;
|
};
|
};
|
|
vcc3v3_lcd: SWITCH_REG1 {
|
regulator-boot-on;
|
regulator-name = "vcc3v3_lcd";
|
};
|
|
vcc5v0_host: SWITCH_REG2 {
|
regulator-always-on;
|
regulator-boot-on;
|
regulator-name = "vcc5v0_host";
|
};
|
};
|
|
rk809_codec: codec {
|
#sound-dai-cells = <0>;
|
compatible = "rockchip,rk809-codec", "rockchip,rk817-codec";
|
clocks = <&cru SCLK_I2S1_OUT>;
|
clock-names = "mclk";
|
pinctrl-names = "default";
|
pinctrl-0 = <&i2s1_2ch_mclk>;
|
hp-volume = <20>;
|
spk-volume = <3>;
|
status = "okay";
|
};
|
}
|