1*413ec729SPaul Cercueil# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*413ec729SPaul Cercueil%YAML 1.2 3*413ec729SPaul Cercueil--- 4*413ec729SPaul Cercueil$id: http://devicetree.org/schemas/regulator/active-semi,act8945a.yaml# 5*413ec729SPaul Cercueil$schema: http://devicetree.org/meta-schemas/core.yaml# 6*413ec729SPaul Cercueil 7*413ec729SPaul Cercueiltitle: Active-semi ACT8945a regulator 8*413ec729SPaul Cercueil 9*413ec729SPaul Cercueilmaintainers: 10*413ec729SPaul Cercueil - Paul Cercueil <paul@crapouillou.net> 11*413ec729SPaul Cercueil 12*413ec729SPaul Cercueilproperties: 13*413ec729SPaul Cercueil compatible: 14*413ec729SPaul Cercueil const: active-semi,act8945a 15*413ec729SPaul Cercueil 16*413ec729SPaul Cercueil reg: 17*413ec729SPaul Cercueil maxItems: 1 18*413ec729SPaul Cercueil 19*413ec729SPaul Cercueil system-power-controller: 20*413ec729SPaul Cercueil description: 21*413ec729SPaul Cercueil Indicates that the ACT8945a is responsible for powering OFF 22*413ec729SPaul Cercueil the system. 23*413ec729SPaul Cercueil type: boolean 24*413ec729SPaul Cercueil 25*413ec729SPaul Cercueil active-semi,vsel-high: 26*413ec729SPaul Cercueil description: 27*413ec729SPaul Cercueil Indicates the VSEL pin is high. If this property is missing, 28*413ec729SPaul Cercueil the VSEL pin is assumed to be low. 29*413ec729SPaul Cercueil type: boolean 30*413ec729SPaul Cercueil 31*413ec729SPaul Cercueil regulators: 32*413ec729SPaul Cercueil type: object 33*413ec729SPaul Cercueil additionalProperties: false 34*413ec729SPaul Cercueil 35*413ec729SPaul Cercueil properties: 36*413ec729SPaul Cercueil REG_DCDC1: 37*413ec729SPaul Cercueil type: object 38*413ec729SPaul Cercueil $ref: /schemas/regulator/regulator.yaml# 39*413ec729SPaul Cercueil unevaluatedProperties: false 40*413ec729SPaul Cercueil 41*413ec729SPaul Cercueil properties: 42*413ec729SPaul Cercueil vp1-supply: 43*413ec729SPaul Cercueil description: Handle to the VP1 input supply 44*413ec729SPaul Cercueil 45*413ec729SPaul Cercueil REG_DCDC2: 46*413ec729SPaul Cercueil type: object 47*413ec729SPaul Cercueil $ref: /schemas/regulator/regulator.yaml# 48*413ec729SPaul Cercueil unevaluatedProperties: false 49*413ec729SPaul Cercueil 50*413ec729SPaul Cercueil properties: 51*413ec729SPaul Cercueil vp2-supply: 52*413ec729SPaul Cercueil description: Handle to the VP2 input supply 53*413ec729SPaul Cercueil 54*413ec729SPaul Cercueil REG_DCDC3: 55*413ec729SPaul Cercueil type: object 56*413ec729SPaul Cercueil $ref: /schemas/regulator/regulator.yaml# 57*413ec729SPaul Cercueil unevaluatedProperties: false 58*413ec729SPaul Cercueil 59*413ec729SPaul Cercueil properties: 60*413ec729SPaul Cercueil vp3-supply: 61*413ec729SPaul Cercueil description: Handle to the VP3 input supply 62*413ec729SPaul Cercueil 63*413ec729SPaul Cercueil patternProperties: 64*413ec729SPaul Cercueil "^REG_LDO[1-2]$": 65*413ec729SPaul Cercueil type: object 66*413ec729SPaul Cercueil $ref: /schemas/regulator/regulator.yaml# 67*413ec729SPaul Cercueil unevaluatedProperties: false 68*413ec729SPaul Cercueil 69*413ec729SPaul Cercueil properties: 70*413ec729SPaul Cercueil inl45-supply: 71*413ec729SPaul Cercueil description: Handle to the INL45 input supply 72*413ec729SPaul Cercueil 73*413ec729SPaul Cercueil "^REG_LDO[3-4]$": 74*413ec729SPaul Cercueil type: object 75*413ec729SPaul Cercueil $ref: /schemas/regulator/regulator.yaml# 76*413ec729SPaul Cercueil unevaluatedProperties: false 77*413ec729SPaul Cercueil 78*413ec729SPaul Cercueil properties: 79*413ec729SPaul Cercueil inl67-supply: 80*413ec729SPaul Cercueil description: Handle to the INL67 input supply 81*413ec729SPaul Cercueil 82*413ec729SPaul Cercueil charger: 83*413ec729SPaul Cercueil type: object 84*413ec729SPaul Cercueil additionalProperties: false 85*413ec729SPaul Cercueil 86*413ec729SPaul Cercueil properties: 87*413ec729SPaul Cercueil compatible: 88*413ec729SPaul Cercueil const: active-semi,act8945a-charger 89*413ec729SPaul Cercueil 90*413ec729SPaul Cercueil interrupts: 91*413ec729SPaul Cercueil maxItems: 1 92*413ec729SPaul Cercueil 93*413ec729SPaul Cercueil active-semi,chglev-gpios: 94*413ec729SPaul Cercueil description: CGHLEV GPIO 95*413ec729SPaul Cercueil maxItems: 1 96*413ec729SPaul Cercueil 97*413ec729SPaul Cercueil active-semi,lbo-gpios: 98*413ec729SPaul Cercueil description: LBO GPIO 99*413ec729SPaul Cercueil maxItems: 1 100*413ec729SPaul Cercueil 101*413ec729SPaul Cercueil active-semi,input-voltage-threshold-microvolt: 102*413ec729SPaul Cercueil description: Input voltage threshold 103*413ec729SPaul Cercueil maxItems: 1 104*413ec729SPaul Cercueil 105*413ec729SPaul Cercueil active-semi,precondition-timeout: 106*413ec729SPaul Cercueil description: Precondition timeout 107*413ec729SPaul Cercueil $ref: /schemas/types.yaml#/definitions/uint32 108*413ec729SPaul Cercueil 109*413ec729SPaul Cercueil active-semi,total-timeout: 110*413ec729SPaul Cercueil description: Total timeout 111*413ec729SPaul Cercueil $ref: /schemas/types.yaml#/definitions/uint32 112*413ec729SPaul Cercueil 113*413ec729SPaul Cercueil required: 114*413ec729SPaul Cercueil - compatible 115*413ec729SPaul Cercueil - interrupts 116*413ec729SPaul Cercueil 117*413ec729SPaul CercueiladditionalProperties: false 118*413ec729SPaul Cercueil 119*413ec729SPaul Cercueilrequired: 120*413ec729SPaul Cercueil - reg 121*413ec729SPaul Cercueil - compatible 122*413ec729SPaul Cercueil - regulators 123*413ec729SPaul Cercueil 124*413ec729SPaul Cercueilexamples: 125*413ec729SPaul Cercueil - | 126*413ec729SPaul Cercueil #include <dt-bindings/gpio/gpio.h> 127*413ec729SPaul Cercueil #include <dt-bindings/interrupt-controller/irq.h> 128*413ec729SPaul Cercueil #include <dt-bindings/mfd/atmel-flexcom.h> 129*413ec729SPaul Cercueil #include <dt-bindings/regulator/active-semi,8945a-regulator.h> 130*413ec729SPaul Cercueil 131*413ec729SPaul Cercueil i2c { 132*413ec729SPaul Cercueil #address-cells = <1>; 133*413ec729SPaul Cercueil #size-cells = <0>; 134*413ec729SPaul Cercueil 135*413ec729SPaul Cercueil pmic@5b { 136*413ec729SPaul Cercueil compatible = "active-semi,act8945a"; 137*413ec729SPaul Cercueil reg = <0x5b>; 138*413ec729SPaul Cercueil active-semi,vsel-high; 139*413ec729SPaul Cercueil 140*413ec729SPaul Cercueil regulators { 141*413ec729SPaul Cercueil REG_DCDC1 { 142*413ec729SPaul Cercueil regulator-name = "VDD_1V35"; 143*413ec729SPaul Cercueil regulator-min-microvolt = <1350000>; 144*413ec729SPaul Cercueil regulator-max-microvolt = <1350000>; 145*413ec729SPaul Cercueil regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_FIXED>, 146*413ec729SPaul Cercueil <ACT8945A_REGULATOR_MODE_LOWPOWER>; 147*413ec729SPaul Cercueil regulator-initial-mode = <ACT8945A_REGULATOR_MODE_FIXED>; 148*413ec729SPaul Cercueil regulator-always-on; 149*413ec729SPaul Cercueil 150*413ec729SPaul Cercueil regulator-state-mem { 151*413ec729SPaul Cercueil regulator-on-in-suspend; 152*413ec729SPaul Cercueil regulator-suspend-min-microvolt = <1400000>; 153*413ec729SPaul Cercueil regulator-suspend-max-microvolt = <1400000>; 154*413ec729SPaul Cercueil regulator-changeable-in-suspend; 155*413ec729SPaul Cercueil regulator-mode = <ACT8945A_REGULATOR_MODE_LOWPOWER>; 156*413ec729SPaul Cercueil }; 157*413ec729SPaul Cercueil }; 158*413ec729SPaul Cercueil 159*413ec729SPaul Cercueil REG_DCDC2 { 160*413ec729SPaul Cercueil regulator-name = "VDD_1V2"; 161*413ec729SPaul Cercueil regulator-min-microvolt = <1100000>; 162*413ec729SPaul Cercueil regulator-max-microvolt = <1300000>; 163*413ec729SPaul Cercueil regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_FIXED>, 164*413ec729SPaul Cercueil <ACT8945A_REGULATOR_MODE_LOWPOWER>; 165*413ec729SPaul Cercueil regulator-initial-mode = <ACT8945A_REGULATOR_MODE_FIXED>; 166*413ec729SPaul Cercueil regulator-always-on; 167*413ec729SPaul Cercueil 168*413ec729SPaul Cercueil regulator-state-mem { 169*413ec729SPaul Cercueil regulator-off-in-suspend; 170*413ec729SPaul Cercueil }; 171*413ec729SPaul Cercueil }; 172*413ec729SPaul Cercueil 173*413ec729SPaul Cercueil REG_DCDC3 { 174*413ec729SPaul Cercueil regulator-name = "VDD_3V3"; 175*413ec729SPaul Cercueil regulator-min-microvolt = <3300000>; 176*413ec729SPaul Cercueil regulator-max-microvolt = <3300000>; 177*413ec729SPaul Cercueil regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_FIXED>, 178*413ec729SPaul Cercueil <ACT8945A_REGULATOR_MODE_LOWPOWER>; 179*413ec729SPaul Cercueil regulator-initial-mode = <ACT8945A_REGULATOR_MODE_FIXED>; 180*413ec729SPaul Cercueil regulator-always-on; 181*413ec729SPaul Cercueil 182*413ec729SPaul Cercueil regulator-state-mem { 183*413ec729SPaul Cercueil regulator-off-in-suspend; 184*413ec729SPaul Cercueil }; 185*413ec729SPaul Cercueil }; 186*413ec729SPaul Cercueil 187*413ec729SPaul Cercueil REG_LDO1 { 188*413ec729SPaul Cercueil regulator-name = "VDD_FUSE"; 189*413ec729SPaul Cercueil regulator-min-microvolt = <2500000>; 190*413ec729SPaul Cercueil regulator-max-microvolt = <2500000>; 191*413ec729SPaul Cercueil regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>, 192*413ec729SPaul Cercueil <ACT8945A_REGULATOR_MODE_LOWPOWER>; 193*413ec729SPaul Cercueil regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>; 194*413ec729SPaul Cercueil regulator-always-on; 195*413ec729SPaul Cercueil 196*413ec729SPaul Cercueil regulator-state-mem { 197*413ec729SPaul Cercueil regulator-off-in-suspend; 198*413ec729SPaul Cercueil }; 199*413ec729SPaul Cercueil }; 200*413ec729SPaul Cercueil 201*413ec729SPaul Cercueil REG_LDO2 { 202*413ec729SPaul Cercueil regulator-name = "VDD_3V3_LP"; 203*413ec729SPaul Cercueil regulator-min-microvolt = <3300000>; 204*413ec729SPaul Cercueil regulator-max-microvolt = <3300000>; 205*413ec729SPaul Cercueil regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>, 206*413ec729SPaul Cercueil <ACT8945A_REGULATOR_MODE_LOWPOWER>; 207*413ec729SPaul Cercueil regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>; 208*413ec729SPaul Cercueil regulator-always-on; 209*413ec729SPaul Cercueil 210*413ec729SPaul Cercueil regulator-state-mem { 211*413ec729SPaul Cercueil regulator-off-in-suspend; 212*413ec729SPaul Cercueil }; 213*413ec729SPaul Cercueil }; 214*413ec729SPaul Cercueil 215*413ec729SPaul Cercueil REG_LDO3 { 216*413ec729SPaul Cercueil regulator-name = "VDD_LED"; 217*413ec729SPaul Cercueil regulator-min-microvolt = <3300000>; 218*413ec729SPaul Cercueil regulator-max-microvolt = <3300000>; 219*413ec729SPaul Cercueil regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>, 220*413ec729SPaul Cercueil <ACT8945A_REGULATOR_MODE_LOWPOWER>; 221*413ec729SPaul Cercueil regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>; 222*413ec729SPaul Cercueil regulator-always-on; 223*413ec729SPaul Cercueil 224*413ec729SPaul Cercueil regulator-state-mem { 225*413ec729SPaul Cercueil regulator-off-in-suspend; 226*413ec729SPaul Cercueil }; 227*413ec729SPaul Cercueil }; 228*413ec729SPaul Cercueil 229*413ec729SPaul Cercueil REG_LDO4 { 230*413ec729SPaul Cercueil regulator-name = "VDD_SDHC_1V8"; 231*413ec729SPaul Cercueil regulator-min-microvolt = <1800000>; 232*413ec729SPaul Cercueil regulator-max-microvolt = <1800000>; 233*413ec729SPaul Cercueil regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>, 234*413ec729SPaul Cercueil <ACT8945A_REGULATOR_MODE_LOWPOWER>; 235*413ec729SPaul Cercueil regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>; 236*413ec729SPaul Cercueil regulator-always-on; 237*413ec729SPaul Cercueil 238*413ec729SPaul Cercueil regulator-state-mem { 239*413ec729SPaul Cercueil regulator-off-in-suspend; 240*413ec729SPaul Cercueil }; 241*413ec729SPaul Cercueil }; 242*413ec729SPaul Cercueil }; 243*413ec729SPaul Cercueil 244*413ec729SPaul Cercueil charger { 245*413ec729SPaul Cercueil compatible = "active-semi,act8945a-charger"; 246*413ec729SPaul Cercueil pinctrl-names = "default"; 247*413ec729SPaul Cercueil pinctrl-0 = <&pinctrl_charger_chglev &pinctrl_charger_lbo &pinctrl_charger_irq>; 248*413ec729SPaul Cercueil interrupt-parent = <&pioA>; 249*413ec729SPaul Cercueil interrupts = <45 IRQ_TYPE_EDGE_RISING>; 250*413ec729SPaul Cercueil 251*413ec729SPaul Cercueil active-semi,chglev-gpios = <&pioA 12 GPIO_ACTIVE_HIGH>; 252*413ec729SPaul Cercueil active-semi,lbo-gpios = <&pioA 72 GPIO_ACTIVE_LOW>; 253*413ec729SPaul Cercueil active-semi,input-voltage-threshold-microvolt = <6600>; 254*413ec729SPaul Cercueil active-semi,precondition-timeout = <40>; 255*413ec729SPaul Cercueil active-semi,total-timeout = <3>; 256*413ec729SPaul Cercueil }; 257*413ec729SPaul Cercueil }; 258*413ec729SPaul Cercueil }; 259