From: Paul Louvel <paul.louvel@bootlin.com>
To: Liam Girdwood <lgirdwood@gmail.com>,
Mark Brown <broonie@kernel.org>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>
Cc: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
Herve Codina <herve.codina@bootlin.com>,
Miquel Raynal <miquel.raynal@bootlin.com>,
Paul Louvel <paul.louvel@bootlin.com>
Subject: [PATCH v2 0/4] Add TI LM51772 buck-boost voltage regulator
Date: Tue, 27 Oct 2026 10:39:22 +0100 [thread overview]
Message-ID: <20261027-paul-lm51772-v2-0-b2a767e34722@bootlin.com> (raw)
Hi,
This series provides support for the LM51772, a buck-boost controller
from TI with I2C control, designed for USB Power Delivery applications.
The output voltage is software-configurable from 1 V to 48 V, and the
peak current limit threshold is programmed through software. The
LM51772 also provides an auxiliary fixed 5 V regulator output (VCC1).
Core changes
------------
Patch #2:
The voltage selector helpers can now handle regulators that keep their
selector in two consecutive 8-bit registers. The implementation
preserves bits outside the selector field.
Rejects the unsupported case where an oversized selector shares a
register with the range selector.
Patch #3:
Some regulators have an absolute OVP threshold instead of an offset
that can be programmed once at registration.
The core now has a way for such drivers to have the protection limit
reprogrammed after a voltage change. The callback runs after the ramp
delay, so the new limit is applied once the output has settled.
Thanks,
Signed-off-by: Paul Louvel <paul.louvel@bootlin.com>
---
Changes in v2:
- Dropped the regulator-boot-force-off binding and core patches.
After discussion, this property should not be in the binding because
it is Linux specific. Also, the situation described in the v1 cover
letter can be resolved by the driver getting exclusive ownership of
the regulator it uses.
- Added the fixed OVP core change. The custom .set_voltage_sel callback
for the LM51772 is no longer needed since this case can be handled by
the core now.
- Updated the LM51772 binding to the standard unit suffixes and
property names, and fixed the schema and example issues found.
- Reworked the two-register selector helper so it preserves unrelated
bits. Make it atomic by using a bulk read and write instead of two
separate regmap_update_bits().
- Cleaned up the driver around units, current-limit validation,
volatile fault status, IRQ fault reporting, voltage timing, and nINT
handling.
The .renable callback is not really needed when the nFLT/nINT pin is
used as nINT, as the device drives the pin low only when a change to
the status byte occurs.
- Link to v1: https://patch.msgid.link/20261021-paul-lm51772-v1-0-25f0ffbffa8d@bootlin.com
---
Paul Louvel (4):
regulator: dt-bindings: Add TI LM51772 support
regulator: Support regulators where the voltage selector spans two registers
regulator: core: Call set_over_voltage_protection() if OVP limit is fixed after setting new voltage
regulator: Add TI LM51772 support
.../devicetree/bindings/regulator/ti,lm51772.yaml | 232 ++++++
MAINTAINERS | 6 +
drivers/regulator/Kconfig | 11 +
drivers/regulator/Makefile | 1 +
drivers/regulator/core.c | 10 +
drivers/regulator/helpers.c | 87 ++-
drivers/regulator/lm51772-regulator.c | 850 +++++++++++++++++++++
include/linux/regulator/driver.h | 6 +
8 files changed, 1188 insertions(+), 15 deletions(-)
---
base-commit: 0785f7172040512cba759838b27286646773c735
change-id: 20261021-paul-lm51772-c96bbce762a8
Best regards,
--
Paul Louvel, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
next reply other threads:[~2026-10-27 9:39 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-27 9:39 Paul Louvel [this message]
2026-10-27 9:39 ` [PATCH v2 1/4] regulator: dt-bindings: Add TI LM51772 support Paul Louvel
2026-10-29 8:41 ` Krzysztof Kozlowski
2026-10-29 9:05 ` Paul Louvel
2026-10-29 12:42 ` Krzysztof Kozlowski
2026-10-29 14:13 ` Paul Louvel
2026-10-29 14:17 ` Mark Brown
2026-10-27 9:39 ` [PATCH v2 2/4] regulator: Support regulators where the voltage selector spans two registers Paul Louvel
2026-10-27 9:39 ` [PATCH v2 3/4] regulator: core: Call set_over_voltage_protection() if OVP limit is fixed after setting new voltage Paul Louvel
2026-10-27 9:39 ` [PATCH v2 4/4] regulator: Add TI LM51772 support Paul Louvel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261027-paul-lm51772-v2-0-b2a767e34722@bootlin.com \
--to=paul.louvel@bootlin.com \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=herve.codina@bootlin.com \
--cc=krzk+dt@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=miquel.raynal@bootlin.com \
--cc=robh@kernel.org \
--cc=thomas.petazzoni@bootlin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®