162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/rockchip,rk817.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: RK817 Power Management Integrated Circuit 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Chris Zhong <zyw@rock-chips.com> 1162306a36Sopenharmony_ci - Zhang Qing <zhangqing@rock-chips.com> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cidescription: | 1462306a36Sopenharmony_ci Rockchip RK817 series PMIC. This device consists of an i2c controlled MFD 1562306a36Sopenharmony_ci that includes regulators, an RTC, a power button, an audio codec, and a 1662306a36Sopenharmony_ci battery charger manager. 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ciproperties: 1962306a36Sopenharmony_ci compatible: 2062306a36Sopenharmony_ci enum: 2162306a36Sopenharmony_ci - rockchip,rk817 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci reg: 2462306a36Sopenharmony_ci maxItems: 1 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci interrupts: 2762306a36Sopenharmony_ci maxItems: 1 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci '#clock-cells': 3062306a36Sopenharmony_ci description: 3162306a36Sopenharmony_ci See <dt-bindings/clock/rockchip,rk808.h> for clock IDs. 3262306a36Sopenharmony_ci minimum: 0 3362306a36Sopenharmony_ci maximum: 1 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci clock-output-names: 3662306a36Sopenharmony_ci description: 3762306a36Sopenharmony_ci From common clock binding to override the default output clock name. 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci rockchip,system-power-controller: 4062306a36Sopenharmony_ci type: boolean 4162306a36Sopenharmony_ci description: 4262306a36Sopenharmony_ci Telling whether or not this PMIC is controlling the system power. 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci wakeup-source: 4562306a36Sopenharmony_ci type: boolean 4662306a36Sopenharmony_ci description: 4762306a36Sopenharmony_ci Device can be used as a wakeup source. 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci vcc1-supply: 5062306a36Sopenharmony_ci description: 5162306a36Sopenharmony_ci The input supply for DCDC_REG1. 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci vcc2-supply: 5462306a36Sopenharmony_ci description: 5562306a36Sopenharmony_ci The input supply for DCDC_REG2. 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci vcc3-supply: 5862306a36Sopenharmony_ci description: 5962306a36Sopenharmony_ci The input supply for DCDC_REG3. 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci vcc4-supply: 6262306a36Sopenharmony_ci description: 6362306a36Sopenharmony_ci The input supply for DCDC_REG4. 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci vcc5-supply: 6662306a36Sopenharmony_ci description: 6762306a36Sopenharmony_ci The input supply for LDO_REG1, LDO_REG2, and LDO_REG3. 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci vcc6-supply: 7062306a36Sopenharmony_ci description: 7162306a36Sopenharmony_ci The input supply for LDO_REG4, LDO_REG5, and LDO_REG6. 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci vcc7-supply: 7462306a36Sopenharmony_ci description: 7562306a36Sopenharmony_ci The input supply for LDO_REG7, LDO_REG8, and LDO_REG9. 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci vcc8-supply: 7862306a36Sopenharmony_ci description: 7962306a36Sopenharmony_ci The input supply for BOOST. 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci vcc9-supply: 8262306a36Sopenharmony_ci description: 8362306a36Sopenharmony_ci The input supply for OTG_SWITCH. 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci regulators: 8662306a36Sopenharmony_ci type: object 8762306a36Sopenharmony_ci patternProperties: 8862306a36Sopenharmony_ci "^(LDO_REG[1-9]|DCDC_REG[1-4]|BOOST|OTG_SWITCH)$": 8962306a36Sopenharmony_ci type: object 9062306a36Sopenharmony_ci unevaluatedProperties: false 9162306a36Sopenharmony_ci $ref: ../regulator/regulator.yaml# 9262306a36Sopenharmony_ci unevaluatedProperties: false 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci clocks: 9562306a36Sopenharmony_ci description: 9662306a36Sopenharmony_ci The input clock for the audio codec. 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ci clock-names: 9962306a36Sopenharmony_ci description: 10062306a36Sopenharmony_ci The clock name for the codec clock. 10162306a36Sopenharmony_ci items: 10262306a36Sopenharmony_ci - const: mclk 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci '#sound-dai-cells': 10562306a36Sopenharmony_ci description: 10662306a36Sopenharmony_ci Needed for the interpretation of sound dais. 10762306a36Sopenharmony_ci const: 0 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ci codec: 11062306a36Sopenharmony_ci description: | 11162306a36Sopenharmony_ci The child node for the codec to hold additional properties. If no 11262306a36Sopenharmony_ci additional properties are required for the codec, this node can be 11362306a36Sopenharmony_ci omitted. 11462306a36Sopenharmony_ci type: object 11562306a36Sopenharmony_ci additionalProperties: false 11662306a36Sopenharmony_ci properties: 11762306a36Sopenharmony_ci rockchip,mic-in-differential: 11862306a36Sopenharmony_ci type: boolean 11962306a36Sopenharmony_ci description: 12062306a36Sopenharmony_ci Describes if the microphone uses differential mode. 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci charger: 12362306a36Sopenharmony_ci description: | 12462306a36Sopenharmony_ci The child node for the charger to hold additional properties. If a 12562306a36Sopenharmony_ci battery is not in use, this node can be omitted. 12662306a36Sopenharmony_ci type: object 12762306a36Sopenharmony_ci $ref: /schemas/power/supply/power-supply.yaml 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci properties: 13062306a36Sopenharmony_ci monitored-battery: 13162306a36Sopenharmony_ci description: | 13262306a36Sopenharmony_ci A phandle to a monitored battery node that contains a valid 13362306a36Sopenharmony_ci value for: 13462306a36Sopenharmony_ci charge-full-design-microamp-hours, 13562306a36Sopenharmony_ci charge-term-current-microamp, 13662306a36Sopenharmony_ci constant-charge-current-max-microamp, 13762306a36Sopenharmony_ci constant-charge-voltage-max-microvolt, 13862306a36Sopenharmony_ci voltage-max-design-microvolt, 13962306a36Sopenharmony_ci voltage-min-design-microvolt, 14062306a36Sopenharmony_ci and a valid ocv-capacity table. 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ci rockchip,resistor-sense-micro-ohms: 14362306a36Sopenharmony_ci description: | 14462306a36Sopenharmony_ci Value in microohms of the battery sense resistor. This value is 14562306a36Sopenharmony_ci used by the driver to set the correct divisor value to translate 14662306a36Sopenharmony_ci ADC readings into the proper units of measure. 14762306a36Sopenharmony_ci enum: [10000, 20000] 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ci rockchip,sleep-enter-current-microamp: 15062306a36Sopenharmony_ci description: | 15162306a36Sopenharmony_ci Value in microamps of the sleep enter current for the charger. 15262306a36Sopenharmony_ci Value is used by the driver to calibrate the relax threshold. 15362306a36Sopenharmony_ci 15462306a36Sopenharmony_ci rockchip,sleep-filter-current-microamp: 15562306a36Sopenharmony_ci description: 15662306a36Sopenharmony_ci Value in microamps of the sleep filter current for the charger. 15762306a36Sopenharmony_ci Value is used by the driver to derive the sleep sample current. 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ci required: 16062306a36Sopenharmony_ci - monitored-battery 16162306a36Sopenharmony_ci - rockchip,resistor-sense-micro-ohms 16262306a36Sopenharmony_ci - rockchip,sleep-enter-current-microamp 16362306a36Sopenharmony_ci - rockchip,sleep-filter-current-microamp 16462306a36Sopenharmony_ci 16562306a36Sopenharmony_ci additionalProperties: false 16662306a36Sopenharmony_ci 16762306a36Sopenharmony_ciallOf: 16862306a36Sopenharmony_ci - if: 16962306a36Sopenharmony_ci properties: 17062306a36Sopenharmony_ci '#clock-cells': 17162306a36Sopenharmony_ci const: 0 17262306a36Sopenharmony_ci 17362306a36Sopenharmony_ci then: 17462306a36Sopenharmony_ci properties: 17562306a36Sopenharmony_ci clock-output-names: 17662306a36Sopenharmony_ci maxItems: 1 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ci else: 17962306a36Sopenharmony_ci properties: 18062306a36Sopenharmony_ci clock-output-names: 18162306a36Sopenharmony_ci maxItems: 2 18262306a36Sopenharmony_ci 18362306a36Sopenharmony_cirequired: 18462306a36Sopenharmony_ci - compatible 18562306a36Sopenharmony_ci - reg 18662306a36Sopenharmony_ci - interrupts 18762306a36Sopenharmony_ci - "#clock-cells" 18862306a36Sopenharmony_ci 18962306a36Sopenharmony_ciadditionalProperties: false 19062306a36Sopenharmony_ci 19162306a36Sopenharmony_ciexamples: 19262306a36Sopenharmony_ci - | 19362306a36Sopenharmony_ci #include <dt-bindings/clock/px30-cru.h> 19462306a36Sopenharmony_ci #include <dt-bindings/pinctrl/rockchip.h> 19562306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 19662306a36Sopenharmony_ci #include <dt-bindings/gpio/gpio.h> 19762306a36Sopenharmony_ci i2c { 19862306a36Sopenharmony_ci #address-cells = <1>; 19962306a36Sopenharmony_ci #size-cells = <0>; 20062306a36Sopenharmony_ci 20162306a36Sopenharmony_ci rk817: pmic@20 { 20262306a36Sopenharmony_ci compatible = "rockchip,rk817"; 20362306a36Sopenharmony_ci reg = <0x20>; 20462306a36Sopenharmony_ci interrupt-parent = <&gpio0>; 20562306a36Sopenharmony_ci interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>; 20662306a36Sopenharmony_ci clock-output-names = "rk808-clkout1", "xin32k"; 20762306a36Sopenharmony_ci clock-names = "mclk"; 20862306a36Sopenharmony_ci clocks = <&cru SCLK_I2S1_OUT>; 20962306a36Sopenharmony_ci pinctrl-names = "default"; 21062306a36Sopenharmony_ci pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>; 21162306a36Sopenharmony_ci wakeup-source; 21262306a36Sopenharmony_ci #clock-cells = <1>; 21362306a36Sopenharmony_ci #sound-dai-cells = <0>; 21462306a36Sopenharmony_ci 21562306a36Sopenharmony_ci vcc1-supply = <&vccsys>; 21662306a36Sopenharmony_ci vcc2-supply = <&vccsys>; 21762306a36Sopenharmony_ci vcc3-supply = <&vccsys>; 21862306a36Sopenharmony_ci vcc4-supply = <&vccsys>; 21962306a36Sopenharmony_ci vcc5-supply = <&vccsys>; 22062306a36Sopenharmony_ci vcc6-supply = <&vccsys>; 22162306a36Sopenharmony_ci vcc7-supply = <&vccsys>; 22262306a36Sopenharmony_ci 22362306a36Sopenharmony_ci regulators { 22462306a36Sopenharmony_ci vdd_logic: DCDC_REG1 { 22562306a36Sopenharmony_ci regulator-name = "vdd_logic"; 22662306a36Sopenharmony_ci regulator-min-microvolt = <950000>; 22762306a36Sopenharmony_ci regulator-max-microvolt = <1150000>; 22862306a36Sopenharmony_ci regulator-ramp-delay = <6001>; 22962306a36Sopenharmony_ci regulator-always-on; 23062306a36Sopenharmony_ci regulator-boot-on; 23162306a36Sopenharmony_ci 23262306a36Sopenharmony_ci regulator-state-mem { 23362306a36Sopenharmony_ci regulator-on-in-suspend; 23462306a36Sopenharmony_ci regulator-suspend-microvolt = <950000>; 23562306a36Sopenharmony_ci }; 23662306a36Sopenharmony_ci }; 23762306a36Sopenharmony_ci 23862306a36Sopenharmony_ci vdd_arm: DCDC_REG2 { 23962306a36Sopenharmony_ci regulator-name = "vdd_arm"; 24062306a36Sopenharmony_ci regulator-min-microvolt = <950000>; 24162306a36Sopenharmony_ci regulator-max-microvolt = <1350000>; 24262306a36Sopenharmony_ci regulator-ramp-delay = <6001>; 24362306a36Sopenharmony_ci regulator-always-on; 24462306a36Sopenharmony_ci regulator-boot-on; 24562306a36Sopenharmony_ci 24662306a36Sopenharmony_ci regulator-state-mem { 24762306a36Sopenharmony_ci regulator-off-in-suspend; 24862306a36Sopenharmony_ci regulator-suspend-microvolt = <950000>; 24962306a36Sopenharmony_ci }; 25062306a36Sopenharmony_ci }; 25162306a36Sopenharmony_ci 25262306a36Sopenharmony_ci vcc_ddr: DCDC_REG3 { 25362306a36Sopenharmony_ci regulator-name = "vcc_ddr"; 25462306a36Sopenharmony_ci regulator-always-on; 25562306a36Sopenharmony_ci regulator-boot-on; 25662306a36Sopenharmony_ci 25762306a36Sopenharmony_ci regulator-state-mem { 25862306a36Sopenharmony_ci regulator-on-in-suspend; 25962306a36Sopenharmony_ci }; 26062306a36Sopenharmony_ci }; 26162306a36Sopenharmony_ci 26262306a36Sopenharmony_ci vcc_3v3: DCDC_REG4 { 26362306a36Sopenharmony_ci regulator-name = "vcc_3v3"; 26462306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 26562306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 26662306a36Sopenharmony_ci regulator-always-on; 26762306a36Sopenharmony_ci regulator-boot-on; 26862306a36Sopenharmony_ci 26962306a36Sopenharmony_ci regulator-state-mem { 27062306a36Sopenharmony_ci regulator-off-in-suspend; 27162306a36Sopenharmony_ci regulator-suspend-microvolt = <3300000>; 27262306a36Sopenharmony_ci }; 27362306a36Sopenharmony_ci }; 27462306a36Sopenharmony_ci 27562306a36Sopenharmony_ci vcc_1v8: LDO_REG2 { 27662306a36Sopenharmony_ci regulator-name = "vcc_1v8"; 27762306a36Sopenharmony_ci regulator-min-microvolt = <1800000>; 27862306a36Sopenharmony_ci regulator-max-microvolt = <1800000>; 27962306a36Sopenharmony_ci regulator-always-on; 28062306a36Sopenharmony_ci regulator-boot-on; 28162306a36Sopenharmony_ci 28262306a36Sopenharmony_ci regulator-state-mem { 28362306a36Sopenharmony_ci regulator-on-in-suspend; 28462306a36Sopenharmony_ci regulator-suspend-microvolt = <1800000>; 28562306a36Sopenharmony_ci }; 28662306a36Sopenharmony_ci }; 28762306a36Sopenharmony_ci 28862306a36Sopenharmony_ci vdd_1v0: LDO_REG3 { 28962306a36Sopenharmony_ci regulator-name = "vdd_1v0"; 29062306a36Sopenharmony_ci regulator-min-microvolt = <1000000>; 29162306a36Sopenharmony_ci regulator-max-microvolt = <1000000>; 29262306a36Sopenharmony_ci regulator-always-on; 29362306a36Sopenharmony_ci regulator-boot-on; 29462306a36Sopenharmony_ci 29562306a36Sopenharmony_ci regulator-state-mem { 29662306a36Sopenharmony_ci regulator-on-in-suspend; 29762306a36Sopenharmony_ci regulator-suspend-microvolt = <1000000>; 29862306a36Sopenharmony_ci }; 29962306a36Sopenharmony_ci }; 30062306a36Sopenharmony_ci 30162306a36Sopenharmony_ci vcc3v3_pmu: LDO_REG4 { 30262306a36Sopenharmony_ci regulator-name = "vcc3v3_pmu"; 30362306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 30462306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 30562306a36Sopenharmony_ci regulator-always-on; 30662306a36Sopenharmony_ci regulator-boot-on; 30762306a36Sopenharmony_ci 30862306a36Sopenharmony_ci regulator-state-mem { 30962306a36Sopenharmony_ci regulator-on-in-suspend; 31062306a36Sopenharmony_ci regulator-suspend-microvolt = <3300000>; 31162306a36Sopenharmony_ci }; 31262306a36Sopenharmony_ci }; 31362306a36Sopenharmony_ci 31462306a36Sopenharmony_ci vccio_sd: LDO_REG5 { 31562306a36Sopenharmony_ci regulator-name = "vccio_sd"; 31662306a36Sopenharmony_ci regulator-min-microvolt = <1800000>; 31762306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 31862306a36Sopenharmony_ci regulator-always-on; 31962306a36Sopenharmony_ci regulator-boot-on; 32062306a36Sopenharmony_ci 32162306a36Sopenharmony_ci regulator-state-mem { 32262306a36Sopenharmony_ci regulator-on-in-suspend; 32362306a36Sopenharmony_ci regulator-suspend-microvolt = <3300000>; 32462306a36Sopenharmony_ci }; 32562306a36Sopenharmony_ci }; 32662306a36Sopenharmony_ci 32762306a36Sopenharmony_ci vcc_sd: LDO_REG6 { 32862306a36Sopenharmony_ci regulator-name = "vcc_sd"; 32962306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 33062306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 33162306a36Sopenharmony_ci regulator-boot-on; 33262306a36Sopenharmony_ci 33362306a36Sopenharmony_ci regulator-state-mem { 33462306a36Sopenharmony_ci regulator-on-in-suspend; 33562306a36Sopenharmony_ci regulator-suspend-microvolt = <3300000>; 33662306a36Sopenharmony_ci }; 33762306a36Sopenharmony_ci }; 33862306a36Sopenharmony_ci 33962306a36Sopenharmony_ci vcc_bl: LDO_REG7 { 34062306a36Sopenharmony_ci regulator-name = "vcc_bl"; 34162306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 34262306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 34362306a36Sopenharmony_ci 34462306a36Sopenharmony_ci regulator-state-mem { 34562306a36Sopenharmony_ci regulator-off-in-suspend; 34662306a36Sopenharmony_ci regulator-suspend-microvolt = <3300000>; 34762306a36Sopenharmony_ci }; 34862306a36Sopenharmony_ci }; 34962306a36Sopenharmony_ci 35062306a36Sopenharmony_ci vcc_lcd: LDO_REG8 { 35162306a36Sopenharmony_ci regulator-name = "vcc_lcd"; 35262306a36Sopenharmony_ci regulator-min-microvolt = <2800000>; 35362306a36Sopenharmony_ci regulator-max-microvolt = <2800000>; 35462306a36Sopenharmony_ci 35562306a36Sopenharmony_ci regulator-state-mem { 35662306a36Sopenharmony_ci regulator-off-in-suspend; 35762306a36Sopenharmony_ci regulator-suspend-microvolt = <2800000>; 35862306a36Sopenharmony_ci }; 35962306a36Sopenharmony_ci }; 36062306a36Sopenharmony_ci 36162306a36Sopenharmony_ci vcc_cam: LDO_REG9 { 36262306a36Sopenharmony_ci regulator-name = "vcc_cam"; 36362306a36Sopenharmony_ci regulator-min-microvolt = <3000000>; 36462306a36Sopenharmony_ci regulator-max-microvolt = <3000000>; 36562306a36Sopenharmony_ci 36662306a36Sopenharmony_ci regulator-state-mem { 36762306a36Sopenharmony_ci regulator-off-in-suspend; 36862306a36Sopenharmony_ci regulator-suspend-microvolt = <3000000>; 36962306a36Sopenharmony_ci }; 37062306a36Sopenharmony_ci }; 37162306a36Sopenharmony_ci }; 37262306a36Sopenharmony_ci 37362306a36Sopenharmony_ci rk817_charger: charger { 37462306a36Sopenharmony_ci monitored-battery = <&battery>; 37562306a36Sopenharmony_ci rockchip,resistor-sense-micro-ohms = <10000>; 37662306a36Sopenharmony_ci rockchip,sleep-enter-current-microamp = <300000>; 37762306a36Sopenharmony_ci rockchip,sleep-filter-current-microamp = <100000>; 37862306a36Sopenharmony_ci }; 37962306a36Sopenharmony_ci 38062306a36Sopenharmony_ci rk817_codec: codec { 38162306a36Sopenharmony_ci rockchip,mic-in-differential; 38262306a36Sopenharmony_ci }; 38362306a36Sopenharmony_ci }; 38462306a36Sopenharmony_ci }; 385