| # 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 <sebastian.reichel@collabora.com> |
| |
| 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 |
| |
| 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 <dt-bindings/pinctrl/rockchip.h> |
| #include <dt-bindings/interrupt-controller/irq.h> |
| #include <dt-bindings/gpio/gpio.h> |
| 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; |
| }; |
| }; |
| }; |
| }; |
| }; |