[PATCH 2/5] regulator: dt-bindings: Add TI LM51772 support
From: Paul Louvel
Date: Wed Oct 21 2026 - 06:32:47 EST
Add device tree binding for the TI LM51772 buck-boost voltage regulator,
which consist of a primary VOUT output, and a fixed 5V LDO.
Signed-off-by: Paul Louvel <paul.louvel@xxxxxxxxxxx>
---
.../devicetree/bindings/regulator/ti,lm51772.yaml | 239 +++++++++++++++++++++
MAINTAINERS | 5 +
2 files changed, 244 insertions(+)
diff --git a/Documentation/devicetree/bindings/regulator/ti,lm51772.yaml b/Documentation/devicetree/bindings/regulator/ti,lm51772.yaml
new file mode 100644
index 000000000000..1e72ac13ddfc
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/ti,lm51772.yaml
@@ -0,0 +1,239 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/ti,lm51772.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI LM51772 buck-boost voltage regulator
+
+maintainers:
+ - Paul Louvel <paul.louvel@xxxxxxxxxxx>
+
+description: |
+ The LM51772 is a buck-boost controller with I2C control, designed for
+ USB Power Delivery applications. The output voltage is software
+ configurable between 1V to 48V, with:
+
+ – 1V up to 24V in 10mV monotonous steps.
+ – 3.3V up to 48V in 20mV monotonous steps.
+
+ The peak current limit threshold is programmed through software, between 0.5A
+ to 7A.
+ The LM51772 also provides an auxiliary fixed 5 V regulator output
+ (VCC1).
+
+properties:
+ compatible:
+ const: ti,lm51772
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+ description: Fault / warning irq.
+
+ vin-supply:
+ description: Regulator supply for the chip.
+
+ regulators:
+ type: object
+ description: List of regulators provided by this PMIC.
+
+ properties:
+ vout:
+ type: object
+ $ref: regulator.yaml#
+ description: Main output voltage.
+
+ properties:
+ ti,active-discharge-strength-milliamp:
+ description: Discharge current for VOUT.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ multipleOf: 25
+ minimum: 25
+ maximum: 75
+ default: 25
+
+ ti,iset-pin:
+ description: |
+ Select the ISET pin as the source of the current limit, instead of
+ the ILIM DAC. When this property is present, the ISET pin is forced
+ in its active configuration and the ILIM DAC is disabled, so the
+ current limit can no longer be programmed through the
+ dedicated register.
+ type: boolean
+ default: false
+
+ ti,pcm-window-low-permille:
+ description: |
+ When VIN is inside a programmable window around VOUT, the PWM
+ logic stops switching entirely and the regulator connect VIN to VOUT.
+ This mode is called the Programmable Conduction Mode (PCM), and is an
+ efficiency features allowing the unit to avoid unnecessary switching
+ operation when VIN ≈ VOUT.
+
+ Lower threshold of the Programmable Conduction Mode (PCM)
+ window, expressed in permille (1/1000) below VOUT target.
+ If this property is zero, PCM is disabled.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ multipleOf: 25
+ minimum: 0
+ maximum: 775
+ default: 300
+
+ ti,sense-res-milliohm:
+ description: |
+ Value in milliohms of the current sense resistor connected between the
+ ISNSP and ISNSN pins, used to translate the ILIM threshold voltage into
+ a current limit and vice versa.
+ TI recommands a value of 10 milliohms.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 1
+ default: 10
+
+ regulator-temp-warn-kelvin:
+ enum: [0, 1, 368, 383, 398, 413]
+
+ regulator-ramp-delay:
+ enum: [40000, 20000, 1000, 500]
+
+ regulator-min-microvolt:
+ minimum: 1000000
+ maximum: 48000000
+
+ regulator-max-microvolt:
+ minimum: 1000000
+ maximum: 48000000
+
+ regulator-min-microamp:
+ minimum: 500000
+ maximum: 70000000
+
+ regulator-max-microamp:
+ minimum: 500000
+ maximum: 70000000
+
+ unevaluatedProperties: false
+
+ vcc1:
+ type: object
+ $ref: regulator.yaml#
+ description: |
+ LDO regulator for auxiliary use.
+ It can used to power, for example, a PD controller that will drive this PMIC.
+
+ properties:
+ regulator-min-microvolt:
+ minimum: 5000000
+ maximum: 5000000
+
+ regulator-max-microvolt:
+ minimum: 5000000
+ maximum: 5000000
+
+ unevaluatedProperties: false
+
+ ti,sync-pin:
+ description: |
+ Selects the function of the SYNC pin, used when several converters
+ operate in parallel.
+ $ref: /schemas/types.yaml#/definitions/string
+ enum: [input-rising, input-falling, output-rising, output-falling]
+ default: input-rising
+
+ ti,ivp-thres-millivolt:
+ description: |
+ Input Overvoltage Protection and Regulation Threshold.
+ It shall avoid any damage to the device in case the current flows from the
+ output to the input and the input source cannot sink current.
+ This threshold is used for IVP (Input Voltage Protection) and IVR (Input
+ Voltage Regulation).
+ $ref: /schemas/types.yaml#/definitions/uint32
+ oneOf:
+ - multipleOf: 125
+ minimum: 4750
+ maximum: 23250
+ - multipleOf: 250
+ minimum: 23750
+ maximum: 50000
+ default: 50000
+
+ ti,ivp:
+ description: Enable the IVP feature of the regulator.
+ type: boolean
+ default: false
+
+ ti,ivr:
+ description: Enable the IVR feature of the regulator.
+ type: boolean
+ default: false
+
+ ti,nint:
+ description: |
+ Configures the nFLT/nINT pin to act as an interrupt pin.
+
+ nFLT mode: The pin remains low until the cause of the status change ceases.
+ In this mode use an level irq trigger.
+
+ nINT mode: The pin is asserted low to signal a status change.
+ In this mode use an edge irq trigger.
+ type: boolean
+ default: false
+
+ ti,cable-drop-compensation:
+ description: |
+ The cable drop compensation feature helps to keep the output voltage at the
+ nominal value over a wide range of load current without the need for
+ additional remote sensing. The cable drop compensation measures the
+ current and offsets the output voltage proportionally to the measured
+ current.
+ type: boolean
+ default: false
+
+dependencies:
+ ti,ivr: ["ti,ivp"]
+
+required:
+ - compatible
+ - reg
+ - interrupts
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pmic@6a {
+ compatible = "ti,lm51772";
+ reg = <0x6a>;
+ interrupt-parent = <&irqc>;
+ interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+
+ ti,nint;
+
+ regulators {
+ vout {
+ regulator-name = "vout";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <20000000>;
+ regulator-ov-protection-microvolt = <1000000>;
+ regulator-min-microamp = <1000000>;
+ regulator-max-microamp = <5000000>;
+ regulator-temp-warn-kelvin = <368>;
+ };
+
+ vcc1 {
+ regulator-name = "vcc1";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ };
+ };
+ };
+ };
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 57285ff29a16..c958e116cd66 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -27461,6 +27461,11 @@ S: Maintained
F: sound/soc/codecs/isabelle*
F: sound/soc/codecs/lm49453*
+TI LM51772 BUCK-BOOST REGULATOR DRIVER
+M: Paul Louvel <paul.louvel@xxxxxxxxxxx>
+S: Maintained
+F: Documentation/devicetree/bindings/regulator/ti,lm51772.yaml
+
TI LMP92064 ADC DRIVER
M: Leonard Göhrs <l.goehrs@xxxxxxxxxxxxxx>
R: kernel@xxxxxxxxxxxxxx
--
2.56.0