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

title: Active-semi ACT8846 regulator

maintainers:
  - Paul Cercueil <paul@crapouillou.net>

properties:
  compatible:
    const: active-semi,act8846

  reg:
    maxItems: 1

  system-power-controller:
    description:
      Indicates that the ACT8846 is responsible for powering OFF
      the system.
    type: boolean

  active-semi,vsel-high:
    description:
      Indicates the VSEL pin is high. If this property is missing,
      the VSEL pin is assumed to be low.
    type: boolean

  inl1-supply:
    description: Handle to the INL1 input supply (REG5-7)

  inl2-supply:
    description: Handle to the INL2 input supply (REG8-9)

  inl3-supply:
    description: Handle to the INL3 input supply (REG10-12)

  vp1-supply:
    description: Handle to the VP1 input supply (REG1)

  vp2-supply:
    description: Handle to the VP2 input supply (REG2)

  vp3-supply:
    description: Handle to the VP3 input supply (REG3)

  vp4-supply:
    description: Handle to the VP4 input supply (REG4)

  regulators:
    type: object
    additionalProperties: false

    patternProperties:
      "^REG([1-9]|1[0-2])$":
        type: object
        $ref: /schemas/regulator/regulator.yaml#
        unevaluatedProperties: false

additionalProperties: false

required:
  - reg
  - compatible
  - regulators

examples:
  - |
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      pmic@5a {
        compatible = "active-semi,act8846";
        reg = <0x5a>;

        system-power-controller;

        regulators {
          REG1 {
            regulator-name = "VCC_DDR";
            regulator-min-microvolt = <1200000>;
            regulator-max-microvolt = <1200000>;
            regulator-always-on;
          };

          REG2 {
            regulator-name = "VCC_IO";
            regulator-min-microvolt = <3300000>;
            regulator-max-microvolt = <3300000>;
            regulator-always-on;
          };

          REG3 {
            regulator-name = "VDD_LOG";
            regulator-min-microvolt = <1000000>;
            regulator-max-microvolt = <1000000>;
            regulator-always-on;
          };

          REG4 {
            regulator-name = "VCC_20";
            regulator-min-microvolt = <2000000>;
            regulator-max-microvolt = <2000000>;
            regulator-always-on;
          };

          REG5 {
            regulator-name = "VCCIO_SD";
            regulator-min-microvolt = <3300000>;
            regulator-max-microvolt = <3300000>;
            regulator-always-on;
          };

          REG6 {
            regulator-name = "VDD10_LCD";
            regulator-min-microvolt = <1000000>;
            regulator-max-microvolt = <1000000>;
            regulator-always-on;
          };

          REG7 {
            regulator-name = "VCC_WL";
            regulator-min-microvolt = <3300000>;
            regulator-max-microvolt = <3300000>;
            regulator-always-on;
          };

          REG8 {
            regulator-name = "VCCA_33";
            regulator-min-microvolt = <3300000>;
            regulator-max-microvolt = <3300000>;
            regulator-always-on;
          };

          REG9 {
            regulator-name = "VCC_LAN";
            regulator-min-microvolt = <3300000>;
            regulator-max-microvolt = <3300000>;
            regulator-always-on;
          };

          REG10 {
            regulator-name = "VDD_10";
            regulator-min-microvolt = <1000000>;
            regulator-max-microvolt = <1000000>;
            regulator-always-on;
          };

          REG11 {
            regulator-name = "VCC_18";
            regulator-min-microvolt = <1800000>;
            regulator-max-microvolt = <1800000>;
            regulator-always-on;
          };

          REG12 {
            regulator-name = "VCC18_LCD";
            regulator-min-microvolt = <1800000>;
            regulator-max-microvolt = <1800000>;
            regulator-always-on;
          };
        };
      };
    };