[PATCH v3 0/3] Add RZ/G3L PWRRDY power sequencing support

From: Biju

Date: Wed Aug 12 2026 - 07:53:25 EST


From: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>

Hi All,

Some RZ SoCs (e.g. RZ/G3L) have a PWRRDY register that signals power
readiness for various IPs (USB, DSI, CSI, etc.) to their respective
controllers. This register is part of the SYSC IP. Add a dedicated
power sequencing driver to handle these signals.

This series adds that support:

- Patch 1 adds a pwrrdy_pwrseq flag to struct rz_sysc_soc_id_init_data,
sets it for RZ/G3L, and has the SYSC driver register a
"pwrseq-pwrrdy" auxiliary device when the flag is set, so a
dedicated driver can bind to it and handle the sequencing.

- Patch 2 adds that dedicated driver, pwrseq-renesas-pwrrdy, which
binds to the auxiliary device exposed by patch 1 and exposes
usb-pwrrdy, dsi-pwrrdy, and csi-pwrrdy pwrseq targets, toggling the
appropriate bits in the SYS_PWRRDY_N register via the parent SYSC
driver's regmap.

- Patch 3 selects POWER_SEQUENCING_RENESAS_PWRRDY from
SYSC_R9A08G046 so the new driver is built whenever RZ/G3L SYSC
support is enabled.

This series is based on proposal for power sequence driver [1]
for USB PWRRDY signal and DSI PWRRDY signal[2].

v2->v3:
* Updated commit description by dropping devm_add_action_or_reset().
* Config now selects AUXILIARY_BUS to avoid compilation issues.
* Dropped the cast in devm_auxiliary_device_create().
* SYSC_RZ and POWER_SEQUENCING_RENESAS_PWRRDY config selects
AUXILIARY_BUS to avoid compilation issues.
* Added match for consumer device and added of_device.h header file.
* Replaced regmap_update_bits()->regmap_assign_bits() and updated
the function parameter of pwrseq_rzg3l_set_pwrrdy().
* Simpilfied probe() return with PTR_ERR_OR_ZERO macro.
* SYSC_R9A08G046 config selects POWER_SEQUENCING as
POWER_SEQUENCING_RENESAS_PWRRDY is defined inside an if
POWER_SEQUENCING block in drivers/power/sequencing/Kconfig.
v1->v2:
* Switched to devm_auxiliary_device_create().
* Added regmap parameter to rz_sysc_pwrrdy_pwrseq_init(),so that regmap
can be passed as platform data.
* Added a comment in pwrseq_rzg3l_pwrrdy_match().
* Dropped dev_get_regmap() from probe as regmap is now part of platform
data.
* Added a blank line before devm_pwrseq_device_register() in probe.
* Dropped the error message devm_pwrseq_device_register() as probe prints
failure message.
* Dropped local variables dev and regmap from probe().

[1] https://lore.kernel.org/all/c7fc31f1247332196516394a22f6feef9733a0b4.camel@xxxxxxxxxxxxxx/#t
[2] https://lore.kernel.org/all/20260704093433.273672-1-biju.das.jz@xxxxxxxxxxxxxx/T/#mb6f18d8fa9a194fc0a15db5f4938df420da7b6b5

Biju Das (3):
soc: renesas: rz-sysc: Register auxiliary device for PWRRDY power
sequencer
power: sequencing: Add Renesas RZ/G3L Power Ready driver
soc: renesas: Kconfig: Select POWER_SEQUENCING_RENESAS_PWRRDY for
R9A08G046

drivers/power/sequencing/Kconfig | 9 ++
drivers/power/sequencing/Makefile | 1 +
.../power/sequencing/pwrseq-renesas-pwrrdy.c | 147 ++++++++++++++++++
drivers/soc/renesas/Kconfig | 3 +
drivers/soc/renesas/r9a08g046-sysc.c | 1 +
drivers/soc/renesas/rz-sysc.c | 21 +++
drivers/soc/renesas/rz-sysc.h | 2 +
7 files changed, 184 insertions(+)
create mode 100644 drivers/power/sequencing/pwrseq-renesas-pwrrdy.c

--
2.43.0