162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/st,stpmic1.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: STMicroelectonics STPMIC1 Power Management IC
862306a36Sopenharmony_ci
962306a36Sopenharmony_cidescription: STMicroelectronics STPMIC1 Power Management IC
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_cimaintainers:
1262306a36Sopenharmony_ci  - pascal Paillet <p.paillet@foss.st.com>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciproperties:
1562306a36Sopenharmony_ci  compatible:
1662306a36Sopenharmony_ci    const: st,stpmic1
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci  reg:
1962306a36Sopenharmony_ci    const: 0x33
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci  interrupts:
2262306a36Sopenharmony_ci    maxItems: 1
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci  "#interrupt-cells":
2562306a36Sopenharmony_ci    const: 2
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci  interrupt-controller: true
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  onkey:
3062306a36Sopenharmony_ci    type: object
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci    $ref: ../input/input.yaml
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci    properties:
3562306a36Sopenharmony_ci      compatible:
3662306a36Sopenharmony_ci        const: st,stpmic1-onkey
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci      interrupts:
3962306a36Sopenharmony_ci        items:
4062306a36Sopenharmony_ci          - description: onkey-falling, happens when onkey is pressed. IT_PONKEY_F of pmic
4162306a36Sopenharmony_ci          - description: onkey-rising, happens when onkey is released. IT_PONKEY_R of pmic
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci      interrupt-names:
4462306a36Sopenharmony_ci        items:
4562306a36Sopenharmony_ci          - const: onkey-falling
4662306a36Sopenharmony_ci          - const: onkey-rising
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci      st,onkey-clear-cc-flag:
4962306a36Sopenharmony_ci        description: onkey is able power on after an over-current shutdown event.
5062306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/flag
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci      st,onkey-pu-inactive:
5362306a36Sopenharmony_ci        description: onkey pull up is not active
5462306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/flag
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci      power-off-time-sec:
5762306a36Sopenharmony_ci        minimum: 1
5862306a36Sopenharmony_ci        maximum: 16
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci    required:
6162306a36Sopenharmony_ci      - compatible
6262306a36Sopenharmony_ci      - interrupts
6362306a36Sopenharmony_ci      - interrupt-names
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci    additionalProperties: false
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci  watchdog:
6862306a36Sopenharmony_ci    type: object
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci    $ref: ../watchdog/watchdog.yaml
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci    properties:
7362306a36Sopenharmony_ci      compatible:
7462306a36Sopenharmony_ci        const: st,stpmic1-wdt
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci      timeout-sec: true
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci    required:
7962306a36Sopenharmony_ci      - compatible
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci    additionalProperties: false
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci  regulators:
8462306a36Sopenharmony_ci    type: object
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci    description: |
8762306a36Sopenharmony_ci      Available Regulators in STPMIC1 device are:
8862306a36Sopenharmony_ci        - buck1 for Buck BUCK1
8962306a36Sopenharmony_ci        - buck2 for Buck BUCK2
9062306a36Sopenharmony_ci        - buck3 for Buck BUCK3
9162306a36Sopenharmony_ci        - buck4 for Buck BUCK4
9262306a36Sopenharmony_ci        - ldo1 for LDO LDO1
9362306a36Sopenharmony_ci        - ldo2 for LDO LDO2
9462306a36Sopenharmony_ci        - ldo3 for LDO LDO3
9562306a36Sopenharmony_ci        - ldo4 for LDO LDO4
9662306a36Sopenharmony_ci        - ldo5 for LDO LDO5
9762306a36Sopenharmony_ci        - ldo6 for LDO LDO6
9862306a36Sopenharmony_ci        - vref_ddr for LDO Vref DDR
9962306a36Sopenharmony_ci        - boost for Buck BOOST
10062306a36Sopenharmony_ci        - pwr_sw1 for VBUS_OTG switch
10162306a36Sopenharmony_ci        - pwr_sw2 for SW_OUT switch
10262306a36Sopenharmony_ci      Switches are fixed voltage regulators with only enable/disable capability.
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci    properties:
10562306a36Sopenharmony_ci      compatible:
10662306a36Sopenharmony_ci        const: st,stpmic1-regulators
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci      ldo3:
10962306a36Sopenharmony_ci        $ref: /schemas/regulator/regulator.yaml
11062306a36Sopenharmony_ci        type: object
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci        properties:
11362306a36Sopenharmony_ci          interrupts:
11462306a36Sopenharmony_ci            maxItems: 1
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci          st,mask-reset:
11762306a36Sopenharmony_ci            description: mask reset for this regulator, the regulator configuration
11862306a36Sopenharmony_ci              is maintained during pmic reset.
11962306a36Sopenharmony_ci            $ref: /schemas/types.yaml#/definitions/flag
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ci          regulator-name: true
12262306a36Sopenharmony_ci          regulator-boot-on: true
12362306a36Sopenharmony_ci          regulator-always-on: true
12462306a36Sopenharmony_ci          regulator-min-microvolt: true
12562306a36Sopenharmony_ci          regulator-max-microvolt: true
12662306a36Sopenharmony_ci          regulator-allow-bypass: true
12762306a36Sopenharmony_ci          regulator-over-current-protection: true
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci        additionalProperties: false
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci      ldo4:
13262306a36Sopenharmony_ci        $ref: /schemas/regulator/regulator.yaml
13362306a36Sopenharmony_ci        type: object
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci        properties:
13662306a36Sopenharmony_ci          interrupts:
13762306a36Sopenharmony_ci            maxItems: 1
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ci          st,mask-reset:
14062306a36Sopenharmony_ci            description: mask reset for this regulator, the regulator configuration
14162306a36Sopenharmony_ci              is maintained during pmic reset.
14262306a36Sopenharmony_ci            $ref: /schemas/types.yaml#/definitions/flag
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci          regulator-name: true
14562306a36Sopenharmony_ci          regulator-boot-on: true
14662306a36Sopenharmony_ci          regulator-always-on: true
14762306a36Sopenharmony_ci          regulator-min-microvolt: true
14862306a36Sopenharmony_ci          regulator-max-microvolt: true
14962306a36Sopenharmony_ci          regulator-over-current-protection: true
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ci        additionalProperties: false
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci      vref_ddr:
15462306a36Sopenharmony_ci        $ref: /schemas/regulator/regulator.yaml
15562306a36Sopenharmony_ci        type: object
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci        properties:
15862306a36Sopenharmony_ci          interrupts:
15962306a36Sopenharmony_ci            maxItems: 1
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ci          st,mask-reset:
16262306a36Sopenharmony_ci            description: mask reset for this regulator, the regulator configuration
16362306a36Sopenharmony_ci              is maintained during pmic reset.
16462306a36Sopenharmony_ci            $ref: /schemas/types.yaml#/definitions/flag
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ci          regulator-name: true
16762306a36Sopenharmony_ci          regulator-boot-on: true
16862306a36Sopenharmony_ci          regulator-always-on: true
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ci        additionalProperties: false
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ci      boost:
17362306a36Sopenharmony_ci        $ref: /schemas/regulator/regulator.yaml
17462306a36Sopenharmony_ci        type: object
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ci        properties:
17762306a36Sopenharmony_ci          interrupts:
17862306a36Sopenharmony_ci            maxItems: 1
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ci          st,mask-reset:
18162306a36Sopenharmony_ci            description: mask reset for this regulator, the regulator configuration
18262306a36Sopenharmony_ci              is maintained during pmic reset.
18362306a36Sopenharmony_ci            $ref: /schemas/types.yaml#/definitions/flag
18462306a36Sopenharmony_ci
18562306a36Sopenharmony_ci          regulator-name: true
18662306a36Sopenharmony_ci          regulator-boot-on: true
18762306a36Sopenharmony_ci          regulator-always-on: true
18862306a36Sopenharmony_ci          regulator-over-current-protection: true
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_ci        additionalProperties: false
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_ci    patternProperties:
19362306a36Sopenharmony_ci      "^(buck[1-4]|ldo[1-6]|vref_ddr|boost|pwr_sw[1-2])-supply$":
19462306a36Sopenharmony_ci        description: STPMIC1 voltage regulators supplies
19562306a36Sopenharmony_ci
19662306a36Sopenharmony_ci      "^ldo[1-2,5-6]$":
19762306a36Sopenharmony_ci        $ref: /schemas/regulator/regulator.yaml
19862306a36Sopenharmony_ci        type: object
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ci        properties:
20162306a36Sopenharmony_ci          interrupts:
20262306a36Sopenharmony_ci            maxItems: 1
20362306a36Sopenharmony_ci
20462306a36Sopenharmony_ci          st,mask-reset:
20562306a36Sopenharmony_ci            description: mask reset for this regulator, the regulator configuration
20662306a36Sopenharmony_ci              is maintained during pmic reset.
20762306a36Sopenharmony_ci            $ref: /schemas/types.yaml#/definitions/flag
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_ci          regulator-name: true
21062306a36Sopenharmony_ci          regulator-boot-on: true
21162306a36Sopenharmony_ci          regulator-always-on: true
21262306a36Sopenharmony_ci          regulator-min-microvolt: true
21362306a36Sopenharmony_ci          regulator-max-microvolt: true
21462306a36Sopenharmony_ci          regulator-over-current-protection: true
21562306a36Sopenharmony_ci          regulator-enable-ramp-delay: true
21662306a36Sopenharmony_ci
21762306a36Sopenharmony_ci        additionalProperties: false
21862306a36Sopenharmony_ci
21962306a36Sopenharmony_ci      "^buck[1-4]$":
22062306a36Sopenharmony_ci        $ref: /schemas/regulator/regulator.yaml
22162306a36Sopenharmony_ci        type: object
22262306a36Sopenharmony_ci
22362306a36Sopenharmony_ci        properties:
22462306a36Sopenharmony_ci          interrupts:
22562306a36Sopenharmony_ci            maxItems: 1
22662306a36Sopenharmony_ci
22762306a36Sopenharmony_ci          st,mask-reset:
22862306a36Sopenharmony_ci            description: mask reset for this regulator, the regulator configuration
22962306a36Sopenharmony_ci              is maintained during pmic reset.
23062306a36Sopenharmony_ci            $ref: /schemas/types.yaml#/definitions/flag
23162306a36Sopenharmony_ci
23262306a36Sopenharmony_ci          regulator-name: true
23362306a36Sopenharmony_ci          regulator-boot-on: true
23462306a36Sopenharmony_ci          regulator-always-on: true
23562306a36Sopenharmony_ci          regulator-min-microvolt: true
23662306a36Sopenharmony_ci          regulator-max-microvolt: true
23762306a36Sopenharmony_ci          regulator-initial-mode: true
23862306a36Sopenharmony_ci          regulator-pull-down: true
23962306a36Sopenharmony_ci          regulator-over-current-protection: true
24062306a36Sopenharmony_ci          regulator-enable-ramp-delay: true
24162306a36Sopenharmony_ci
24262306a36Sopenharmony_ci        additionalProperties: false
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_ci      "^pwr_sw[1-2]$":
24562306a36Sopenharmony_ci        $ref: /schemas/regulator/regulator.yaml
24662306a36Sopenharmony_ci        type: object
24762306a36Sopenharmony_ci
24862306a36Sopenharmony_ci        properties:
24962306a36Sopenharmony_ci          interrupts:
25062306a36Sopenharmony_ci            maxItems: 1
25162306a36Sopenharmony_ci
25262306a36Sopenharmony_ci          regulator-name: true
25362306a36Sopenharmony_ci          regulator-boot-on: true
25462306a36Sopenharmony_ci          regulator-always-on: true
25562306a36Sopenharmony_ci          regulator-over-current-protection: true
25662306a36Sopenharmony_ci          regulator-active-discharge: true
25762306a36Sopenharmony_ci
25862306a36Sopenharmony_ci        additionalProperties: false
25962306a36Sopenharmony_ci
26062306a36Sopenharmony_ci    required:
26162306a36Sopenharmony_ci      - compatible
26262306a36Sopenharmony_ci
26362306a36Sopenharmony_ci    additionalProperties: false
26462306a36Sopenharmony_ci
26562306a36Sopenharmony_ciadditionalProperties: false
26662306a36Sopenharmony_ci
26762306a36Sopenharmony_cirequired:
26862306a36Sopenharmony_ci  - compatible
26962306a36Sopenharmony_ci  - reg
27062306a36Sopenharmony_ci  - interrupts
27162306a36Sopenharmony_ci  - "#interrupt-cells"
27262306a36Sopenharmony_ci  - interrupt-controller
27362306a36Sopenharmony_ci
27462306a36Sopenharmony_ciexamples:
27562306a36Sopenharmony_ci  - |
27662306a36Sopenharmony_ci    #include <dt-bindings/mfd/st,stpmic1.h>
27762306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
27862306a36Sopenharmony_ci    i2c {
27962306a36Sopenharmony_ci      #address-cells = <1>;
28062306a36Sopenharmony_ci      #size-cells = <0>;
28162306a36Sopenharmony_ci      pmic@33 {
28262306a36Sopenharmony_ci        compatible = "st,stpmic1";
28362306a36Sopenharmony_ci        reg = <0x33>;
28462306a36Sopenharmony_ci        interrupt-parent = <&gpioa>;
28562306a36Sopenharmony_ci        interrupts = <0 2>;
28662306a36Sopenharmony_ci
28762306a36Sopenharmony_ci        interrupt-controller;
28862306a36Sopenharmony_ci        #interrupt-cells = <2>;
28962306a36Sopenharmony_ci
29062306a36Sopenharmony_ci        onkey {
29162306a36Sopenharmony_ci          compatible = "st,stpmic1-onkey";
29262306a36Sopenharmony_ci          interrupts = <IT_PONKEY_F 0>,<IT_PONKEY_R 1>;
29362306a36Sopenharmony_ci          interrupt-names = "onkey-falling", "onkey-rising";
29462306a36Sopenharmony_ci          power-off-time-sec = <10>;
29562306a36Sopenharmony_ci        };
29662306a36Sopenharmony_ci
29762306a36Sopenharmony_ci        watchdog {
29862306a36Sopenharmony_ci          compatible = "st,stpmic1-wdt";
29962306a36Sopenharmony_ci        };
30062306a36Sopenharmony_ci
30162306a36Sopenharmony_ci        regulators {
30262306a36Sopenharmony_ci          compatible = "st,stpmic1-regulators";
30362306a36Sopenharmony_ci
30462306a36Sopenharmony_ci          ldo6-supply = <&v3v3>;
30562306a36Sopenharmony_ci
30662306a36Sopenharmony_ci          buck1 {
30762306a36Sopenharmony_ci            regulator-name = "vdd_core";
30862306a36Sopenharmony_ci            interrupts = <IT_CURLIM_BUCK1 0>;
30962306a36Sopenharmony_ci            st,mask-reset;
31062306a36Sopenharmony_ci            regulator-boot-on;
31162306a36Sopenharmony_ci            regulator-min-microvolt = <700000>;
31262306a36Sopenharmony_ci            regulator-max-microvolt = <1200000>;
31362306a36Sopenharmony_ci          };
31462306a36Sopenharmony_ci
31562306a36Sopenharmony_ci          buck3 {
31662306a36Sopenharmony_ci            regulator-name = "vdd";
31762306a36Sopenharmony_ci            regulator-min-microvolt = <3300000>;
31862306a36Sopenharmony_ci            regulator-max-microvolt = <3300000>;
31962306a36Sopenharmony_ci            regulator-boot-on;
32062306a36Sopenharmony_ci            regulator-pull-down;
32162306a36Sopenharmony_ci          };
32262306a36Sopenharmony_ci
32362306a36Sopenharmony_ci          buck4 {
32462306a36Sopenharmony_ci            regulator-name = "v3v3";
32562306a36Sopenharmony_ci            interrupts = <IT_CURLIM_BUCK4 0>;
32662306a36Sopenharmony_ci            regulator-min-microvolt = <3300000>;
32762306a36Sopenharmony_ci            regulator-max-microvolt = <3300000>;
32862306a36Sopenharmony_ci          };
32962306a36Sopenharmony_ci
33062306a36Sopenharmony_ci          ldo6 {
33162306a36Sopenharmony_ci            regulator-name = "v1v8";
33262306a36Sopenharmony_ci            regulator-min-microvolt = <1800000>;
33362306a36Sopenharmony_ci            regulator-max-microvolt = <1800000>;
33462306a36Sopenharmony_ci            regulator-over-current-protection;
33562306a36Sopenharmony_ci          };
33662306a36Sopenharmony_ci        };
33762306a36Sopenharmony_ci      };
33862306a36Sopenharmony_ci    };
33962306a36Sopenharmony_ci
34062306a36Sopenharmony_ci...
341