0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/mfd/st,stpmic1.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: STMicroelectonics STPMIC1 Power Management IC bindings
0008
0009 description: STMicroelectronics STPMIC1 Power Management IC
0010
0011 maintainers:
0012 - pascal Paillet <p.paillet@foss.st.com>
0013
0014 properties:
0015 compatible:
0016 const: st,stpmic1
0017
0018 reg:
0019 const: 0x33
0020
0021 interrupts:
0022 maxItems: 1
0023
0024 "#interrupt-cells":
0025 const: 2
0026
0027 interrupt-controller: true
0028
0029 onkey:
0030 type: object
0031
0032 $ref: ../input/input.yaml
0033
0034 properties:
0035 compatible:
0036 const: st,stpmic1-onkey
0037
0038 interrupts:
0039 items:
0040 - description: onkey-falling, happens when onkey is pressed. IT_PONKEY_F of pmic
0041 - description: onkey-rising, happens when onkey is released. IT_PONKEY_R of pmic
0042
0043 interrupt-names:
0044 items:
0045 - const: onkey-falling
0046 - const: onkey-rising
0047
0048 st,onkey-clear-cc-flag:
0049 description: onkey is able power on after an over-current shutdown event.
0050 $ref: /schemas/types.yaml#/definitions/flag
0051
0052 st,onkey-pu-inactive:
0053 description: onkey pull up is not active
0054 $ref: /schemas/types.yaml#/definitions/flag
0055
0056 power-off-time-sec:
0057 minimum: 1
0058 maximum: 16
0059
0060 required:
0061 - compatible
0062 - interrupts
0063 - interrupt-names
0064
0065 additionalProperties: false
0066
0067 watchdog:
0068 type: object
0069
0070 $ref: ../watchdog/watchdog.yaml
0071
0072 properties:
0073 compatible:
0074 const: st,stpmic1-wdt
0075
0076 timeout-sec: true
0077
0078 required:
0079 - compatible
0080
0081 additionalProperties: false
0082
0083 regulators:
0084 type: object
0085
0086 description: |
0087 Available Regulators in STPMIC1 device are:
0088 - buck1 for Buck BUCK1
0089 - buck2 for Buck BUCK2
0090 - buck3 for Buck BUCK3
0091 - buck4 for Buck BUCK4
0092 - ldo1 for LDO LDO1
0093 - ldo2 for LDO LDO2
0094 - ldo3 for LDO LDO3
0095 - ldo4 for LDO LDO4
0096 - ldo5 for LDO LDO5
0097 - ldo6 for LDO LDO6
0098 - vref_ddr for LDO Vref DDR
0099 - boost for Buck BOOST
0100 - pwr_sw1 for VBUS_OTG switch
0101 - pwr_sw2 for SW_OUT switch
0102 Switches are fixed voltage regulators with only enable/disable capability.
0103
0104 properties:
0105 compatible:
0106 const: st,stpmic1-regulators
0107
0108 ldo3:
0109 type: object
0110
0111 properties:
0112 interrupts:
0113 maxItems: 1
0114
0115 st,mask-reset:
0116 description: mask reset for this regulator, the regulator configuration
0117 is maintained during pmic reset.
0118 $ref: /schemas/types.yaml#/definitions/flag
0119
0120 regulator-name: true
0121 regulator-boot-on: true
0122 regulator-always-on: true
0123 regulator-min-microvolt: true
0124 regulator-max-microvolt: true
0125 regulator-allow-bypass: true
0126 regulator-over-current-protection: true
0127
0128 additionalProperties: false
0129
0130 ldo4:
0131 type: object
0132
0133 properties:
0134 interrupts:
0135 maxItems: 1
0136
0137 st,mask-reset:
0138 description: mask reset for this regulator, the regulator configuration
0139 is maintained during pmic reset.
0140 $ref: /schemas/types.yaml#/definitions/flag
0141
0142 regulator-name: true
0143 regulator-boot-on: true
0144 regulator-always-on: true
0145 regulator-over-current-protection: true
0146
0147 additionalProperties: false
0148
0149 vref_ddr:
0150 type: object
0151
0152 properties:
0153 interrupts:
0154 maxItems: 1
0155
0156 st,mask-reset:
0157 description: mask reset for this regulator, the regulator configuration
0158 is maintained during pmic reset.
0159 $ref: /schemas/types.yaml#/definitions/flag
0160
0161 regulator-name: true
0162 regulator-boot-on: true
0163 regulator-always-on: true
0164
0165 additionalProperties: false
0166
0167 boost:
0168 type: object
0169
0170 properties:
0171 interrupts:
0172 maxItems: 1
0173
0174 st,mask-reset:
0175 description: mask reset for this regulator, the regulator configuration
0176 is maintained during pmic reset.
0177 $ref: /schemas/types.yaml#/definitions/flag
0178
0179 regulator-name: true
0180 regulator-boot-on: true
0181 regulator-always-on: true
0182 regulator-over-current-protection: true
0183
0184 additionalProperties: false
0185
0186 patternProperties:
0187 "^(buck[1-4]|ldo[1-6]|boost|pwr_sw[1-2])-supply$":
0188 description: STPMIC1 voltage regulators supplies
0189
0190 "^(buck[1-4]|ldo[1-6]|boost|vref_ddr|pwr_sw[1-2])$":
0191 $ref: ../regulator/regulator.yaml
0192
0193 "^ldo[1-2,5-6]$":
0194 type: object
0195
0196 properties:
0197 interrupts:
0198 maxItems: 1
0199
0200 st,mask-reset:
0201 description: mask reset for this regulator, the regulator configuration
0202 is maintained during pmic reset.
0203 $ref: /schemas/types.yaml#/definitions/flag
0204
0205 regulator-name: true
0206 regulator-boot-on: true
0207 regulator-always-on: true
0208 regulator-min-microvolt: true
0209 regulator-max-microvolt: true
0210 regulator-over-current-protection: true
0211 regulator-enable-ramp-delay: true
0212
0213 additionalProperties: false
0214
0215 "^buck[1-4]$":
0216 type: object
0217
0218 properties:
0219 interrupts:
0220 maxItems: 1
0221
0222 st,mask-reset:
0223 description: mask reset for this regulator, the regulator configuration
0224 is maintained during pmic reset.
0225 $ref: /schemas/types.yaml#/definitions/flag
0226
0227 regulator-name: true
0228 regulator-boot-on: true
0229 regulator-always-on: true
0230 regulator-min-microvolt: true
0231 regulator-max-microvolt: true
0232 regulator-initial-mode: true
0233 regulator-pull-down: true
0234 regulator-over-current-protection: true
0235 regulator-enable-ramp-delay: true
0236
0237 additionalProperties: false
0238
0239 "^pwr_sw[1-2]$":
0240 type: object
0241
0242 properties:
0243 interrupts:
0244 maxItems: 1
0245
0246 regulator-name: true
0247 regulator-boot-on: true
0248 regulator-always-on: true
0249 regulator-over-current-protection: true
0250 regulator-active-discharge: true
0251
0252 additionalProperties: false
0253
0254 required:
0255 - compatible
0256
0257 additionalProperties: false
0258
0259 additionalProperties: false
0260
0261 required:
0262 - compatible
0263 - reg
0264 - interrupts
0265 - "#interrupt-cells"
0266 - interrupt-controller
0267
0268 examples:
0269 - |
0270 #include <dt-bindings/mfd/st,stpmic1.h>
0271 #include <dt-bindings/interrupt-controller/arm-gic.h>
0272 i2c {
0273 #address-cells = <1>;
0274 #size-cells = <0>;
0275 pmic@33 {
0276 compatible = "st,stpmic1";
0277 reg = <0x33>;
0278 interrupt-parent = <&gpioa>;
0279 interrupts = <0 2>;
0280
0281 interrupt-controller;
0282 #interrupt-cells = <2>;
0283
0284 onkey {
0285 compatible = "st,stpmic1-onkey";
0286 interrupts = <IT_PONKEY_F 0>,<IT_PONKEY_R 1>;
0287 interrupt-names = "onkey-falling", "onkey-rising";
0288 power-off-time-sec = <10>;
0289 };
0290
0291 watchdog {
0292 compatible = "st,stpmic1-wdt";
0293 };
0294
0295 regulators {
0296 compatible = "st,stpmic1-regulators";
0297
0298 ldo6-supply = <&v3v3>;
0299
0300 buck1 {
0301 regulator-name = "vdd_core";
0302 interrupts = <IT_CURLIM_BUCK1 0>;
0303 st,mask-reset;
0304 regulator-boot-on;
0305 regulator-min-microvolt = <700000>;
0306 regulator-max-microvolt = <1200000>;
0307 };
0308
0309 buck3 {
0310 regulator-name = "vdd";
0311 regulator-min-microvolt = <3300000>;
0312 regulator-max-microvolt = <3300000>;
0313 regulator-boot-on;
0314 regulator-pull-down;
0315 };
0316
0317 buck4 {
0318 regulator-name = "v3v3";
0319 interrupts = <IT_CURLIM_BUCK4 0>;
0320 regulator-min-microvolt = <3300000>;
0321 regulator-max-microvolt = <3300000>;
0322 };
0323
0324 ldo6 {
0325 regulator-name = "v1v8";
0326 regulator-min-microvolt = <1800000>;
0327 regulator-max-microvolt = <1800000>;
0328 regulator-over-current-protection;
0329 };
0330 };
0331 };
0332 };
0333
0334 ...