summaryrefslogtreecommitdiff
path: root/Documentation/devicetree
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/devicetree')
-rw-r--r--Documentation/devicetree/bindings/firmware/google,gs101-acpm-ipc.yaml4
-rw-r--r--Documentation/devicetree/bindings/mfd/samsung,s2mpg10-pmic.yaml120
-rw-r--r--Documentation/devicetree/bindings/mfd/samsung,s2mpg11-pmic.yaml88
-rw-r--r--Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml29
-rw-r--r--Documentation/devicetree/bindings/regulator/adi,max77675.yaml184
-rw-r--r--Documentation/devicetree/bindings/regulator/mediatek,mt6331-regulator.yaml4
-rw-r--r--Documentation/devicetree/bindings/regulator/raspberrypi,7inch-touchscreen-panel-regulator.yaml5
-rw-r--r--Documentation/devicetree/bindings/regulator/regulator.yaml1
-rw-r--r--Documentation/devicetree/bindings/regulator/richtek,rt5739.yaml5
-rw-r--r--Documentation/devicetree/bindings/regulator/samsung,s2mpg10-regulator.yaml158
-rw-r--r--Documentation/devicetree/bindings/regulator/samsung,s2mpg11-regulator.yaml136
-rw-r--r--Documentation/devicetree/bindings/regulator/ti,tps65185.yaml96
12 files changed, 798 insertions, 32 deletions
diff --git a/Documentation/devicetree/bindings/firmware/google,gs101-acpm-ipc.yaml b/Documentation/devicetree/bindings/firmware/google,gs101-acpm-ipc.yaml
index d3bca6088d12..4a1e3e3c0505 100644
--- a/Documentation/devicetree/bindings/firmware/google,gs101-acpm-ipc.yaml
+++ b/Documentation/devicetree/bindings/firmware/google,gs101-acpm-ipc.yaml
@@ -75,7 +75,7 @@ examples:
interrupts-extended = <&gpa0 6 IRQ_TYPE_LEVEL_LOW>;
regulators {
- LDO1 {
+ ldo1m {
regulator-name = "vdd_ldo1";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1300000>;
@@ -84,7 +84,7 @@ examples:
// ...
- BUCK1 {
+ buck8m {
regulator-name = "vdd_mif";
regulator-min-microvolt = <450000>;
regulator-max-microvolt = <1300000>;
diff --git a/Documentation/devicetree/bindings/mfd/samsung,s2mpg10-pmic.yaml b/Documentation/devicetree/bindings/mfd/samsung,s2mpg10-pmic.yaml
new file mode 100644
index 000000000000..0ea1a440b983
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/samsung,s2mpg10-pmic.yaml
@@ -0,0 +1,120 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/samsung,s2mpg10-pmic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung S2MPG10 Power Management IC
+
+maintainers:
+ - André Draszik <andre.draszik@linaro.org>
+
+description: |
+ This is part of the device tree bindings for the S2MPG10 Power Management IC
+ (PMIC).
+
+ The Samsung S2MPG10 is a Power Management IC for mobile applications with buck
+ converters, various LDOs, power meters, RTC, clock outputs, and additional
+ GPIO interfaces and is typically complemented by S2MPG10 PMIC in a main/sub
+ configuration as the main PMIC.
+
+properties:
+ compatible:
+ const: samsung,s2mpg10-pmic
+
+ clocks:
+ $ref: /schemas/clock/samsung,s2mps11.yaml
+ description:
+ Child node describing clock provider.
+
+ interrupts:
+ maxItems: 1
+
+ regulators:
+ type: object
+ $ref: /schemas/regulator/samsung,s2mpg10-regulator.yaml
+ description:
+ List of child nodes that specify the regulators.
+
+ system-power-controller: true
+
+ wakeup-source: true
+
+patternProperties:
+ "^vinb([1-9]|10)m-supply$":
+ description:
+ Phandle to the power supply for each buck rail of this PMIC. There is a
+ 1:1 mapping of supply to rail, e.g. vinb1m-supply supplies buck1m.
+
+ "^vinl([1-9]|1[0-5])m-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:
+ vinl1m - ldo13m
+ vinl2m - ldo15m
+ vinl3m - ldo1m, ldo5m, ldo7m
+ vinl4m - ldo3m, ldo8m
+ vinl5m - ldo16m
+ vinl6m - ldo17m
+ vinl7m - ldo6m, ldo11m, ldo24m, ldo28m
+ vinl8m - ldo12m
+ vinl9m - ldo2m, ldo4m
+ vinl10m - ldo9m, ldo14m, ldo18m, 19m, ldo20m, ldo25m
+ vinl11m - ldo23m, ldo31m
+ vinl12m - ldo29m
+ vinl13m - ldo30m
+ vinl14m - ldo21m
+ vinl15m - ldo10m, ldo22m, ldo26m, ldo27m
+
+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,s2mpg10-pmic";
+ interrupts-extended = <&gpa0 6 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pmic_int>;
+ system-power-controller;
+ wakeup-source;
+
+ vinl3m-supply = <&buck8m>;
+
+ clocks {
+ compatible = "samsung,s2mpg10-clk";
+ #clock-cells = <1>;
+ clock-output-names = "rtc32k_ap", "peri32k1", "peri32k2";
+ };
+
+ regulators {
+ buck8m {
+ regulator-name = "vdd_mif";
+ regulator-min-microvolt = <450000>;
+ regulator-max-microvolt = <1300000>;
+ regulator-ramp-delay = <6250>;
+ };
+
+ ldo1m {
+ regulator-name = "vdd_ldo1";
+ regulator-min-microvolt = <700000>;
+ regulator-max-microvolt = <1300000>;
+ };
+
+ ldo20m {
+ regulator-name = "vdd_dmics";
+ regulator-min-microvolt = <700000>;
+ regulator-max-microvolt = <1300000>;
+ regulator-always-on;
+ samsung,ext-control = <S2MPG10_EXTCTRL_LDO20M_EN2>;
+ };
+ };
+ };
diff --git a/Documentation/devicetree/bindings/mfd/samsung,s2mpg11-pmic.yaml b/Documentation/devicetree/bindings/mfd/samsung,s2mpg11-pmic.yaml
new file mode 100644
index 000000000000..62cedbbd9d8c
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/samsung,s2mpg11-pmic.yaml
@@ -0,0 +1,88 @@
+# 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>;
+ };
+ };
+ };
diff --git a/Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml b/Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml
index 31d544a9c05c..ac5d0c149796 100644
--- a/Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml
+++ b/Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml
@@ -20,7 +20,6 @@ description: |
properties:
compatible:
enum:
- - samsung,s2mpg10-pmic
- samsung,s2mps11-pmic
- samsung,s2mps13-pmic
- samsung,s2mps14-pmic
@@ -59,12 +58,11 @@ properties:
reset (setting buck voltages to default values).
type: boolean
- system-power-controller: true
-
wakeup-source: true
required:
- compatible
+ - reg
- regulators
additionalProperties: false
@@ -74,31 +72,6 @@ allOf:
properties:
compatible:
contains:
- const: samsung,s2mpg10-pmic
- then:
- properties:
- reg: false
- samsung,s2mps11-acokb-ground: false
- samsung,s2mps11-wrstbi-ground: false
-
- # oneOf is required, because dtschema's fixups.py doesn't handle this
- # nesting here. Its special treatment to allow either interrupt property
- # when only one is specified in the binding works at the top level only.
- oneOf:
- - required: [interrupts]
- - required: [interrupts-extended]
-
- else:
- properties:
- system-power-controller: false
-
- required:
- - reg
-
- - if:
- properties:
- compatible:
- contains:
const: samsung,s2mps11-pmic
then:
properties:
diff --git a/Documentation/devicetree/bindings/regulator/adi,max77675.yaml b/Documentation/devicetree/bindings/regulator/adi,max77675.yaml
new file mode 100644
index 000000000000..c138e61380a4
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/adi,max77675.yaml
@@ -0,0 +1,184 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/adi,max77675.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Maxim MAX77675 PMIC Regulator
+
+maintainers:
+ - Joan Na <joan.na@analog.com>
+
+description:
+ The MAX77675 is a Power Management IC providing four switching buck
+ regulators (SBB0–SBB3) accessible via I2C. It supports configuration
+ of output voltages and enable controls for each regulator.
+
+allOf:
+ - $ref: /schemas/input/input.yaml
+ - $ref: /schemas/pinctrl/pincfg-node.yaml
+
+properties:
+ compatible:
+ const: adi,max77675
+
+ reg:
+ maxItems: 1
+
+ reset-time-sec:
+ description: Manual reset time in seconds
+ enum: [4, 8, 12, 16]
+ default: 4
+
+ bias-disable:
+ type: boolean
+ description: Disable internal pull-up for EN pin
+
+ input-debounce:
+ description: Debounce time for the enable pin, in microseconds
+ items:
+ - enum: [100, 30000]
+ default: 100
+
+ adi,en-mode:
+ description: |
+ Enable mode configuration.
+ The debounce time set by 'input-debounce' applies to
+ both push-button and slide-switch modes.
+ "push-button" - A long press triggers power-on or power-down
+ "slide-switch" - Low : powers on, High : powers down
+ "logic" - Low : powers on, High : powers down (no debounce time)
+ $ref: /schemas/types.yaml#/definitions/string
+ enum: [push-button, slide-switch, logic]
+ default: slide-switch
+
+ adi,voltage-change-latency-us:
+ description:
+ Specifies the delay (in microseconds) between an output voltage change
+ request and the start of the SBB voltage ramp.
+ enum: [10, 100]
+ default: 100
+
+ adi,drv-sbb-strength:
+ description: |
+ SIMO Buck-Boost Drive Strength Trim.
+ Controls the drive strength of the SIMO regulator's power MOSFETs.
+ This setting affects switching speed, impacting power efficiency and EMI.
+ "max" – Maximum drive strength (~0.6 ns transition time)
+ "high" – High drive strength (~1.2 ns transition time)
+ "low" – Low drive strength (~1.8 ns transition time)
+ "min" – Minimum drive strength (~8 ns transition time)
+ $ref: /schemas/types.yaml#/definitions/string
+ enum: [max, high, low, min]
+ default: max
+
+ adi,dvs-slew-rate-mv-per-us:
+ description:
+ Dynamic rising slew rate for output voltage transitions, in mV/μs.
+ This setting is only used when 'adi,fixed-slew-rate' is not present.
+ enum: [5, 10]
+ default: 5
+
+ adi,bias-low-power-request:
+ type: boolean
+ description: Request low-power bias mode
+
+ adi,simo-ldo-always-on:
+ type: boolean
+ description: Set internal LDO to always supply 1.8V
+
+ regulators:
+ type: object
+ description: Regulator child nodes
+ patternProperties:
+ "^sbb[0-3]$":
+ type: object
+ $ref: regulator.yaml#
+ properties:
+ adi,fps-slot:
+ description: |
+ FPS (Flexible Power Sequencer) slot selection.
+ The Flexible Power Sequencer allows resources to power up under
+ hardware or software control. Additionally, each resource can
+ power up independently or among a group of other regulators with
+ adjustable power-up and power-down slots.
+ "slot0" - Assign to FPS Slot 0
+ "slot1" - Assign to FPS Slot 1
+ "slot2" - Assign to FPS Slot 2
+ "slot3" - Assign to FPS Slot 3
+ "default" - Use the default FPS slot value stored in register
+ $ref: /schemas/types.yaml#/definitions/string
+ enum: [slot0, slot1, slot2, slot3, default]
+ default: default
+
+ adi,fixed-slew-rate:
+ type: boolean
+ description:
+ When this property is present, the device uses a constant 2 mV/μs
+ slew rate and ignores any dynamic slew rate configuration.
+ When absent, the device uses the dynamic slew rate specified
+ by 'adi,dvs-slew-rate-mv-per-us'
+
+ unevaluatedProperties: false
+
+required:
+ - compatible
+ - reg
+ - regulators
+
+additionalProperties: false
+
+examples:
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ max77675: pmic@44 {
+ compatible = "adi,max77675";
+ reg = <0x44>;
+
+ reset-time-sec = <4>;
+ input-debounce = <100>;
+
+ adi,en-mode = "slide-switch";
+ adi,voltage-change-latency-us = <100>;
+ adi,drv-sbb-strength = "max";
+ adi,dvs-slew-rate-mv-per-us = <5>;
+
+ regulators {
+ sbb0: sbb0 {
+ regulator-name = "sbb0";
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <5500000>;
+ adi,fps-slot = "default";
+ adi,fixed-slew-rate;
+ };
+
+ sbb1: sbb1 {
+ regulator-name = "sbb1";
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <5500000>;
+ adi,fps-slot = "default";
+ adi,fixed-slew-rate;
+ };
+
+ sbb2: sbb2 {
+ regulator-name = "sbb2";
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <5500000>;
+ adi,fps-slot = "default";
+ adi,fixed-slew-rate;
+ };
+
+ sbb3: sbb3 {
+ regulator-name = "sbb3";
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <5500000>;
+ adi,fps-slot = "default";
+ adi,fixed-slew-rate;
+ };
+ };
+ };
+ };
+
diff --git a/Documentation/devicetree/bindings/regulator/mediatek,mt6331-regulator.yaml b/Documentation/devicetree/bindings/regulator/mediatek,mt6331-regulator.yaml
index c654acf13768..eb16e53cb5bf 100644
--- a/Documentation/devicetree/bindings/regulator/mediatek,mt6331-regulator.yaml
+++ b/Documentation/devicetree/bindings/regulator/mediatek,mt6331-regulator.yaml
@@ -40,13 +40,13 @@ patternProperties:
unevaluatedProperties: false
- "^ldo-v(dig18|emc33|ibr|mc|mch|mipi|rtc|sim1|sim2|sram|usb10)$":
+ "^ldo-v(dig18|emc33|ibr|io28|mc|mch|mipi|rtc|sim1|sim2|sram|usb10)$":
type: object
$ref: regulator.yaml#
properties:
regulator-name:
- pattern: "^v(dig18|emc33|ibr|mc|mch|mipi|rtc|sim1|sim2|sram|usb)$"
+ pattern: "^v(dig18|emc33|ibr|io28|mc|mch|mipi|rtc|sim1|sim2|sram|usb)$"
unevaluatedProperties: false
diff --git a/Documentation/devicetree/bindings/regulator/raspberrypi,7inch-touchscreen-panel-regulator.yaml b/Documentation/devicetree/bindings/regulator/raspberrypi,7inch-touchscreen-panel-regulator.yaml
index 41678400e63f..6c23f18a32c6 100644
--- a/Documentation/devicetree/bindings/regulator/raspberrypi,7inch-touchscreen-panel-regulator.yaml
+++ b/Documentation/devicetree/bindings/regulator/raspberrypi,7inch-touchscreen-panel-regulator.yaml
@@ -24,6 +24,11 @@ properties:
reg:
maxItems: 1
+ gpio-controller: true
+
+ "#gpio-cells":
+ const: 2
+
additionalProperties: false
required:
diff --git a/Documentation/devicetree/bindings/regulator/regulator.yaml b/Documentation/devicetree/bindings/regulator/regulator.yaml
index 77573bcb6b79..042e56396399 100644
--- a/Documentation/devicetree/bindings/regulator/regulator.yaml
+++ b/Documentation/devicetree/bindings/regulator/regulator.yaml
@@ -274,6 +274,7 @@ patternProperties:
suspend. This property is now deprecated, instead setting voltage
for suspend mode via the API which regulator driver provides is
recommended.
+ deprecated: true
regulator-changeable-in-suspend:
description: whether the default voltage and the regulator on/off
diff --git a/Documentation/devicetree/bindings/regulator/richtek,rt5739.yaml b/Documentation/devicetree/bindings/regulator/richtek,rt5739.yaml
index e95e046e9ed6..983f4c1ce380 100644
--- a/Documentation/devicetree/bindings/regulator/richtek,rt5739.yaml
+++ b/Documentation/devicetree/bindings/regulator/richtek,rt5739.yaml
@@ -15,6 +15,10 @@ description: |
supply of 2.5V to 5.5V. It can provide up to 3.5A continuous current
capability at over 80% high efficiency.
+ The RT8092 is similar type buck converter. Compared to RT5739, it can offer
+ up to 4A output current and more output voltage range to meet the application
+ on most mobile products.
+
allOf:
- $ref: regulator.yaml#
@@ -23,6 +27,7 @@ properties:
enum:
- richtek,rt5733
- richtek,rt5739
+ - richtek,rt8092
reg:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/regulator/samsung,s2mpg10-regulator.yaml b/Documentation/devicetree/bindings/regulator/samsung,s2mpg10-regulator.yaml
new file mode 100644
index 000000000000..7252f94b3a8f
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/samsung,s2mpg10-regulator.yaml
@@ -0,0 +1,158 @@
+# 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
diff --git a/Documentation/devicetree/bindings/regulator/samsung,s2mpg11-regulator.yaml b/Documentation/devicetree/bindings/regulator/samsung,s2mpg11-regulator.yaml
new file mode 100644
index 000000000000..119386325d1b
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/samsung,s2mpg11-regulator.yaml
@@ -0,0 +1,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
diff --git a/Documentation/devicetree/bindings/regulator/ti,tps65185.yaml b/Documentation/devicetree/bindings/regulator/ti,tps65185.yaml
new file mode 100644
index 000000000000..af0f638b80bc
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/ti,tps65185.yaml
@@ -0,0 +1,96 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/ti,tps65185.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI TPS65185 Power Management Integrated Circuit
+
+maintainers:
+ - Andreas Kemnade <andreas@kemnade.info>
+
+description:
+ TPS65185 is a Power Management IC to provide Power for EPDs with one 3.3V
+ switch, 2 symmetric LDOs behind 2 DC/DC converters, and one unsymmetric
+ regulator for a compensation voltage.
+
+properties:
+ compatible:
+ const: ti,tps65185
+
+ reg:
+ maxItems: 1
+
+ enable-gpios:
+ description:
+ PWRUP pin
+ maxItems: 1
+
+ pwr-good-gpios:
+ maxItems: 1
+
+ vcom-ctrl-gpios:
+ maxItems: 1
+
+ wakeup-gpios:
+ maxItems: 1
+
+ vin-supply: true
+
+ interrupts:
+ maxItems: 1
+
+ regulators:
+ type: object
+ additionalProperties: false
+ patternProperties:
+ "^(vcom|vposneg|v3p3)$":
+ unevaluatedProperties: false
+ type: object
+ $ref: /schemas/regulator/regulator.yaml
+
+required:
+ - compatible
+ - reg
+ - pwr-good-gpios
+ - vin-supply
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pmic@18 {
+ compatible = "ti,tps65185";
+ reg = <0x18>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_tps65185_gpio>;
+ pwr-good-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
+ vcom-ctrl-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
+ enable-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>;
+ wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
+ vin-supply = <&epdc_pmic_supply>;
+ interrupts-extended = <&gpio2 0 IRQ_TYPE_LEVEL_LOW>;
+
+ regulators {
+ vcom {
+ regulator-name = "vcom";
+ };
+
+ vposneg {
+ regulator-name = "vposneg";
+ regulator-min-microvolt = <15000000>;
+ regulator-max-microvolt = <15000000>;
+ };
+
+ v3p3 {
+ regulator-name = "v3p3";
+ };
+ };
+ };
+ };