| # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/mfd/ti,tps65910.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: TI TPS65910 Power Management Integrated Circuit |
| |
| maintainers: |
| - Shree Ramamoorthy <s-ramamoorthy@ti.com> |
| |
| description: |
| TPS65910 device is a Power Management IC that provides 3 step-down converters, |
| 1 stepup converter, and 8 LDOs. The device contains an embedded power controller (EPC), |
| 1 GPIO, and an RTC. |
| |
| properties: |
| compatible: |
| enum: |
| - ti,tps65910 |
| - ti,tps65911 |
| |
| reg: |
| description: I2C slave address |
| maxItems: 1 |
| |
| gpio-controller: true |
| |
| '#gpio-cells': |
| const: 2 |
| description: | |
| The first cell is the GPIO number. |
| The second cell is used to specify additional options <unused>. |
| |
| interrupts: |
| maxItems: 1 |
| |
| interrupt-controller: true |
| |
| '#interrupt-cells': |
| description: Specifies the IRQ number and flags |
| const: 2 |
| |
| ti,vmbch-threshold: |
| description: | |
| (TPS65911) Main battery charged threshold comparator. |
| See VMBCH_VSEL in TPS65910 datasheet. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: [0, 1, 2, 3] |
| |
| ti,vmbch2-threshold: |
| description: | |
| (TPS65911) Main battery discharged threshold comparator. |
| See VMBCH_VSEL in TPS65910 datasheet. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: [0, 1, 2, 3] |
| |
| ti,en-ck32k-xtal: |
| type: boolean |
| description: Enable external 32-kHz crystal oscillator. |
| |
| ti,en-gpio-sleep: |
| description: | |
| Enable sleep control for gpios. |
| $ref: /schemas/types.yaml#/definitions/uint32-array |
| minItems: 9 |
| maxItems: 9 |
| items: |
| minimum: 0 |
| maximum: 1 |
| |
| ti,system-power-controller: |
| type: boolean |
| description: Identify whether or not this pmic controls the system power |
| |
| ti,sleep-enable: |
| type: boolean |
| description: Enable SLEEP state. |
| |
| ti,sleep-keep-therm: |
| type: boolean |
| description: Keep thermal monitoring on in sleep state. |
| |
| ti,sleep-keep-ck32k: |
| type: boolean |
| description: Keep the 32KHz clock output on in sleep state. |
| |
| ti,sleep-keep-hsclk: |
| type: boolean |
| description: Keep high speed internal clock on in sleep state. |
| |
| regulators: |
| type: object |
| additionalProperties: false |
| description: List of regulators provided by this controller. |
| |
| patternProperties: |
| "^(vrtc|vio|vpll|vdac|vmmc|vbb|vddctrl)$": |
| type: object |
| $ref: /schemas/regulator/regulator.yaml# |
| properties: |
| ti,regulator-ext-sleep-control: |
| description: | |
| Enable external sleep control through external inputs: |
| [0 (not enabled), 1 (EN1), 2 (EN2) or 4(EN3)]. |
| If this property is not defined, it defaults to 0 (not enabled). |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: [0, 1, 2, 4, 8] |
| unevaluatedProperties: false |
| |
| "^(vdd[1-3]|vaux([1-2]|33)|vdig[1-2])$": |
| type: object |
| $ref: /schemas/regulator/regulator.yaml# |
| properties: |
| ti,regulator-ext-sleep-control: |
| description: | |
| Enable external sleep control through external inputs: |
| [0 (not enabled), 1 (EN1), 2 (EN2) or 4(EN3)]. |
| If this property is not defined, it defaults to 0 (not enabled). |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: [0, 1, 2, 4, 8] |
| unevaluatedProperties: false |
| |
| "^ldo[1-8]$": |
| type: object |
| $ref: /schemas/regulator/regulator.yaml# |
| properties: |
| ti,regulator-ext-sleep-control: |
| description: | |
| Enable external sleep control through external inputs: |
| [0 (not enabled), 1 (EN1), 2 (EN2) or 4(EN3)]. |
| If this property is not defined, it defaults to 0 (not enabled). |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: [0, 1, 2, 4, 8] |
| unevaluatedProperties: false |
| |
| patternProperties: |
| "^(vcc(io|[1-7])-supply)$": |
| description: | |
| Input voltage supply phandle for regulators. |
| These entries are required if PMIC regulators are enabled, or else it |
| can cause the regulator registration to fail. |
| |
| If some input supply is powered through battery or always-on supply, then |
| it is also required to have these parameters with the proper node handle for always-on |
| power supply. |
| tps65910: |
| vcc1-supply: VDD1 input. |
| vcc2-supply: VDD2 input. |
| vcc3-supply: VAUX33 and VMMC input. |
| vcc4-supply: VAUX1 and VAUX2 input. |
| vcc5-supply: VPLL and VDAC input. |
| vcc6-supply: VDIG1 and VDIG2 input. |
| vcc7-supply: VRTC and VBB input. |
| vccio-supply: VIO input. |
| tps65911: |
| vcc1-supply: VDD1 input. |
| vcc2-supply: VDD2 input. |
| vcc3-supply: LDO6, LDO7 and LDO8 input. |
| vcc4-supply: LDO5 input. |
| vcc5-supply: LDO3 and LDO4 input. |
| vcc6-supply: LDO1 and LDO2 input. |
| vcc7-supply: VRTC input. |
| vccio-supply: VIO input. |
| |
| required: |
| - compatible |
| - reg |
| - gpio-controller |
| - '#gpio-cells' |
| - regulators |
| |
| additionalProperties: false |
| |
| allOf: |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - ti,tps65910 |
| then: |
| properties: |
| regulators: |
| patternProperties: |
| "^(ldo[1-8]|vddctrl)$": false |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - ti,tps65911 |
| then: |
| properties: |
| regulators: |
| patternProperties: |
| "^(vdd3|vaux([1-2]|33)|vdig[1-2])$": false |
| "^(vpll|vdac|vmmc|vbb)$": false |
| |
| examples: |
| - | |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| i2c { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| pmic: tps65910@2d { |
| compatible = "ti,tps65910"; |
| reg = <0x2d>; |
| interrupt-parent = <&intc>; |
| interrupts = < 0 118 0x04 >; |
| |
| #gpio-cells = <2>; |
| gpio-controller; |
| |
| #interrupt-cells = <2>; |
| interrupt-controller; |
| |
| ti,system-power-controller; |
| |
| ti,vmbch-threshold = <0>; |
| ti,vmbch2-threshold = <0>; |
| ti,en-ck32k-xtal; |
| ti,en-gpio-sleep = <0 0 1 0 0 0 0 0 0>; |
| |
| vcc1-supply = <®_parent>; |
| vcc2-supply = <&some_reg>; |
| vcc3-supply = <&vbat>; |
| vcc4-supply = <&vbat>; |
| vcc5-supply = <&vbat>; |
| vcc6-supply = <&vbat>; |
| vcc7-supply = <&vbat>; |
| vccio-supply = <&vbat>; |
| |
| regulators { |
| vio_reg: vio { |
| regulator-name = "vio"; |
| regulator-min-microvolt = <1500000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| vdd1_reg: vdd1 { |
| regulator-name = "vdd1"; |
| regulator-min-microvolt = < 600000>; |
| regulator-max-microvolt = <1500000>; |
| regulator-always-on; |
| regulator-boot-on; |
| ti,regulator-ext-sleep-control = <0>; |
| }; |
| vdd2_reg: vdd2 { |
| regulator-name = "vdd2"; |
| regulator-min-microvolt = < 600000>; |
| regulator-max-microvolt = <1500000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| vdd3_reg: vdd3 { |
| regulator-name = "vdd3"; |
| regulator-min-microvolt = <5000000>; |
| regulator-max-microvolt = <5000000>; |
| regulator-always-on; |
| }; |
| vdig1_reg: vdig1 { |
| regulator-name = "vdig1"; |
| regulator-min-microvolt = <1200000>; |
| regulator-max-microvolt = <2700000>; |
| regulator-always-on; |
| }; |
| vdig2_reg: vdig2 { |
| regulator-name = "vdig2"; |
| regulator-min-microvolt = <1000000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-always-on; |
| }; |
| vpll_reg: vpll { |
| regulator-name = "vpll"; |
| regulator-min-microvolt = <1000000>; |
| regulator-max-microvolt = <2500000>; |
| regulator-always-on; |
| }; |
| vdac_reg: vdac { |
| regulator-name = "vdac"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <2850000>; |
| regulator-always-on; |
| }; |
| vaux1_reg: vaux1 { |
| regulator-name = "vaux1"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <2850000>; |
| regulator-always-on; |
| }; |
| vaux2_reg: vaux2 { |
| regulator-name = "vaux2"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-always-on; |
| }; |
| vaux33_reg: vaux33 { |
| regulator-name = "vaux33"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-always-on; |
| }; |
| vmmc_reg: vmmc { |
| regulator-name = "vmmc"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| }; |
| }; |
| }; |