[PATCH 00/11] pmdomain: st: ux500: Implement ux500 power domains
Linus Walleij
linusw at kernel.org
Wed Jun 17 22:00:46 PDT 2026
Today the Ux500 SoC specifically DB8500 is using what is called
"EPOD regulators" (EPOD = Electric POwer Domain) to control its power domains.
This was done like this because at the time, power domains did not exist as a
concept in the Linux kernel.
This patch series completes the ambitious work started in
commit cd931dcfda5e ("ARM: ux500: Initial support for PM domains") which added
a dummy domain driver for Ux500 in the following steps:
- Convert the old Ux500 power domain text DT bindings to YAML schema.
- Extend the bindings with all the 16 power domains actually existing
in the hardware.
- Add these domains to the existing ux500 power domain driver (still as dummy
domains).
- Add the power domains to the DB8500 SoC DTSI file.
- Move code over from the EPOD regulators to the actual power domain driver.
Since the two drivers now control the same hardware, make the drivers
mutually exclusive.
- Modify the MCDE display driver to use the power domain instead of
the EPOS regulators.
- Modify the DMA40 DMA controller to use the power domain instead of
the EPOD regulators.
- Delete the old EPOD regulators.
- Implement regulators activating the VANA and VSMPS2 power domains for the
power domain voltage rails that are routed off-chip as external supplies,
re-using the existing EPOD regulator bindings.
- Delete the references to the unused EPOD regulators from the device tree,
keeping the references to VANA and VSMPS2.
This is a bit of brain transplant on the Ux500, and the series is not very
boot-bisectable.
For simplicity, the series can be merged in separate paths and subsystems as
there are no build-time dependencies, as long as the result ends up in kernel
v7.3. Once the concept and patches are ACKed by the power domain folks, I will
send the patches that can be split out individually to each maintainer and
it can all be merged in parallel.
Signed-off-by: Linus Walleij <linusw at kernel.org>
---
Linus Walleij (11):
dt-bindings: power: Convert Ux500 PM domains to schema
dt-bindings: Add the actual power domains on U8500
pmdomain: st: ux500: Implement more power domains
ARM: dts: ux500: Rename power domains node
ARM: dts: ux500: Add power domains
pmdomain: st: ux500: Control DB8500 EPODs
drm/mcde: Use power domain for display power
dmaengine: ste_dma40: Use power domain for LCLA SRAM
regulator: db8500-prcmu: Remove EPOD regulators
regulator: db8500: Add power domain regulators
ARM: dts: ux500: Remove DB8500 EPOD regulators
.../devicetree/bindings/arm/ux500/power_domain.txt | 35 --
.../power/stericsson,ux500-pm-domains.yaml | 46 ++
MAINTAINERS | 1 +
arch/arm/boot/dts/st/ste-dbx5x0.dtsi | 134 ++----
arch/arm/mach-ux500/Kconfig | 2 +-
drivers/dma/ste_dma40.c | 97 ++--
drivers/gpu/drm/mcde/mcde_clk_div.c | 4 +-
drivers/gpu/drm/mcde/mcde_display.c | 11 +-
drivers/gpu/drm/mcde/mcde_drm.h | 2 -
drivers/gpu/drm/mcde/mcde_drv.c | 63 +--
drivers/gpu/drm/mcde/mcde_dsi.c | 1 -
drivers/mfd/db8500-prcmu.c | 239 +---------
drivers/pmdomain/st/ste-ux500-pm-domain.c | 353 ++++++++++++++-
drivers/regulator/Kconfig | 22 +-
drivers/regulator/Makefile | 3 +-
drivers/regulator/db8500-prcmu.c | 501 ---------------------
drivers/regulator/db8500-regulator.c | 221 +++++++++
drivers/regulator/dbx500-prcmu.c | 155 -------
drivers/regulator/dbx500-prcmu.h | 55 ---
include/dt-bindings/arm/ux500_pm_domains.h | 17 +-
include/linux/regulator/db8500-prcmu.h | 38 --
21 files changed, 748 insertions(+), 1252 deletions(-)
---
base-commit: 8cd9520d35a6c38db6567e97dd93b1f11f185dc6
change-id: 20260618-ux500-power-domains-v7-1-3c9d095828c2
Best regards,
--
Linus Walleij <linusw at kernel.org>
More information about the linux-arm-kernel
mailing list