# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/st,stpmic1.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: STMicroelectonics STPMIC1 Power Management IC bindings

description: STMicroelectronics STPMIC1 Power Management IC

maintainers:
  - pascal Paillet <p.paillet@foss.st.com>

properties:
  compatible:
    const: st,stpmic1

  reg:
    const: 0x33

  interrupts:
    maxItems: 1

  "#interrupt-cells":
    const: 2

  interrupt-controller: true

  onkey:
    type: object

    $ref: ../input/input.yaml

    properties:
      compatible:
        const: st,stpmic1-onkey

      interrupts:
        items:
          - description: onkey-falling, happens when onkey is pressed. IT_PONKEY_F of pmic
          - description: onkey-rising, happens when onkey is released. IT_PONKEY_R of pmic

      interrupt-names:
        items:
          - const: onkey-falling
          - const: onkey-rising

      st,onkey-clear-cc-flag:
        description: onkey is able power on after an over-current shutdown event.
        $ref: /schemas/types.yaml#/definitions/flag

      st,onkey-pu-inactive:
        description: onkey pull up is not active
        $ref: /schemas/types.yaml#/definitions/flag

      power-off-time-sec:
        minimum: 1
        maximum: 16

    required:
      - compatible
      - interrupts
      - interrupt-names

    additionalProperties: false

  watchdog:
    type: object

    $ref: ../watchdog/watchdog.yaml

    properties:
      compatible:
        const: st,stpmic1-wdt

      timeout-sec: true

    required:
      - compatible

    additionalProperties: false

  regulators:
    type: object

    description: |
      Available Regulators in STPMIC1 device are:
        - buck1 for Buck BUCK1
        - buck2 for Buck BUCK2
        - buck3 for Buck BUCK3
        - buck4 for Buck BUCK4
        - ldo1 for LDO LDO1
        - ldo2 for LDO LDO2
        - ldo3 for LDO LDO3
        - ldo4 for LDO LDO4
        - ldo5 for LDO LDO5
        - ldo6 for LDO LDO6
        - vref_ddr for LDO Vref DDR
        - boost for Buck BOOST
        - pwr_sw1 for VBUS_OTG switch
        - pwr_sw2 for SW_OUT switch
      Switches are fixed voltage regulators with only enable/disable capability.

    properties:
      compatible:
        const: st,stpmic1-regulators

      ldo3:
        type: object

        properties:
          interrupts:
            maxItems: 1

          st,mask-reset:
            description: mask reset for this regulator, the regulator configuration
              is maintained during pmic reset.
            $ref: /schemas/types.yaml#/definitions/flag

          regulator-name: true
          regulator-boot-on: true
          regulator-always-on: true
          regulator-min-microvolt: true
          regulator-max-microvolt: true
          regulator-allow-bypass: true
          regulator-over-current-protection: true

        additionalProperties: false

      ldo4:
        type: object

        properties:
          interrupts:
            maxItems: 1

          st,mask-reset:
            description: mask reset for this regulator, the regulator configuration
              is maintained during pmic reset.
            $ref: /schemas/types.yaml#/definitions/flag

          regulator-name: true
          regulator-boot-on: true
          regulator-always-on: true
          regulator-over-current-protection: true

        additionalProperties: false

      vref_ddr:
        type: object

        properties:
          interrupts:
            maxItems: 1

          st,mask-reset:
            description: mask reset for this regulator, the regulator configuration
              is maintained during pmic reset.
            $ref: /schemas/types.yaml#/definitions/flag

          regulator-name: true
          regulator-boot-on: true
          regulator-always-on: true

        additionalProperties: false

      boost:
        type: object

        properties:
          interrupts:
            maxItems: 1

          st,mask-reset:
            description: mask reset for this regulator, the regulator configuration
              is maintained during pmic reset.
            $ref: /schemas/types.yaml#/definitions/flag

          regulator-name: true
          regulator-boot-on: true
          regulator-always-on: true
          regulator-over-current-protection: true

        additionalProperties: false

    patternProperties:
      "^(buck[1-4]|ldo[1-6]|boost|pwr_sw[1-2])-supply$":
        description: STPMIC1 voltage regulators supplies

      "^(buck[1-4]|ldo[1-6]|boost|vref_ddr|pwr_sw[1-2])$":
        $ref: ../regulator/regulator.yaml

      "^ldo[1-2,5-6]$":
        type: object

        properties:
          interrupts:
            maxItems: 1

          st,mask-reset:
            description: mask reset for this regulator, the regulator configuration
              is maintained during pmic reset.
            $ref: /schemas/types.yaml#/definitions/flag

          regulator-name: true
          regulator-boot-on: true
          regulator-always-on: true
          regulator-min-microvolt: true
          regulator-max-microvolt: true
          regulator-over-current-protection: true
          regulator-enable-ramp-delay: true

        additionalProperties: false

      "^buck[1-4]$":
        type: object

        properties:
          interrupts:
            maxItems: 1

          st,mask-reset:
            description: mask reset for this regulator, the regulator configuration
              is maintained during pmic reset.
            $ref: /schemas/types.yaml#/definitions/flag

          regulator-name: true
          regulator-boot-on: true
          regulator-always-on: true
          regulator-min-microvolt: true
          regulator-max-microvolt: true
          regulator-initial-mode: true
          regulator-pull-down: true
          regulator-over-current-protection: true
          regulator-enable-ramp-delay: true

        additionalProperties: false

      "^pwr_sw[1-2]$":
        type: object

        properties:
          interrupts:
            maxItems: 1

          regulator-name: true
          regulator-boot-on: true
          regulator-always-on: true
          regulator-over-current-protection: true
          regulator-active-discharge: true

        additionalProperties: false

    required:
      - compatible

    additionalProperties: false

additionalProperties: false

required:
  - compatible
  - reg
  - interrupts
  - "#interrupt-cells"
  - interrupt-controller

examples:
  - |
    #include <dt-bindings/mfd/st,stpmic1.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;
      pmic@33 {
        compatible = "st,stpmic1";
        reg = <0x33>;
        interrupt-parent = <&gpioa>;
        interrupts = <0 2>;

        interrupt-controller;
        #interrupt-cells = <2>;

        onkey {
          compatible = "st,stpmic1-onkey";
          interrupts = <IT_PONKEY_F 0>,<IT_PONKEY_R 1>;
          interrupt-names = "onkey-falling", "onkey-rising";
          power-off-time-sec = <10>;
        };

        watchdog {
          compatible = "st,stpmic1-wdt";
        };

        regulators {
          compatible = "st,stpmic1-regulators";

          ldo6-supply = <&v3v3>;

          buck1 {
            regulator-name = "vdd_core";
            interrupts = <IT_CURLIM_BUCK1 0>;
            st,mask-reset;
            regulator-boot-on;
            regulator-min-microvolt = <700000>;
            regulator-max-microvolt = <1200000>;
          };

          buck3 {
            regulator-name = "vdd";
            regulator-min-microvolt = <3300000>;
            regulator-max-microvolt = <3300000>;
            regulator-boot-on;
            regulator-pull-down;
          };

          buck4 {
            regulator-name = "v3v3";
            interrupts = <IT_CURLIM_BUCK4 0>;
            regulator-min-microvolt = <3300000>;
            regulator-max-microvolt = <3300000>;
          };

          ldo6 {
            regulator-name = "v1v8";
            regulator-min-microvolt = <1800000>;
            regulator-max-microvolt = <1800000>;
            regulator-over-current-protection;
          };
        };
      };
    };

...
