# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2 --- $id: http://devicetree.org/schemas/mfd/rockchip,rk809.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: RK809 Power Management Integrated Circuit maintainers: - Chris Zhong <zyw@rock-chips.com> - Zhang Qing <zhangqing@rock-chips.com> description: | Rockchip RK809 series PMIC. This device consists of an i2c controlled MFD that includes regulators, an RTC, and power button. properties: compatible: enum: - rockchip,rk809 reg: maxItems: 1 interrupts: maxItems: 1 '#clock-cells': description: | See <dt-bindings/clock/rockchip,rk808.h> for clock IDs. minimum: 0 maximum: 1 clock-output-names: description: From common clock binding to override the default output clock name. rockchip,system-power-controller: type: boolean description: Telling whether or not this PMIC is controlling the system power. wakeup-source: type: boolean description: Device can be used as a wakeup source. vcc1-supply: description: The input supply for DCDC_REG1. vcc2-supply: description: The input supply for DCDC_REG2. vcc3-supply: description: The input supply for DCDC_REG3. vcc4-supply: description: The input supply for DCDC_REG4. vcc5-supply: description: The input supply for LDO_REG1, LDO_REG2, and LDO_REG3. vcc6-supply: description: The input supply for LDO_REG4, LDO_REG5, and LDO_REG6. vcc7-supply: description: The input supply for LDO_REG7, LDO_REG8, and LDO_REG9. vcc8-supply: description: The input supply for SWITCH_REG1. vcc9-supply: description: The input supply for DCDC_REG5 and SWITCH_REG2. regulators: type: object patternProperties: "^(LDO_REG[1-9]|DCDC_REG[1-5]|SWITCH_REG[1-2])$": type: object $ref: ../regulator/regulator.yaml# unevaluatedProperties: false allOf: - if: properties: '#clock-cells': const: 0 then: properties: clock-output-names: maxItems: 1 else: properties: clock-output-names: maxItems: 2 required: - compatible - reg - interrupts - "#clock-cells" additionalProperties: false examples: - | #include <dt-bindings/pinctrl/rockchip.h> #include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/gpio/gpio.h> i2c { #address-cells = <1>; #size-cells = <0>; rk808: pmic@1b { compatible = "rockchip,rk808"; reg = <0x1b>; #clock-cells = <1>; clock-output-names = "xin32k", "rk808-clkout2"; interrupt-parent = <&gpio3>; interrupts = <10 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&pmic_int_l_pin>; rockchip,system-power-controller; wakeup-source; vcc1-supply = <&vcc_sysin>; vcc2-supply = <&vcc_sysin>; vcc3-supply = <&vcc_sysin>; vcc4-supply = <&vcc_sysin>; vcc6-supply = <&vcc_sysin>; vcc7-supply = <&vcc_sysin>; vcc8-supply = <&vcc3v3_sys>; vcc9-supply = <&vcc_sysin>; vcc10-supply = <&vcc_sysin>; vcc11-supply = <&vcc_sysin>; vcc12-supply = <&vcc3v3_sys>; regulators { vdd_center: DCDC_REG1 { regulator-name = "vdd_center"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <750000>; regulator-max-microvolt = <1350000>; regulator-ramp-delay = <6001>; regulator-state-mem { regulator-off-in-suspend; }; }; vdd_cpu_l: DCDC_REG2 { regulator-name = "vdd_cpu_l"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <750000>; regulator-max-microvolt = <1350000>; regulator-ramp-delay = <6001>; regulator-state-mem { regulator-off-in-suspend; }; }; vcc_ddr: DCDC_REG3 { regulator-name = "vcc_ddr"; regulator-always-on; regulator-boot-on; regulator-state-mem { regulator-on-in-suspend; }; }; vcc_1v8: vcc_wl: DCDC_REG4 { regulator-name = "vcc_1v8"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1800000>; }; }; vcc1v8_pmupll: LDO_REG3 { regulator-name = "vcc1v8_pmupll"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1800000>; }; }; vcc_sdio: LDO_REG4 { regulator-name = "vcc_sdio"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3000000>; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3000000>; }; }; vcca3v0_codec: LDO_REG5 { regulator-name = "vcca3v0_codec"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3000000>; regulator-state-mem { regulator-off-in-suspend; }; }; vcc_1v5: LDO_REG6 { regulator-name = "vcc_1v5"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1500000>; regulator-max-microvolt = <1500000>; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1500000>; }; }; vcca1v8_codec: LDO_REG7 { regulator-name = "vcca1v8_codec"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-state-mem { regulator-off-in-suspend; }; }; vcc_3v0: LDO_REG8 { regulator-name = "vcc_3v0"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3000000>; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3000000>; }; }; vcc3v3_s3: SWITCH_REG1 { regulator-name = "vcc3v3_s3"; regulator-always-on; regulator-boot-on; regulator-state-mem { regulator-off-in-suspend; }; }; vcc3v3_s0: SWITCH_REG2 { regulator-name = "vcc3v3_s0"; regulator-always-on; regulator-boot-on; regulator-state-mem { regulator-off-in-suspend; }; }; }; }; };