1*4882a593Smuzhiyun# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*4882a593Smuzhiyun%YAML 1.2 3*4882a593Smuzhiyun--- 4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/mfd/st,stpmic1.yaml# 5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml# 6*4882a593Smuzhiyun 7*4882a593Smuzhiyuntitle: STMicroelectonics STPMIC1 Power Management IC bindings 8*4882a593Smuzhiyun 9*4882a593Smuzhiyundescription: STMicroelectronics STPMIC1 Power Management IC 10*4882a593Smuzhiyun 11*4882a593Smuzhiyunmaintainers: 12*4882a593Smuzhiyun - pascal Paillet <p.paillet@st.com> 13*4882a593Smuzhiyun 14*4882a593Smuzhiyunproperties: 15*4882a593Smuzhiyun compatible: 16*4882a593Smuzhiyun const: st,stpmic1 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun reg: 19*4882a593Smuzhiyun const: 0x33 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun interrupts: 22*4882a593Smuzhiyun maxItems: 1 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun "#interrupt-cells": 25*4882a593Smuzhiyun const: 2 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun interrupt-controller: true 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun onkey: 30*4882a593Smuzhiyun type: object 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun $ref: ../input/input.yaml 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun properties: 35*4882a593Smuzhiyun compatible: 36*4882a593Smuzhiyun const: st,stpmic1-onkey 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun interrupts: 39*4882a593Smuzhiyun items: 40*4882a593Smuzhiyun - description: onkey-falling, happens when onkey is pressed. IT_PONKEY_F of pmic 41*4882a593Smuzhiyun - description: onkey-rising, happens when onkey is released. IT_PONKEY_R of pmic 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun interrupt-names: 44*4882a593Smuzhiyun items: 45*4882a593Smuzhiyun - const: onkey-falling 46*4882a593Smuzhiyun - const: onkey-rising 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun st,onkey-clear-cc-flag: 49*4882a593Smuzhiyun description: onkey is able power on after an over-current shutdown event. 50*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/flag 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun st,onkey-pu-inactive: 53*4882a593Smuzhiyun description: onkey pull up is not active 54*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/flag 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun power-off-time-sec: 57*4882a593Smuzhiyun minimum: 1 58*4882a593Smuzhiyun maximum: 16 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun required: 61*4882a593Smuzhiyun - compatible 62*4882a593Smuzhiyun - interrupts 63*4882a593Smuzhiyun - interrupt-names 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun additionalProperties: false 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun watchdog: 68*4882a593Smuzhiyun type: object 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun $ref: ../watchdog/watchdog.yaml 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun properties: 73*4882a593Smuzhiyun compatible: 74*4882a593Smuzhiyun const: st,stpmic1-wdt 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun timeout-sec: true 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun required: 79*4882a593Smuzhiyun - compatible 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun additionalProperties: false 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun regulators: 84*4882a593Smuzhiyun type: object 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun description: | 87*4882a593Smuzhiyun Available Regulators in STPMIC1 device are: 88*4882a593Smuzhiyun - buck1 for Buck BUCK1 89*4882a593Smuzhiyun - buck2 for Buck BUCK2 90*4882a593Smuzhiyun - buck3 for Buck BUCK3 91*4882a593Smuzhiyun - buck4 for Buck BUCK4 92*4882a593Smuzhiyun - ldo1 for LDO LDO1 93*4882a593Smuzhiyun - ldo2 for LDO LDO2 94*4882a593Smuzhiyun - ldo3 for LDO LDO3 95*4882a593Smuzhiyun - ldo4 for LDO LDO4 96*4882a593Smuzhiyun - ldo5 for LDO LDO5 97*4882a593Smuzhiyun - ldo6 for LDO LDO6 98*4882a593Smuzhiyun - vref_ddr for LDO Vref DDR 99*4882a593Smuzhiyun - boost for Buck BOOST 100*4882a593Smuzhiyun - pwr_sw1 for VBUS_OTG switch 101*4882a593Smuzhiyun - pwr_sw2 for SW_OUT switch 102*4882a593Smuzhiyun Switches are fixed voltage regulators with only enable/disable capability. 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun properties: 105*4882a593Smuzhiyun compatible: 106*4882a593Smuzhiyun const: st,stpmic1-regulators 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun ldo3: 109*4882a593Smuzhiyun type: object 110*4882a593Smuzhiyun 111*4882a593Smuzhiyun properties: 112*4882a593Smuzhiyun interrupts: 113*4882a593Smuzhiyun maxItems: 1 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun st,mask-reset: 116*4882a593Smuzhiyun description: mask reset for this regulator, the regulator configuration 117*4882a593Smuzhiyun is maintained during pmic reset. 118*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/flag 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun regulator-name: true 121*4882a593Smuzhiyun regulator-boot-on: true 122*4882a593Smuzhiyun regulator-always-on: true 123*4882a593Smuzhiyun regulator-min-microvolt: true 124*4882a593Smuzhiyun regulator-max-microvolt: true 125*4882a593Smuzhiyun regulator-allow-bypass: true 126*4882a593Smuzhiyun regulator-over-current-protection: true 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun additionalProperties: false 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun ldo4: 131*4882a593Smuzhiyun type: object 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun properties: 134*4882a593Smuzhiyun interrupts: 135*4882a593Smuzhiyun maxItems: 1 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun st,mask-reset: 138*4882a593Smuzhiyun description: mask reset for this regulator, the regulator configuration 139*4882a593Smuzhiyun is maintained during pmic reset. 140*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/flag 141*4882a593Smuzhiyun 142*4882a593Smuzhiyun regulator-name: true 143*4882a593Smuzhiyun regulator-boot-on: true 144*4882a593Smuzhiyun regulator-always-on: true 145*4882a593Smuzhiyun regulator-over-current-protection: true 146*4882a593Smuzhiyun 147*4882a593Smuzhiyun additionalProperties: false 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun vref_ddr: 150*4882a593Smuzhiyun type: object 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun properties: 153*4882a593Smuzhiyun interrupts: 154*4882a593Smuzhiyun maxItems: 1 155*4882a593Smuzhiyun 156*4882a593Smuzhiyun st,mask-reset: 157*4882a593Smuzhiyun description: mask reset for this regulator, the regulator configuration 158*4882a593Smuzhiyun is maintained during pmic reset. 159*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/flag 160*4882a593Smuzhiyun 161*4882a593Smuzhiyun regulator-name: true 162*4882a593Smuzhiyun regulator-boot-on: true 163*4882a593Smuzhiyun regulator-always-on: true 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun additionalProperties: false 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun boost: 168*4882a593Smuzhiyun type: object 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun properties: 171*4882a593Smuzhiyun interrupts: 172*4882a593Smuzhiyun maxItems: 1 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun st,mask-reset: 175*4882a593Smuzhiyun description: mask reset for this regulator, the regulator configuration 176*4882a593Smuzhiyun is maintained during pmic reset. 177*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/flag 178*4882a593Smuzhiyun 179*4882a593Smuzhiyun regulator-name: true 180*4882a593Smuzhiyun regulator-boot-on: true 181*4882a593Smuzhiyun regulator-always-on: true 182*4882a593Smuzhiyun regulator-over-current-protection: true 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun additionalProperties: false 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun patternProperties: 187*4882a593Smuzhiyun "^(buck[1-4]|ldo[1-6]|boost|pwr_sw[1-2])-supply$": 188*4882a593Smuzhiyun description: STPMIC1 voltage regulators supplies 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun "^(buck[1-4]|ldo[1-6]|boost|vref_ddr|pwr_sw[1-2])$": 191*4882a593Smuzhiyun $ref: ../regulator/regulator.yaml 192*4882a593Smuzhiyun 193*4882a593Smuzhiyun "^ldo[1-2,5-6]$": 194*4882a593Smuzhiyun type: object 195*4882a593Smuzhiyun 196*4882a593Smuzhiyun properties: 197*4882a593Smuzhiyun interrupts: 198*4882a593Smuzhiyun maxItems: 1 199*4882a593Smuzhiyun 200*4882a593Smuzhiyun st,mask-reset: 201*4882a593Smuzhiyun description: mask reset for this regulator, the regulator configuration 202*4882a593Smuzhiyun is maintained during pmic reset. 203*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/flag 204*4882a593Smuzhiyun 205*4882a593Smuzhiyun regulator-name: true 206*4882a593Smuzhiyun regulator-boot-on: true 207*4882a593Smuzhiyun regulator-always-on: true 208*4882a593Smuzhiyun regulator-min-microvolt: true 209*4882a593Smuzhiyun regulator-max-microvolt: true 210*4882a593Smuzhiyun regulator-over-current-protection: true 211*4882a593Smuzhiyun regulator-enable-ramp-delay: true 212*4882a593Smuzhiyun 213*4882a593Smuzhiyun additionalProperties: false 214*4882a593Smuzhiyun 215*4882a593Smuzhiyun "^buck[1-4]$": 216*4882a593Smuzhiyun type: object 217*4882a593Smuzhiyun 218*4882a593Smuzhiyun properties: 219*4882a593Smuzhiyun interrupts: 220*4882a593Smuzhiyun maxItems: 1 221*4882a593Smuzhiyun 222*4882a593Smuzhiyun st,mask-reset: 223*4882a593Smuzhiyun description: mask reset for this regulator, the regulator configuration 224*4882a593Smuzhiyun is maintained during pmic reset. 225*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/flag 226*4882a593Smuzhiyun 227*4882a593Smuzhiyun regulator-name: true 228*4882a593Smuzhiyun regulator-boot-on: true 229*4882a593Smuzhiyun regulator-always-on: true 230*4882a593Smuzhiyun regulator-min-microvolt: true 231*4882a593Smuzhiyun regulator-max-microvolt: true 232*4882a593Smuzhiyun regulator-initial-mode: true 233*4882a593Smuzhiyun regulator-pull-down: true 234*4882a593Smuzhiyun regulator-over-current-protection: true 235*4882a593Smuzhiyun regulator-enable-ramp-delay: true 236*4882a593Smuzhiyun 237*4882a593Smuzhiyun additionalProperties: false 238*4882a593Smuzhiyun 239*4882a593Smuzhiyun "^pwr_sw[1-2]$": 240*4882a593Smuzhiyun type: object 241*4882a593Smuzhiyun 242*4882a593Smuzhiyun properties: 243*4882a593Smuzhiyun interrupts: 244*4882a593Smuzhiyun maxItems: 1 245*4882a593Smuzhiyun 246*4882a593Smuzhiyun regulator-name: true 247*4882a593Smuzhiyun regulator-boot-on: true 248*4882a593Smuzhiyun regulator-always-on: true 249*4882a593Smuzhiyun regulator-over-current-protection: true 250*4882a593Smuzhiyun regulator-active-discharge: true 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun additionalProperties: false 253*4882a593Smuzhiyun 254*4882a593Smuzhiyun required: 255*4882a593Smuzhiyun - compatible 256*4882a593Smuzhiyun 257*4882a593Smuzhiyun additionalProperties: false 258*4882a593Smuzhiyun 259*4882a593SmuzhiyunadditionalProperties: false 260*4882a593Smuzhiyun 261*4882a593Smuzhiyunrequired: 262*4882a593Smuzhiyun - compatible 263*4882a593Smuzhiyun - reg 264*4882a593Smuzhiyun - interrupts 265*4882a593Smuzhiyun - "#interrupt-cells" 266*4882a593Smuzhiyun - interrupt-controller 267*4882a593Smuzhiyun 268*4882a593Smuzhiyunexamples: 269*4882a593Smuzhiyun - | 270*4882a593Smuzhiyun #include <dt-bindings/mfd/st,stpmic1.h> 271*4882a593Smuzhiyun #include <dt-bindings/interrupt-controller/arm-gic.h> 272*4882a593Smuzhiyun i2c { 273*4882a593Smuzhiyun #address-cells = <1>; 274*4882a593Smuzhiyun #size-cells = <0>; 275*4882a593Smuzhiyun pmic@33 { 276*4882a593Smuzhiyun compatible = "st,stpmic1"; 277*4882a593Smuzhiyun reg = <0x33>; 278*4882a593Smuzhiyun interrupt-parent = <&gpioa>; 279*4882a593Smuzhiyun interrupts = <0 2>; 280*4882a593Smuzhiyun 281*4882a593Smuzhiyun interrupt-controller; 282*4882a593Smuzhiyun #interrupt-cells = <2>; 283*4882a593Smuzhiyun 284*4882a593Smuzhiyun onkey { 285*4882a593Smuzhiyun compatible = "st,stpmic1-onkey"; 286*4882a593Smuzhiyun interrupts = <IT_PONKEY_F 0>,<IT_PONKEY_R 1>; 287*4882a593Smuzhiyun interrupt-names = "onkey-falling", "onkey-rising"; 288*4882a593Smuzhiyun power-off-time-sec = <10>; 289*4882a593Smuzhiyun }; 290*4882a593Smuzhiyun 291*4882a593Smuzhiyun watchdog { 292*4882a593Smuzhiyun compatible = "st,stpmic1-wdt"; 293*4882a593Smuzhiyun }; 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun regulators { 296*4882a593Smuzhiyun compatible = "st,stpmic1-regulators"; 297*4882a593Smuzhiyun 298*4882a593Smuzhiyun ldo6-supply = <&v3v3>; 299*4882a593Smuzhiyun 300*4882a593Smuzhiyun buck1 { 301*4882a593Smuzhiyun regulator-name = "vdd_core"; 302*4882a593Smuzhiyun interrupts = <IT_CURLIM_BUCK1 0>; 303*4882a593Smuzhiyun st,mask-reset; 304*4882a593Smuzhiyun regulator-boot-on; 305*4882a593Smuzhiyun regulator-min-microvolt = <700000>; 306*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 307*4882a593Smuzhiyun }; 308*4882a593Smuzhiyun 309*4882a593Smuzhiyun buck3 { 310*4882a593Smuzhiyun regulator-name = "vdd"; 311*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 312*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 313*4882a593Smuzhiyun regulator-boot-on; 314*4882a593Smuzhiyun regulator-pull-down; 315*4882a593Smuzhiyun }; 316*4882a593Smuzhiyun 317*4882a593Smuzhiyun buck4 { 318*4882a593Smuzhiyun regulator-name = "v3v3"; 319*4882a593Smuzhiyun interrupts = <IT_CURLIM_BUCK4 0>; 320*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 321*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 322*4882a593Smuzhiyun }; 323*4882a593Smuzhiyun 324*4882a593Smuzhiyun ldo6 { 325*4882a593Smuzhiyun regulator-name = "v1v8"; 326*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 327*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 328*4882a593Smuzhiyun regulator-over-current-protection; 329*4882a593Smuzhiyun }; 330*4882a593Smuzhiyun }; 331*4882a593Smuzhiyun }; 332*4882a593Smuzhiyun }; 333*4882a593Smuzhiyun 334*4882a593Smuzhiyun... 335