# 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 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