Documentation / devicetree / bindings / regulator / samsung,s2mpg11-regulator.yaml


Based on kernel version 7.0. Page generated on 2026-04-23 09:48 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/samsung,s2mpg11-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung S2MPG11 Power Management IC regulators

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

description: |
  This is part of the device tree bindings for the S2MG11 Power Management IC
  (PMIC).
 
  The S2MPG11 PMIC provides 12 buck, 1 buck-boost, and 15 LDO regulators.
 
  See also Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml for
  additional information and example.

properties:
  buckboost:
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for the buck-boost regulator.

    properties:
      regulator-ramp-delay: false

patternProperties:
  # 12 bucks
  "^buck(([1-9]|10)s|[ad])$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for a single buck regulator.

    allOf:
      - $ref: "#/$defs/s2mpg11-ext-control"

    properties:
      regulator-ramp-delay:
        enum: [6250, 12500, 25000]
        default: 6250
 
  # 11 standard LDOs
  "^ldo([3-79]|1[01245])s$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for a single LDO regulator.

    properties:
      regulator-ramp-delay: false
 
  # 2 LDOs with possible external control
  "^ldo(8|13)s$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for single LDO regulator.

    allOf:
      - $ref: "#/$defs/s2mpg11-ext-control"

    properties:
      regulator-ramp-delay: false
 
  # 2 LDOs with ramp support and possible external control
  "^ldo[12]s$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    description:
      Properties for a single LDO regulator.

    allOf:
      - $ref: "#/$defs/s2mpg11-ext-control"

    properties:
      regulator-ramp-delay:
        enum: [6250, 12500]
        default: 6250

$defs:
  s2mpg11-ext-control:
    properties:
      samsung,ext-control:
        description: |
          These rails can be controlled via one of several possible external
          (hardware) signals. If so, this property configures the signal the PMIC
          should monitor. The following values generally corresponding to the
          respective on-chip pin are valid:
            - 0 # S2MPG11_EXTCTRL_PWREN - PWREN pin
            - 1 # S2MPG11_EXTCTRL_PWREN_MIF - PWREN_MIF pin
            - 2 # S2MPG11_EXTCTRL_AP_ACTIVE_N - ~AP_ACTIVE_N pin
            - 3 # S2MPG11_EXTCTRL_G3D_EN - G3D_EN pin
            - 4 # S2MPG11_EXTCTRL_G3D_EN2 - G3D_EN & ~AP_ACTIVE_N pins
            - 5 # S2MPG11_EXTCTRL_AOC_VDD - AOC_VDD pin
            - 6 # S2MPG11_EXTCTRL_AOC_RET - AOC_RET pin
            - 7 # S2MPG11_EXTCTRL_UFS_EN - UFS_EN pin
            - 8 # S2MPG11_EXTCTRL_LDO13S_EN - VLDO13S_EN pin

        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 8

      enable-gpios:
        description:
          For rails where external control is done via a GPIO, this optional
          property describes the GPIO line used.

    dependentRequired:
      enable-gpios: [ "samsung,ext-control" ]

allOf:
  # Bucks 4, 6, 7 and 10 can not be controlled externally - above definition
  # allows it and we deny it here. This approach reduces repetition.
  - if:
      anyOf:
        - required: [buck4s]
        - required: [buck6s]
        - required: [buck7s]
        - required: [buck10s]
    then:
      patternProperties:
        "^buck([467]|10)s$":
          properties:
            samsung,ext-control: false

additionalProperties: false