Files
linux-kernel/linux-7.2.3/Documentation/devicetree/bindings/regulator/samsung,s2mpg10-regulator.yaml
T
2026-09-06 12:53:21 -06:00

159 lines
4.4 KiB
YAML

# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/samsung,s2mpg10-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Samsung S2MPG10 Power Management IC regulators
maintainers:
- André Draszik <andre.draszik@linaro.org>
description: |
This is part of the device tree bindings for the S2MG10 Power Management IC
(PMIC).
The S2MPG10 PMIC provides 10 buck and 31 LDO regulators.
See also Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml for
additional information and example.
properties:
# 1 LDO with possible (but limited) external control
ldo20m:
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description:
Properties for a single LDO regulator.
allOf:
- $ref: "#/$defs/s2mpg10-ext-control"
properties:
regulator-ramp-delay: false
samsung,ext-control:
minimum: 11
patternProperties:
# 10 bucks
"^buck([1-9]|10)m$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description:
Properties for a single buck regulator.
allOf:
- $ref: "#/$defs/s2mpg10-ext-control"
properties:
regulator-ramp-delay:
enum: [6250, 12500, 25000]
default: 6250
samsung,ext-control:
maximum: 10
# 12 standard LDOs
"^ldo(2[1-9]?|3[0-1])m$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description:
Properties for single LDO regulator.
properties:
regulator-ramp-delay: false
# 12 LDOs with possible external control
"^ldo([3-689]|1[046-9])m$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description:
Properties for a single LDO regulator.
allOf:
- $ref: "#/$defs/s2mpg10-ext-control"
properties:
regulator-ramp-delay: false
samsung,ext-control:
maximum: 10
# 6 LDOs with ramp support, 5 out of those with possible external control
"^ldo(1[1235]?|7)m$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description:
Properties for a single LDO regulator.
allOf:
- $ref: "#/$defs/s2mpg10-ext-control"
properties:
regulator-ramp-delay:
enum: [6250, 12500]
default: 6250
samsung,ext-control:
maximum: 10
$defs:
s2mpg10-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. For S2MPG10 rails where external control is possible other
than ldo20m, the following values generally corresponding to the
respective on-chip pin are valid:
- 0 # S2MPG10_EXTCTRL_PWREN - PWREN pin
- 1 # S2MPG10_EXTCTRL_PWREN_MIF - PWREN_MIF pin
- 2 # S2MPG10_EXTCTRL_AP_ACTIVE_N - ~AP_ACTIVE_N pin
- 3 # S2MPG10_EXTCTRL_CPUCL1_EN - CPUCL1_EN pin
- 4 # S2MPG10_EXTCTRL_CPUCL1_EN2 - CPUCL1_EN & PWREN pins
- 5 # S2MPG10_EXTCTRL_CPUCL2_EN - CPUCL2_EN pin
- 6 # S2MPG10_EXTCTRL_CPUCL2_EN2 - CPUCL2_E2 & PWREN pins
- 7 # S2MPG10_EXTCTRL_TPU_EN - TPU_EN pin
- 8 # S2MPG10_EXTCTRL_TPU_EN2 - TPU_EN & ~AP_ACTIVE_N pins
- 9 # S2MPG10_EXTCTRL_TCXO_ON - TCXO_ON pin
- 10 # S2MPG10_EXTCTRL_TCXO_ON2 - TCXO_ON & ~AP_ACTIVE_N pins
For S2MPG10 ldo20m, the following values are valid
- 11 # S2MPG10_EXTCTRL_LDO20M_EN2 - VLDO20M_EN & LDO20M_SFR
- 12 # S2MPG10_EXTCTRL_LDO20M_EN - VLDO20M_EN pin
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 0
maximum: 12
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 8, 9, and LDO 1 can not be controlled externally - above definition
# allows it and we deny it here. This approach reduces repetition.
- if:
anyOf:
- required: [buck8m]
- required: [buck9m]
- required: [ldo1m]
then:
patternProperties:
"^(buck[8-9]|ldo1)m$":
properties:
samsung,ext-control: false
additionalProperties: false