1*006aa8f5SShree Ramamoorthy# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2*006aa8f5SShree Ramamoorthy%YAML 1.2 3*006aa8f5SShree Ramamoorthy--- 4*006aa8f5SShree Ramamoorthy$id: http://devicetree.org/schemas/mfd/ti,tps65910.yaml# 5*006aa8f5SShree Ramamoorthy$schema: http://devicetree.org/meta-schemas/core.yaml# 6*006aa8f5SShree Ramamoorthy 7*006aa8f5SShree Ramamoorthytitle: TI TPS65910 Power Management Integrated Circuit 8*006aa8f5SShree Ramamoorthy 9*006aa8f5SShree Ramamoorthymaintainers: 10*006aa8f5SShree Ramamoorthy - Shree Ramamoorthy <s-ramamoorthy@ti.com> 11*006aa8f5SShree Ramamoorthy 12*006aa8f5SShree Ramamoorthydescription: 13*006aa8f5SShree Ramamoorthy TPS65910 device is a Power Management IC that provides 3 step-down converters, 14*006aa8f5SShree Ramamoorthy 1 stepup converter, and 8 LDOs. The device contains an embedded power controller (EPC), 15*006aa8f5SShree Ramamoorthy 1 GPIO, and an RTC. 16*006aa8f5SShree Ramamoorthy 17*006aa8f5SShree Ramamoorthyproperties: 18*006aa8f5SShree Ramamoorthy compatible: 19*006aa8f5SShree Ramamoorthy enum: 20*006aa8f5SShree Ramamoorthy - ti,tps65910 21*006aa8f5SShree Ramamoorthy - ti,tps65911 22*006aa8f5SShree Ramamoorthy 23*006aa8f5SShree Ramamoorthy reg: 24*006aa8f5SShree Ramamoorthy description: I2C slave address 25*006aa8f5SShree Ramamoorthy maxItems: 1 26*006aa8f5SShree Ramamoorthy 27*006aa8f5SShree Ramamoorthy gpio-controller: true 28*006aa8f5SShree Ramamoorthy 29*006aa8f5SShree Ramamoorthy '#gpio-cells': 30*006aa8f5SShree Ramamoorthy const: 2 31*006aa8f5SShree Ramamoorthy description: | 32*006aa8f5SShree Ramamoorthy The first cell is the GPIO number. 33*006aa8f5SShree Ramamoorthy The second cell is used to specify additional options <unused>. 34*006aa8f5SShree Ramamoorthy 35*006aa8f5SShree Ramamoorthy interrupts: 36*006aa8f5SShree Ramamoorthy maxItems: 1 37*006aa8f5SShree Ramamoorthy 38*006aa8f5SShree Ramamoorthy interrupt-controller: true 39*006aa8f5SShree Ramamoorthy 40*006aa8f5SShree Ramamoorthy '#interrupt-cells': 41*006aa8f5SShree Ramamoorthy description: Specifies the IRQ number and flags 42*006aa8f5SShree Ramamoorthy const: 2 43*006aa8f5SShree Ramamoorthy 44*006aa8f5SShree Ramamoorthy ti,vmbch-threshold: 45*006aa8f5SShree Ramamoorthy description: | 46*006aa8f5SShree Ramamoorthy (TPS65911) Main battery charged threshold comparator. 47*006aa8f5SShree Ramamoorthy See VMBCH_VSEL in TPS65910 datasheet. 48*006aa8f5SShree Ramamoorthy $ref: /schemas/types.yaml#/definitions/uint32 49*006aa8f5SShree Ramamoorthy enum: [0, 1, 2, 3] 50*006aa8f5SShree Ramamoorthy 51*006aa8f5SShree Ramamoorthy ti,vmbch2-threshold: 52*006aa8f5SShree Ramamoorthy description: | 53*006aa8f5SShree Ramamoorthy (TPS65911) Main battery discharged threshold comparator. 54*006aa8f5SShree Ramamoorthy See VMBCH_VSEL in TPS65910 datasheet. 55*006aa8f5SShree Ramamoorthy $ref: /schemas/types.yaml#/definitions/uint32 56*006aa8f5SShree Ramamoorthy enum: [0, 1, 2, 3] 57*006aa8f5SShree Ramamoorthy 58*006aa8f5SShree Ramamoorthy ti,en-ck32k-xtal: 59*006aa8f5SShree Ramamoorthy type: boolean 60*006aa8f5SShree Ramamoorthy description: Enable external 32-kHz crystal oscillator. 61*006aa8f5SShree Ramamoorthy 62*006aa8f5SShree Ramamoorthy ti,en-gpio-sleep: 63*006aa8f5SShree Ramamoorthy description: | 64*006aa8f5SShree Ramamoorthy Enable sleep control for gpios. 65*006aa8f5SShree Ramamoorthy $ref: /schemas/types.yaml#/definitions/uint32-array 66*006aa8f5SShree Ramamoorthy minItems: 9 67*006aa8f5SShree Ramamoorthy maxItems: 9 68*006aa8f5SShree Ramamoorthy items: 69*006aa8f5SShree Ramamoorthy minimum: 0 70*006aa8f5SShree Ramamoorthy maximum: 1 71*006aa8f5SShree Ramamoorthy 72*006aa8f5SShree Ramamoorthy ti,system-power-controller: 73*006aa8f5SShree Ramamoorthy type: boolean 74*006aa8f5SShree Ramamoorthy description: Identify whether or not this pmic controls the system power 75*006aa8f5SShree Ramamoorthy 76*006aa8f5SShree Ramamoorthy ti,sleep-enable: 77*006aa8f5SShree Ramamoorthy type: boolean 78*006aa8f5SShree Ramamoorthy description: Enable SLEEP state. 79*006aa8f5SShree Ramamoorthy 80*006aa8f5SShree Ramamoorthy ti,sleep-keep-therm: 81*006aa8f5SShree Ramamoorthy type: boolean 82*006aa8f5SShree Ramamoorthy description: Keep thermal monitoring on in sleep state. 83*006aa8f5SShree Ramamoorthy 84*006aa8f5SShree Ramamoorthy ti,sleep-keep-ck32k: 85*006aa8f5SShree Ramamoorthy type: boolean 86*006aa8f5SShree Ramamoorthy description: Keep the 32KHz clock output on in sleep state. 87*006aa8f5SShree Ramamoorthy 88*006aa8f5SShree Ramamoorthy ti,sleep-keep-hsclk: 89*006aa8f5SShree Ramamoorthy type: boolean 90*006aa8f5SShree Ramamoorthy description: Keep high speed internal clock on in sleep state. 91*006aa8f5SShree Ramamoorthy 92*006aa8f5SShree Ramamoorthy regulators: 93*006aa8f5SShree Ramamoorthy type: object 94*006aa8f5SShree Ramamoorthy additionalProperties: false 95*006aa8f5SShree Ramamoorthy description: List of regulators provided by this controller. 96*006aa8f5SShree Ramamoorthy 97*006aa8f5SShree Ramamoorthy patternProperties: 98*006aa8f5SShree Ramamoorthy "^(vrtc|vio|vpll|vdac|vmmc|vbb|vddctrl)$": 99*006aa8f5SShree Ramamoorthy type: object 100*006aa8f5SShree Ramamoorthy $ref: /schemas/regulator/regulator.yaml# 101*006aa8f5SShree Ramamoorthy properties: 102*006aa8f5SShree Ramamoorthy ti,regulator-ext-sleep-control: 103*006aa8f5SShree Ramamoorthy description: | 104*006aa8f5SShree Ramamoorthy Enable external sleep control through external inputs: 105*006aa8f5SShree Ramamoorthy [0 (not enabled), 1 (EN1), 2 (EN2) or 4(EN3)]. 106*006aa8f5SShree Ramamoorthy If this property is not defined, it defaults to 0 (not enabled). 107*006aa8f5SShree Ramamoorthy $ref: /schemas/types.yaml#/definitions/uint32 108*006aa8f5SShree Ramamoorthy enum: [0, 1, 2, 4, 8] 109*006aa8f5SShree Ramamoorthy unevaluatedProperties: false 110*006aa8f5SShree Ramamoorthy 111*006aa8f5SShree Ramamoorthy "^(vdd[1-3]|vaux([1-2]|33)|vdig[1-2])$": 112*006aa8f5SShree Ramamoorthy type: object 113*006aa8f5SShree Ramamoorthy $ref: /schemas/regulator/regulator.yaml# 114*006aa8f5SShree Ramamoorthy properties: 115*006aa8f5SShree Ramamoorthy ti,regulator-ext-sleep-control: 116*006aa8f5SShree Ramamoorthy description: | 117*006aa8f5SShree Ramamoorthy Enable external sleep control through external inputs: 118*006aa8f5SShree Ramamoorthy [0 (not enabled), 1 (EN1), 2 (EN2) or 4(EN3)]. 119*006aa8f5SShree Ramamoorthy If this property is not defined, it defaults to 0 (not enabled). 120*006aa8f5SShree Ramamoorthy $ref: /schemas/types.yaml#/definitions/uint32 121*006aa8f5SShree Ramamoorthy enum: [0, 1, 2, 4, 8] 122*006aa8f5SShree Ramamoorthy unevaluatedProperties: false 123*006aa8f5SShree Ramamoorthy 124*006aa8f5SShree Ramamoorthy "^ldo[1-8]$": 125*006aa8f5SShree Ramamoorthy type: object 126*006aa8f5SShree Ramamoorthy $ref: /schemas/regulator/regulator.yaml# 127*006aa8f5SShree Ramamoorthy properties: 128*006aa8f5SShree Ramamoorthy ti,regulator-ext-sleep-control: 129*006aa8f5SShree Ramamoorthy description: | 130*006aa8f5SShree Ramamoorthy Enable external sleep control through external inputs: 131*006aa8f5SShree Ramamoorthy [0 (not enabled), 1 (EN1), 2 (EN2) or 4(EN3)]. 132*006aa8f5SShree Ramamoorthy If this property is not defined, it defaults to 0 (not enabled). 133*006aa8f5SShree Ramamoorthy $ref: /schemas/types.yaml#/definitions/uint32 134*006aa8f5SShree Ramamoorthy enum: [0, 1, 2, 4, 8] 135*006aa8f5SShree Ramamoorthy unevaluatedProperties: false 136*006aa8f5SShree Ramamoorthy 137*006aa8f5SShree RamamoorthypatternProperties: 138*006aa8f5SShree Ramamoorthy "^(vcc(io|[1-7])-supply)$": 139*006aa8f5SShree Ramamoorthy description: | 140*006aa8f5SShree Ramamoorthy Input voltage supply phandle for regulators. 141*006aa8f5SShree Ramamoorthy These entries are required if PMIC regulators are enabled, or else it 142*006aa8f5SShree Ramamoorthy can cause the regulator registration to fail. 143*006aa8f5SShree Ramamoorthy 144*006aa8f5SShree Ramamoorthy If some input supply is powered through battery or always-on supply, then 145*006aa8f5SShree Ramamoorthy it is also required to have these parameters with the proper node handle for always-on 146*006aa8f5SShree Ramamoorthy power supply. 147*006aa8f5SShree Ramamoorthy tps65910: 148*006aa8f5SShree Ramamoorthy vcc1-supply: VDD1 input. 149*006aa8f5SShree Ramamoorthy vcc2-supply: VDD2 input. 150*006aa8f5SShree Ramamoorthy vcc3-supply: VAUX33 and VMMC input. 151*006aa8f5SShree Ramamoorthy vcc4-supply: VAUX1 and VAUX2 input. 152*006aa8f5SShree Ramamoorthy vcc5-supply: VPLL and VDAC input. 153*006aa8f5SShree Ramamoorthy vcc6-supply: VDIG1 and VDIG2 input. 154*006aa8f5SShree Ramamoorthy vcc7-supply: VRTC and VBB input. 155*006aa8f5SShree Ramamoorthy vccio-supply: VIO input. 156*006aa8f5SShree Ramamoorthy tps65911: 157*006aa8f5SShree Ramamoorthy vcc1-supply: VDD1 input. 158*006aa8f5SShree Ramamoorthy vcc2-supply: VDD2 input. 159*006aa8f5SShree Ramamoorthy vcc3-supply: LDO6, LDO7 and LDO8 input. 160*006aa8f5SShree Ramamoorthy vcc4-supply: LDO5 input. 161*006aa8f5SShree Ramamoorthy vcc5-supply: LDO3 and LDO4 input. 162*006aa8f5SShree Ramamoorthy vcc6-supply: LDO1 and LDO2 input. 163*006aa8f5SShree Ramamoorthy vcc7-supply: VRTC input. 164*006aa8f5SShree Ramamoorthy vccio-supply: VIO input. 165*006aa8f5SShree Ramamoorthy 166*006aa8f5SShree Ramamoorthyrequired: 167*006aa8f5SShree Ramamoorthy - compatible 168*006aa8f5SShree Ramamoorthy - reg 169*006aa8f5SShree Ramamoorthy - interrupts 170*006aa8f5SShree Ramamoorthy - interrupt-controller 171*006aa8f5SShree Ramamoorthy - '#interrupt-cells' 172*006aa8f5SShree Ramamoorthy - gpio-controller 173*006aa8f5SShree Ramamoorthy - '#gpio-cells' 174*006aa8f5SShree Ramamoorthy - regulators 175*006aa8f5SShree Ramamoorthy 176*006aa8f5SShree RamamoorthyadditionalProperties: false 177*006aa8f5SShree Ramamoorthy 178*006aa8f5SShree RamamoorthyallOf: 179*006aa8f5SShree Ramamoorthy - if: 180*006aa8f5SShree Ramamoorthy properties: 181*006aa8f5SShree Ramamoorthy compatible: 182*006aa8f5SShree Ramamoorthy contains: 183*006aa8f5SShree Ramamoorthy enum: 184*006aa8f5SShree Ramamoorthy - ti,tps65910 185*006aa8f5SShree Ramamoorthy then: 186*006aa8f5SShree Ramamoorthy properties: 187*006aa8f5SShree Ramamoorthy regulators: 188*006aa8f5SShree Ramamoorthy patternProperties: 189*006aa8f5SShree Ramamoorthy "^(ldo[1-8]|vddctrl)$": false 190*006aa8f5SShree Ramamoorthy - if: 191*006aa8f5SShree Ramamoorthy properties: 192*006aa8f5SShree Ramamoorthy compatible: 193*006aa8f5SShree Ramamoorthy contains: 194*006aa8f5SShree Ramamoorthy enum: 195*006aa8f5SShree Ramamoorthy - ti,tps65911 196*006aa8f5SShree Ramamoorthy then: 197*006aa8f5SShree Ramamoorthy properties: 198*006aa8f5SShree Ramamoorthy regulators: 199*006aa8f5SShree Ramamoorthy patternProperties: 200*006aa8f5SShree Ramamoorthy "^(vdd3|vaux([1-2]|33)|vdig[1-2])$": false 201*006aa8f5SShree Ramamoorthy "^(vpll|vdac|vmmc|vbb)$": false 202*006aa8f5SShree Ramamoorthy 203*006aa8f5SShree Ramamoorthyexamples: 204*006aa8f5SShree Ramamoorthy - | 205*006aa8f5SShree Ramamoorthy #include <dt-bindings/interrupt-controller/arm-gic.h> 206*006aa8f5SShree Ramamoorthy i2c { 207*006aa8f5SShree Ramamoorthy #address-cells = <1>; 208*006aa8f5SShree Ramamoorthy #size-cells = <0>; 209*006aa8f5SShree Ramamoorthy 210*006aa8f5SShree Ramamoorthy pmic: tps65910@2d { 211*006aa8f5SShree Ramamoorthy compatible = "ti,tps65910"; 212*006aa8f5SShree Ramamoorthy reg = <0x2d>; 213*006aa8f5SShree Ramamoorthy interrupt-parent = <&intc>; 214*006aa8f5SShree Ramamoorthy interrupts = < 0 118 0x04 >; 215*006aa8f5SShree Ramamoorthy 216*006aa8f5SShree Ramamoorthy #gpio-cells = <2>; 217*006aa8f5SShree Ramamoorthy gpio-controller; 218*006aa8f5SShree Ramamoorthy 219*006aa8f5SShree Ramamoorthy #interrupt-cells = <2>; 220*006aa8f5SShree Ramamoorthy interrupt-controller; 221*006aa8f5SShree Ramamoorthy 222*006aa8f5SShree Ramamoorthy ti,system-power-controller; 223*006aa8f5SShree Ramamoorthy 224*006aa8f5SShree Ramamoorthy ti,vmbch-threshold = <0>; 225*006aa8f5SShree Ramamoorthy ti,vmbch2-threshold = <0>; 226*006aa8f5SShree Ramamoorthy ti,en-ck32k-xtal; 227*006aa8f5SShree Ramamoorthy ti,en-gpio-sleep = <0 0 1 0 0 0 0 0 0>; 228*006aa8f5SShree Ramamoorthy 229*006aa8f5SShree Ramamoorthy vcc1-supply = <®_parent>; 230*006aa8f5SShree Ramamoorthy vcc2-supply = <&some_reg>; 231*006aa8f5SShree Ramamoorthy vcc3-supply = <&vbat>; 232*006aa8f5SShree Ramamoorthy vcc4-supply = <&vbat>; 233*006aa8f5SShree Ramamoorthy vcc5-supply = <&vbat>; 234*006aa8f5SShree Ramamoorthy vcc6-supply = <&vbat>; 235*006aa8f5SShree Ramamoorthy vcc7-supply = <&vbat>; 236*006aa8f5SShree Ramamoorthy vccio-supply = <&vbat>; 237*006aa8f5SShree Ramamoorthy 238*006aa8f5SShree Ramamoorthy regulators { 239*006aa8f5SShree Ramamoorthy vio_reg: vio { 240*006aa8f5SShree Ramamoorthy regulator-name = "vio"; 241*006aa8f5SShree Ramamoorthy regulator-min-microvolt = <1500000>; 242*006aa8f5SShree Ramamoorthy regulator-max-microvolt = <3300000>; 243*006aa8f5SShree Ramamoorthy regulator-always-on; 244*006aa8f5SShree Ramamoorthy regulator-boot-on; 245*006aa8f5SShree Ramamoorthy }; 246*006aa8f5SShree Ramamoorthy vdd1_reg: vdd1 { 247*006aa8f5SShree Ramamoorthy regulator-name = "vdd1"; 248*006aa8f5SShree Ramamoorthy regulator-min-microvolt = < 600000>; 249*006aa8f5SShree Ramamoorthy regulator-max-microvolt = <1500000>; 250*006aa8f5SShree Ramamoorthy regulator-always-on; 251*006aa8f5SShree Ramamoorthy regulator-boot-on; 252*006aa8f5SShree Ramamoorthy ti,regulator-ext-sleep-control = <0>; 253*006aa8f5SShree Ramamoorthy }; 254*006aa8f5SShree Ramamoorthy vdd2_reg: vdd2 { 255*006aa8f5SShree Ramamoorthy regulator-name = "vdd2"; 256*006aa8f5SShree Ramamoorthy regulator-min-microvolt = < 600000>; 257*006aa8f5SShree Ramamoorthy regulator-max-microvolt = <1500000>; 258*006aa8f5SShree Ramamoorthy regulator-always-on; 259*006aa8f5SShree Ramamoorthy regulator-boot-on; 260*006aa8f5SShree Ramamoorthy }; 261*006aa8f5SShree Ramamoorthy vdd3_reg: vdd3 { 262*006aa8f5SShree Ramamoorthy regulator-name = "vdd3"; 263*006aa8f5SShree Ramamoorthy regulator-min-microvolt = <5000000>; 264*006aa8f5SShree Ramamoorthy regulator-max-microvolt = <5000000>; 265*006aa8f5SShree Ramamoorthy regulator-always-on; 266*006aa8f5SShree Ramamoorthy }; 267*006aa8f5SShree Ramamoorthy vdig1_reg: vdig1 { 268*006aa8f5SShree Ramamoorthy regulator-name = "vdig1"; 269*006aa8f5SShree Ramamoorthy regulator-min-microvolt = <1200000>; 270*006aa8f5SShree Ramamoorthy regulator-max-microvolt = <2700000>; 271*006aa8f5SShree Ramamoorthy regulator-always-on; 272*006aa8f5SShree Ramamoorthy }; 273*006aa8f5SShree Ramamoorthy vdig2_reg: vdig2 { 274*006aa8f5SShree Ramamoorthy regulator-name = "vdig2"; 275*006aa8f5SShree Ramamoorthy regulator-min-microvolt = <1000000>; 276*006aa8f5SShree Ramamoorthy regulator-max-microvolt = <1800000>; 277*006aa8f5SShree Ramamoorthy regulator-always-on; 278*006aa8f5SShree Ramamoorthy }; 279*006aa8f5SShree Ramamoorthy vpll_reg: vpll { 280*006aa8f5SShree Ramamoorthy regulator-name = "vpll"; 281*006aa8f5SShree Ramamoorthy regulator-min-microvolt = <1000000>; 282*006aa8f5SShree Ramamoorthy regulator-max-microvolt = <2500000>; 283*006aa8f5SShree Ramamoorthy regulator-always-on; 284*006aa8f5SShree Ramamoorthy }; 285*006aa8f5SShree Ramamoorthy vdac_reg: vdac { 286*006aa8f5SShree Ramamoorthy regulator-name = "vdac"; 287*006aa8f5SShree Ramamoorthy regulator-min-microvolt = <1800000>; 288*006aa8f5SShree Ramamoorthy regulator-max-microvolt = <2850000>; 289*006aa8f5SShree Ramamoorthy regulator-always-on; 290*006aa8f5SShree Ramamoorthy }; 291*006aa8f5SShree Ramamoorthy vaux1_reg: vaux1 { 292*006aa8f5SShree Ramamoorthy regulator-name = "vaux1"; 293*006aa8f5SShree Ramamoorthy regulator-min-microvolt = <1800000>; 294*006aa8f5SShree Ramamoorthy regulator-max-microvolt = <2850000>; 295*006aa8f5SShree Ramamoorthy regulator-always-on; 296*006aa8f5SShree Ramamoorthy }; 297*006aa8f5SShree Ramamoorthy vaux2_reg: vaux2 { 298*006aa8f5SShree Ramamoorthy regulator-name = "vaux2"; 299*006aa8f5SShree Ramamoorthy regulator-min-microvolt = <1800000>; 300*006aa8f5SShree Ramamoorthy regulator-max-microvolt = <3300000>; 301*006aa8f5SShree Ramamoorthy regulator-always-on; 302*006aa8f5SShree Ramamoorthy }; 303*006aa8f5SShree Ramamoorthy vaux33_reg: vaux33 { 304*006aa8f5SShree Ramamoorthy regulator-name = "vaux33"; 305*006aa8f5SShree Ramamoorthy regulator-min-microvolt = <1800000>; 306*006aa8f5SShree Ramamoorthy regulator-max-microvolt = <3300000>; 307*006aa8f5SShree Ramamoorthy regulator-always-on; 308*006aa8f5SShree Ramamoorthy }; 309*006aa8f5SShree Ramamoorthy vmmc_reg: vmmc { 310*006aa8f5SShree Ramamoorthy regulator-name = "vmmc"; 311*006aa8f5SShree Ramamoorthy regulator-min-microvolt = <1800000>; 312*006aa8f5SShree Ramamoorthy regulator-max-microvolt = <3300000>; 313*006aa8f5SShree Ramamoorthy regulator-always-on; 314*006aa8f5SShree Ramamoorthy regulator-boot-on; 315*006aa8f5SShree Ramamoorthy }; 316*006aa8f5SShree Ramamoorthy }; 317*006aa8f5SShree Ramamoorthy }; 318*006aa8f5SShree Ramamoorthy }; 319