Commit bfacd34f authored by André Draszik's avatar André Draszik Committed by Lee Jones
Browse files

dt-bindings: mfd: Add samsung,s2mpg11-pmic



The Samsung S2MPG11 PMIC is similar to the existing S2MPG10 PMIC
supported by this binding, but still differs enough from it to justify
a separate binding.

It 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.

Like S2MPG10, communication is via the Samsung ACPM firmware and it
therefore needs to be a child of the ACPM firmware node.

Add the PMIC, the regulators node, and the supply inputs of the
regulator rails, with the supply names matching the datasheet.

Note: S2MPG11 is typically used as the sub-PMIC together with an
S2MPG10 PMIC in a main/sub configuration, hence the datasheet and the
binding both suffix the supplies with an 's'.

Signed-off-by: default avatarAndré Draszik <andre.draszik@linaro.org>
Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20260122-s2mpg1x-regulators-v7-6-3b1f9831fffd@linaro.org


Signed-off-by: default avatarLee Jones <lee@kernel.org>
parent b356595f
Loading
Loading
Loading
Loading
+88 −0
Original line number Diff line number Diff line
# 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>;
            };
        };
    };