[PATCH v3 00/10] Add AB8500 and AB8505 buck regulator support

From: Linus Walleij

Date: Mon Sep 14 2026 - 03:53:16 EST


While working on the Ux500 power domains it became apparent that the
device trees were using the DB8500 power-domain regulator for supplies
which actually come from buck converters in the AB8500 PMIC.

First: fix a bunch of bugs. All of these patches have Fixes: tags.
I do not consider any of them urgent or regressions, they can just
be queued in front of the new functionality.

Move some regulators over to using linear ranges before adding new
stuff since linear ranges are nice.

Add regulator driver support for the six SMPS1, SMPS2, SMPS3, ARM,
APE and MOD buck converters on AB8500. On AB8505, the corresponding
rails are named VSMPSA, VSMPSB, VSAFE, VARM, VSMPSC and VSMPSM.

The driver follows the active hardware selector, including the
additional AB8505 selector banks, and uses the variant-specific VARM
voltage encoding. It provides enable and low-power mode control for the
three peripheral bucks while leaving the SoC-controlled rails
voltage-only.

Since peripheral buck enable state is programmed by OTP and can power
discrete components outside the device tree, preserve any rail which
the OTP leaves enabled when regulator constraints are completed.

To: Stephan Gerhold <stephan@xxxxxxxxxxx>
To: Liam Girdwood <lgirdwood@xxxxxxxxx>
To: Mark Brown <broonie@xxxxxxxxxx>
To: Axel Lin <axel.lin@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Assisted-by: LLM
Signed-off-by: Linus Walleij <linusw@xxxxxxxxxx>

Changes in v3:
- Dropped patches applied to the MFD and Ux500 SoC tree.
- Resend just the regulator patches to make things easier for the
regulator maintainer.
- Link to v2: https://lore.kernel.org/r/20260901-ux500-dts-snowball-regulator-v2-0-fe88b01829bf@xxxxxxxxxx

Changes in v2:
- Pick up Conor's ACK.
- Fix some terminology and clarify the DT bindings a bit.
- Link to v1: https://lore.kernel.org/r/20260831-ux500-dts-snowball-regulator-v1-0-fe279fff5e18@xxxxxxxxxx

---
Linus Walleij (10):
regulator: ab8500: Fix AB8505 VANA voltage selectors
regulator: ab8500: Add AB8505 VAUX3 3.05 V setting
regulator: ab8500: Handle AB8505 VINTCORE selector 7
regulator: ab8500: Treat cut 1.0 VAUX3 as fixed
regulator: ab8500: Test dedicated enable bits only
regulator: ab8500: Propagate mode enable read errors
regulator: ab8500: Use linear ranges for LDO voltages
regulator: ab8500: Add buck converter support
regulator: ab8500: Preserve OTP-enabled buck regulators
regulator: ab8500: Use scoped guard for shared mode mutex

drivers/regulator/ab8500.c | 748 +++++++++++++++++++++++++++++++++++++++++----
1 file changed, 687 insertions(+), 61 deletions(-)
---
base-commit: cee9395acd8043be0644b25c34bfa86623f2b935
change-id: 20260820-ux500-dts-snowball-regulator-b35d2252bd57

Best regards,
--
Linus Walleij <linusw@xxxxxxxxxx>