# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2 --- $id: http://devicetree.org/schemas/mfd/rockchip,rk806.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: RK806 Power Management Integrated Circuit maintainers: - Sebastian Reichel description: Rockchip RK806 series PMIC. This device consists of an spi or i2c controlled MFD that includes multiple switchable regulators. properties: compatible: enum: - rockchip,rk806 reg: maxItems: 1 interrupts: maxItems: 1 gpio-controller: true '#gpio-cells': const: 2 system-power-controller: true rockchip,reset-mode: $ref: /schemas/types.yaml#/definitions/uint32 enum: [0, 1, 2] description: Mode to use when a reset of the PMIC is triggered. The reset can be triggered either programmatically, via one of the PWRCTRL pins (provided additional configuration) or asserting RESETB pin low. The following modes are supported - 0; restart PMU, - 1; reset all power off reset registers and force state to switch to ACTIVE mode, - 2; same as mode 1 and also pull RESETB pin down for 5ms, For example, some hardware may require a full restart (mode 0) in order to function properly as regulators are shortly interrupted in this mode. 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 dcdc-reg5. vcc6-supply: description: The input supply for dcdc-reg6. vcc7-supply: description: The input supply for dcdc-reg7. vcc8-supply: description: The input supply for dcdc-reg8. vcc9-supply: description: The input supply for dcdc-reg9. vcc10-supply: description: The input supply for dcdc-reg10. vcc11-supply: description: The input supply for pldo-reg1, pldo-reg2 and pldo-reg3. vcc12-supply: description: The input supply for pldo-reg4 and pldo-reg5. vcc13-supply: description: The input supply for nldo-reg1, nldo-reg2 and nldo-reg3. vcc14-supply: description: The input supply for nldo-reg4 and nldo-reg5. vcca-supply: description: The input supply for pldo-reg6. regulators: type: object additionalProperties: false patternProperties: "^(dcdc-reg([1-9]|10)|pldo-reg[1-6]|nldo-reg[1-5])$": type: object $ref: /schemas/regulator/regulator.yaml# unevaluatedProperties: false patternProperties: '-pins$': type: object additionalProperties: false $ref: /schemas/pinctrl/pinmux-node.yaml properties: function: enum: [pin_fun0, pin_fun1, pin_fun2, pin_fun3, pin_fun4, pin_fun5] pins: $ref: /schemas/types.yaml#/definitions/string enum: [gpio_pwrctrl1, gpio_pwrctrl2, gpio_pwrctrl3] allOf: - $ref: /schemas/spi/spi-peripheral-props.yaml required: - compatible - reg - interrupts unevaluatedProperties: false examples: - | #include #include #include spi { #address-cells = <1>; #size-cells = <0>; pmic@0 { compatible = "rockchip,rk806"; reg = <0x0>; interrupts = <7 IRQ_TYPE_LEVEL_LOW>; vcc1-supply = <&vcc5v0_sys>; vcc2-supply = <&vcc5v0_sys>; vcc3-supply = <&vcc5v0_sys>; vcc4-supply = <&vcc5v0_sys>; vcc5-supply = <&vcc5v0_sys>; vcc6-supply = <&vcc5v0_sys>; vcc7-supply = <&vcc5v0_sys>; vcc8-supply = <&vcc5v0_sys>; vcc9-supply = <&vcc5v0_sys>; vcc10-supply = <&vcc5v0_sys>; vcc11-supply = <&vcc_2v0_pldo_s3>; vcc12-supply = <&vcc5v0_sys>; vcc13-supply = <&vcc5v0_sys>; vcc14-supply = <&vcc_1v1_nldo_s3>; vcca-supply = <&vcc5v0_sys>; regulators { vdd_gpu_s0: dcdc-reg1 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <550000>; regulator-max-microvolt = <950000>; regulator-ramp-delay = <12500>; regulator-name = "vdd_gpu_s0"; regulator-state-mem { regulator-off-in-suspend; }; }; vdd_npu_s0: dcdc-reg2 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <550000>; regulator-max-microvolt = <950000>; regulator-ramp-delay = <12500>; regulator-name = "vdd_npu_s0"; regulator-state-mem { regulator-off-in-suspend; }; }; vdd_log_s0: dcdc-reg3 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <750000>; regulator-max-microvolt = <750000>; regulator-ramp-delay = <12500>; regulator-name = "vdd_log_s0"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <750000>; }; }; vdd_vdenc_s0: dcdc-reg4 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <550000>; regulator-max-microvolt = <950000>; regulator-ramp-delay = <12500>; regulator-name = "vdd_vdenc_s0"; regulator-state-mem { regulator-off-in-suspend; }; }; vdd_gpu_mem_s0: dcdc-reg5 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <675000>; regulator-max-microvolt = <950000>; regulator-ramp-delay = <12500>; regulator-name = "vdd_gpu_mem_s0"; regulator-state-mem { regulator-off-in-suspend; }; }; vdd_npu_mem_s0: dcdc-reg6 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <675000>; regulator-max-microvolt = <950000>; regulator-ramp-delay = <12500>; regulator-name = "vdd_npu_mem_s0"; regulator-state-mem { regulator-off-in-suspend; }; }; vcc_2v0_pldo_s3: dcdc-reg7 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <2000000>; regulator-max-microvolt = <2000000>; regulator-ramp-delay = <12500>; regulator-name = "vdd_2v0_pldo_s3"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <2000000>; }; }; vdd_vdenc_mem_s0: dcdc-reg8 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <675000>; regulator-max-microvolt = <950000>; regulator-ramp-delay = <12500>; regulator-name = "vdd_vdenc_mem_s0"; regulator-state-mem { regulator-off-in-suspend; }; }; vdd2_ddr_s3: dcdc-reg9 { regulator-always-on; regulator-boot-on; regulator-name = "vdd2_ddr_s3"; regulator-state-mem { regulator-on-in-suspend; }; }; vcc_1v1_nldo_s3: dcdc-reg10 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1100000>; regulator-max-microvolt = <1100000>; regulator-ramp-delay = <12500>; regulator-name = "vcc_1v1_nldo_s3"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1100000>; }; }; avcc_1v8_s0: pldo-reg1 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-ramp-delay = <12500>; regulator-name = "avcc_1v8_s0"; regulator-state-mem { regulator-off-in-suspend; }; }; vdd1_1v8_ddr_s3: pldo-reg2 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-ramp-delay = <12500>; regulator-name = "vdd1_1v8_ddr_s3"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1800000>; }; }; vcc_1v8_s3: pldo-reg3 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-ramp-delay = <12500>; regulator-name = "vcc_1v8_s3"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1800000>; }; }; vcc_3v3_s0: pldo-reg4 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-ramp-delay = <12500>; regulator-name = "vcc_3v3_s0"; regulator-state-mem { regulator-off-in-suspend; }; }; vccio_sd_s0: pldo-reg5 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-ramp-delay = <12500>; regulator-name = "vccio_sd_s0"; regulator-state-mem { regulator-off-in-suspend; }; }; master_pldo6_s3: pldo-reg6 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-name = "master_pldo6_s3"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1800000>; }; }; vdd_0v75_s3: nldo-reg1 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <750000>; regulator-max-microvolt = <750000>; regulator-ramp-delay = <12500>; regulator-name = "vdd_0v75_s3"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <750000>; }; }; vdd2l_0v9_ddr_s3: nldo-reg2 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <900000>; regulator-max-microvolt = <900000>; regulator-name = "vdd2l_0v9_ddr_s3"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <900000>; }; }; master_nldo3: nldo-reg3 { regulator-name = "master_nldo3"; regulator-state-mem { regulator-off-in-suspend; }; }; avdd_0v75_s0: nldo-reg4 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <750000>; regulator-max-microvolt = <750000>; regulator-name = "avdd_0v75_s0"; regulator-state-mem { regulator-off-in-suspend; }; }; vdd_0v85_s0: nldo-reg5 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <850000>; regulator-max-microvolt = <850000>; regulator-name = "vdd_0v85_s0"; regulator-state-mem { regulator-off-in-suspend; }; }; }; }; };