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

title: Samsung S2MPG11 Power Management IC

maintainers:
  - André Draszik <andre.draszik@linaro.org>

description: |
  This is part of the device tree bindings for the S2MPG11 Power Management IC
  (PMIC).

  The Samsung S2MPG11 is a Power Management IC for mobile applications with buck
  converters, various LDOs, power meters, NTC thermistor inputs, and additional
  GPIO interfaces and typically complements an S2MPG10 PMIC in a main/sub
  configuration as the sub-PMIC.

properties:
  compatible:
    const: samsung,s2mpg11-pmic

  interrupts:
    maxItems: 1

  regulators:
    type: object
    $ref: /schemas/regulator/samsung,s2mpg11-regulator.yaml
    description:
      List of child nodes that specify the regulators.

  wakeup-source: true

patternProperties:
  "^vinb(([1-9]|10)s|[abd])-supply$":
    description:
      Phandle to the power supply for each buck rail of this PMIC. There is a
      1:1 mapping of numbered supply to rail, e.g. vinb1s-supply supplies
      buck1s. The remaining mapping is as follows
        vinba - bucka
        vinbb - buck boost
        vinbd - buckd

  "^vinl[1-6]s-supply$":
    description: |
      Phandle to the power supply for one or multiple LDO rails of this PMIC.
      The mapping of supply to rail(s) is as follows
        vinl1s - ldo1s, ldo2s
        vinl2s - ldo8s, ldo9s
        vinl3s - ldo3s, ldo5s, ldo7s, ldo15s
        vinl4s - ldo10s, ldo11s, ldo12s, ldo14s
        vinl5s - ldo4s, ldo6s
        vinl6s - ldo13s

required:
  - compatible
  - interrupts
  - regulators

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/regulator/samsung,s2mpg10-regulator.h>

    pmic {
        compatible = "samsung,s2mpg11-pmic";
        interrupts-extended = <&gpa0 7 IRQ_TYPE_LEVEL_LOW>;
        pinctrl-names = "default";
        pinctrl-0 = <&pmic_int>;
        wakeup-source;

        vinl1s-supply = <&buck8m>;
        vinl2s-supply = <&buck6s>;

        regulators {
            buckd {
                regulator-name = "vcc_ufs";
                regulator-ramp-delay = <6250>;
                enable-gpios = <&gpp0 1 GPIO_ACTIVE_HIGH>;
                samsung,ext-control = <S2MPG11_EXTCTRL_UFS_EN>;
            };
        };
    };
