* [PATCH v5 0/4] Add RZ/G3L PWRRDY power sequencing support
@ 2026-08-26 12:27 Biju
2026-08-26 12:27 ` [PATCH v5 1/4] soc: renesas: rz-sysc: Register auxiliary device for PWRRDY power sequencer Biju
` (5 more replies)
0 siblings, 6 replies; 11+ messages in thread
From: Biju @ 2026-08-26 12:27 UTC (permalink / raw)
To: Geert Uytterhoeven, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Laurent Pinchart, Philipp Zabel,
Bartosz Golaszewski, Magnus Damm
Cc: Biju Das, linux-renesas-soc, linux-kernel, linux-pm,
Prabhakar Mahadev Lad, Biju Das
From: Biju Das <biju.das.jz@bp.renesas.com>
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 is based on proposal for power sequence driver [1]
for USB PWRRDY signal and DSI PWRRDY signal[2].
v4->v5:
* Replaced of_device_is_compatible()->of_device_compatible_match() in
pwrseq_rzg3l_pwrrdy_match().
v3->v4:
* Dropped rz_sysc_pwrrdy_pwrseq_init()
* Collected tags.
* Fix build issue with COMPILE_TEST for POWER_SEQUENCING_TH1520_GPU
* Replace the large of_device_id structures by C strings, and
using of_device_is_compatible() will reduce kernel size.
* Replaced of_device.h -> of.h
* Dropped local variable pwrseq from pwrseq_rzg3l_pwrrdy_probe().
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@pengutronix.de/#t
[2] https://lore.kernel.org/all/20260704093433.273672-1-biju.das.jz@bp.renesas.com/T/#mb6f18d8fa9a194fc0a15db5f4938df420da7b6b5
Biju Das (4):
soc: renesas: rz-sysc: Register auxiliary device for PWRRDY power
sequencer
power: sequencing: Fix build issue with COMPILE_TEST
power: sequencing: Add Renesas RZ/G3L Power Ready driver
soc: renesas: Kconfig: Select POWER_SEQUENCING_RENESAS_PWRRDY for
R9A08G046
drivers/power/sequencing/Kconfig | 12 +-
drivers/power/sequencing/Makefile | 1 +
.../power/sequencing/pwrseq-renesas-pwrrdy.c | 142 ++++++++++++++++++
drivers/soc/renesas/Kconfig | 3 +
drivers/soc/renesas/r9a08g046-sysc.c | 1 +
drivers/soc/renesas/rz-sysc.c | 5 +
drivers/soc/renesas/rz-sysc.h | 2 +
7 files changed, 165 insertions(+), 1 deletion(-)
create mode 100644 drivers/power/sequencing/pwrseq-renesas-pwrrdy.c
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v5 1/4] soc: renesas: rz-sysc: Register auxiliary device for PWRRDY power sequencer
2026-08-26 12:27 [PATCH v5 0/4] Add RZ/G3L PWRRDY power sequencing support Biju
@ 2026-08-26 12:27 ` Biju
2026-08-26 12:27 ` [PATCH v5 2/4] power: sequencing: Fix build issue with COMPILE_TEST Biju
` (4 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Biju @ 2026-08-26 12:27 UTC (permalink / raw)
To: Geert Uytterhoeven, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Laurent Pinchart, Philipp Zabel,
Bartosz Golaszewski, Magnus Damm
Cc: Biju Das, linux-renesas-soc, linux-kernel, Prabhakar Mahadev Lad,
Biju Das
From: Biju Das <biju.das.jz@bp.renesas.com>
Some RZ SoCs (e.g. RZ/G3L) have a PWRRDY register that is controlled
through a power sequencer rather than directly by the SYSC driver.
Add a pwrrdy_pwrseq flag to struct rz_sysc_soc_id_init_data to mark
SoCs with this property, and set it for RZ/G3L. When set,
rz_sysc_probe() registers a "pwrseq-pwrrdy" auxiliary device so a
dedicated driver can handle the PWRRDY sequencing.
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v4->v5:
* No change.
v3->v4:
* Dropped rz_sysc_pwrrdy_pwrseq_init()
* Collected tag.
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().
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.
---
drivers/soc/renesas/Kconfig | 1 +
drivers/soc/renesas/r9a08g046-sysc.c | 1 +
drivers/soc/renesas/rz-sysc.c | 5 +++++
drivers/soc/renesas/rz-sysc.h | 2 ++
4 files changed, 9 insertions(+)
diff --git a/drivers/soc/renesas/Kconfig b/drivers/soc/renesas/Kconfig
index eb8ac0d47d9d..4929ea350cec 100644
--- a/drivers/soc/renesas/Kconfig
+++ b/drivers/soc/renesas/Kconfig
@@ -486,6 +486,7 @@ config RZN1_IRQMUX
config SYSC_RZ
bool "System controller for RZ SoCs" if COMPILE_TEST
select MFD_SYSCON
+ select AUXILIARY_BUS
config SYSC_R9A08G045
bool "Renesas System controller support for R9A08G045 (RZ/G3S)" if COMPILE_TEST
diff --git a/drivers/soc/renesas/r9a08g046-sysc.c b/drivers/soc/renesas/r9a08g046-sysc.c
index 90db9d383539..cd129c727461 100644
--- a/drivers/soc/renesas/r9a08g046-sysc.c
+++ b/drivers/soc/renesas/r9a08g046-sysc.c
@@ -76,6 +76,7 @@ static const struct rz_sysc_soc_id_init_data rzg3l_sysc_soc_id_init_data __initc
.devid_offset = 0xa04,
.revision_mask = GENMASK(31, 28),
.specific_id_mask = GENMASK(27, 0),
+ .pwrrdy_pwrseq = true,
};
const struct rz_sysc_init_data rzg3l_sysc_init_data __initconst = {
diff --git a/drivers/soc/renesas/rz-sysc.c b/drivers/soc/renesas/rz-sysc.c
index 161e8c38eea6..0e92c415d4be 100644
--- a/drivers/soc/renesas/rz-sysc.c
+++ b/drivers/soc/renesas/rz-sysc.c
@@ -5,6 +5,7 @@
* Copyright (C) 2024 Renesas Electronics Corp.
*/
+#include <linux/auxiliary_bus.h>
#include <linux/bitfield.h>
#include <linux/cleanup.h>
#include <linux/io.h>
@@ -149,6 +150,10 @@ static int rz_sysc_probe(struct platform_device *pdev)
if (IS_ERR(regmap))
return PTR_ERR(regmap);
+ if (data->soc_id_init_data->pwrrdy_pwrseq &&
+ !devm_auxiliary_device_create(dev, "pwrseq-pwrrdy", regmap))
+ return -ENODEV;
+
return of_syscon_register_regmap(dev->of_node, regmap);
}
diff --git a/drivers/soc/renesas/rz-sysc.h b/drivers/soc/renesas/rz-sysc.h
index 921ee0d26c47..e55f3258d703 100644
--- a/drivers/soc/renesas/rz-sysc.h
+++ b/drivers/soc/renesas/rz-sysc.h
@@ -20,6 +20,7 @@
* @revision_mask: SYSC SoC ID revision mask
* @specific_id_mask: SYSC SoC ID specific ID mask
* @print_id: print SoC-specific extended device identification
+ * @pwrrdy_pwrseq: has pwrrdy register controlled through power sequencer
*/
struct rz_sysc_soc_id_init_data {
const char * const family;
@@ -29,6 +30,7 @@ struct rz_sysc_soc_id_init_data {
u32 specific_id_mask;
void (*print_id)(struct device *dev, void __iomem *sysc_base,
struct soc_device_attribute *soc_dev_attr);
+ bool pwrrdy_pwrseq;
};
/**
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v5 2/4] power: sequencing: Fix build issue with COMPILE_TEST
2026-08-26 12:27 [PATCH v5 0/4] Add RZ/G3L PWRRDY power sequencing support Biju
2026-08-26 12:27 ` [PATCH v5 1/4] soc: renesas: rz-sysc: Register auxiliary device for PWRRDY power sequencer Biju
@ 2026-08-26 12:27 ` Biju
2026-08-26 12:27 ` [PATCH v5 3/4] power: sequencing: Add Renesas RZ/G3L Power Ready driver Biju
` (3 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Biju @ 2026-08-26 12:27 UTC (permalink / raw)
To: Bartosz Golaszewski, Geert Uytterhoeven, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Laurent Pinchart,
Philipp Zabel, Magnus Damm
Cc: Biju Das, linux-kernel, linux-pm, Prabhakar Mahadev Lad,
Biju Das, linux-renesas-soc
From: Biju Das <biju.das.jz@bp.renesas.com>
The POWER_SEQUENCING_TH1520_GPU driver depends on
(ARCH_THEAD && AUXILIARY_BUS) || COMPILE_TEST. This means when
COMPILE_TEST=y and ARCH_THEAD is not set, the driver can still be
built even though it requires AUXILIARY_BUS, which may not be
selected in that configuration, leading to a build failure.
Fix this by dropping AUXILIARY_BUS from the dependency and instead
selecting it directly, so the dependency is satisfied regardless of
whether COMPILE_TEST or ARCH_THEAD is enabled.
Fixes: 1a7312b93ab0 ("power: sequencing: extend build coverage with COMPILE_TEST=y")
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v4->v5:
* No change.
v4:
* New patch.
---
drivers/power/sequencing/Kconfig | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/power/sequencing/Kconfig b/drivers/power/sequencing/Kconfig
index 1c5f5820f5b7..226c62704d9b 100644
--- a/drivers/power/sequencing/Kconfig
+++ b/drivers/power/sequencing/Kconfig
@@ -29,7 +29,8 @@ config POWER_SEQUENCING_QCOM_WCN
config POWER_SEQUENCING_TH1520_GPU
tristate "T-HEAD TH1520 GPU power sequencing driver"
- depends on (ARCH_THEAD && AUXILIARY_BUS) || COMPILE_TEST
+ depends on ARCH_THEAD || COMPILE_TEST
+ select AUXILIARY_BUS
help
Say Y here to enable the power sequencing driver for the TH1520 SoC
GPU. This driver handles the complex clock and reset sequence
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v5 3/4] power: sequencing: Add Renesas RZ/G3L Power Ready driver
2026-08-26 12:27 [PATCH v5 0/4] Add RZ/G3L PWRRDY power sequencing support Biju
2026-08-26 12:27 ` [PATCH v5 1/4] soc: renesas: rz-sysc: Register auxiliary device for PWRRDY power sequencer Biju
2026-08-26 12:27 ` [PATCH v5 2/4] power: sequencing: Fix build issue with COMPILE_TEST Biju
@ 2026-08-26 12:27 ` Biju
2026-09-01 16:15 ` Bartosz Golaszewski
2026-08-26 12:27 ` [PATCH v5 4/4] soc: renesas: Kconfig: Select POWER_SEQUENCING_RENESAS_PWRRDY for R9A08G046 Biju
` (2 subsequent siblings)
5 siblings, 1 reply; 11+ messages in thread
From: Biju @ 2026-08-26 12:27 UTC (permalink / raw)
To: Bartosz Golaszewski, Geert Uytterhoeven, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Laurent Pinchart,
Philipp Zabel, Magnus Damm
Cc: Biju Das, linux-kernel, linux-pm, Prabhakar Mahadev Lad,
Biju Das, linux-renesas-soc
From: Biju Das <biju.das.jz@bp.renesas.com>
Add a power sequencing driver for the Renesas RZ/G3L PWRRDY module,
which signals power readiness for various IPs (USB, DSI, CSI etc.) on the
SoC. The driver binds as an auxiliary device to the parent SYSC driver,
using its regmap to toggle the SYS_PWRRDY_N register bits, and exposes
{usb,dsi,csi}-pwrrdy pwrseq targets.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v4->v5:
* Replaced of_device_is_compatible()->of_device_compatible_match() in
pwrseq_rzg3l_pwrrdy_match().
v3->v4:
* Replace the large of_device_id structures by C strings, and
using of_device_is_compatible() will reduce kernel size.
* Replaced of_device.h -> of.h
* Dropped local variable pwrseq from pwrseq_rzg3l_pwrrdy_probe().
v2->v3:
* Kconfig 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.
v1->v2:
* 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().
---
drivers/power/sequencing/Kconfig | 9 ++
drivers/power/sequencing/Makefile | 1 +
.../power/sequencing/pwrseq-renesas-pwrrdy.c | 142 ++++++++++++++++++
3 files changed, 152 insertions(+)
create mode 100644 drivers/power/sequencing/pwrseq-renesas-pwrrdy.c
diff --git a/drivers/power/sequencing/Kconfig b/drivers/power/sequencing/Kconfig
index 226c62704d9b..6b5d187dd4b5 100644
--- a/drivers/power/sequencing/Kconfig
+++ b/drivers/power/sequencing/Kconfig
@@ -27,6 +27,15 @@ config POWER_SEQUENCING_QCOM_WCN
this driver is needed for correct power control or else we'd risk not
respecting the required delays between enabling Bluetooth and WLAN.
+config POWER_SEQUENCING_RENESAS_PWRRDY
+ tristate "Renesas Power Ready sequencing driver"
+ depends on SYSC_RZ || COMPILE_TEST
+ select AUXILIARY_BUS
+ help
+ Say Y here to enable the power sequencing driver for the Renesas
+ Power Ready signals. This driver handles the power ready signals
+ required to power on the various IP's on RZ/G3L platform.
+
config POWER_SEQUENCING_TH1520_GPU
tristate "T-HEAD TH1520 GPU power sequencing driver"
depends on ARCH_THEAD || COMPILE_TEST
diff --git a/drivers/power/sequencing/Makefile b/drivers/power/sequencing/Makefile
index 0911d4618298..b33d08d82f43 100644
--- a/drivers/power/sequencing/Makefile
+++ b/drivers/power/sequencing/Makefile
@@ -4,5 +4,6 @@ obj-$(CONFIG_POWER_SEQUENCING) += pwrseq-core.o
pwrseq-core-y := core.o
obj-$(CONFIG_POWER_SEQUENCING_QCOM_WCN) += pwrseq-qcom-wcn.o
+obj-$(CONFIG_POWER_SEQUENCING_RENESAS_PWRRDY) += pwrseq-renesas-pwrrdy.o
obj-$(CONFIG_POWER_SEQUENCING_TH1520_GPU) += pwrseq-thead-gpu.o
obj-$(CONFIG_POWER_SEQUENCING_PCIE_M2) += pwrseq-pcie-m2.o
diff --git a/drivers/power/sequencing/pwrseq-renesas-pwrrdy.c b/drivers/power/sequencing/pwrseq-renesas-pwrrdy.c
new file mode 100644
index 000000000000..743855620501
--- /dev/null
+++ b/drivers/power/sequencing/pwrseq-renesas-pwrrdy.c
@@ -0,0 +1,142 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Renesas RZ/G3L Power Ready driver
+ *
+ */
+
+#include <linux/auxiliary_bus.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/pwrseq/provider.h>
+#include <linux/regmap.h>
+
+#define SYS_PWRRDY_N 0xd70
+#define SYS_PWRRDY_N_USB_MASK BIT(0)
+#define SYS_PWRRDY_N_DSI_MASK BIT(1)
+#define SYS_PWRRDY_N_CSI_MASK BIT(2)
+
+static int pwrseq_rzg3l_set_pwrrdy(struct pwrseq_device *pwrseq, u32 mask,
+ bool val)
+{
+ struct regmap *regmap = pwrseq_device_get_drvdata(pwrseq);
+
+ return regmap_assign_bits(regmap, SYS_PWRRDY_N, mask, val);
+}
+
+static int pwrseq_rzg3l_usb_pwrrdy_enable(struct pwrseq_device *pwrseq)
+{
+ return pwrseq_rzg3l_set_pwrrdy(pwrseq, SYS_PWRRDY_N_USB_MASK, 0);
+}
+
+static int pwrseq_rzg3l_usb_pwrrdy_disable(struct pwrseq_device *pwrseq)
+{
+ return pwrseq_rzg3l_set_pwrrdy(pwrseq, SYS_PWRRDY_N_USB_MASK, 1);
+}
+
+static const struct pwrseq_unit_data pwrseq_rzg3l_usb_pwrrdy_unit = {
+ .name = "usb-pwrrdy-power-sequence",
+ .enable = pwrseq_rzg3l_usb_pwrrdy_enable,
+ .disable = pwrseq_rzg3l_usb_pwrrdy_disable,
+};
+
+static int pwrseq_rzg3l_dsi_pwrrdy_enable(struct pwrseq_device *pwrseq)
+{
+ return pwrseq_rzg3l_set_pwrrdy(pwrseq, SYS_PWRRDY_N_DSI_MASK, 0);
+}
+
+static int pwrseq_rzg3l_dsi_pwrrdy_disable(struct pwrseq_device *pwrseq)
+{
+ return pwrseq_rzg3l_set_pwrrdy(pwrseq, SYS_PWRRDY_N_DSI_MASK, 1);
+}
+
+static const struct pwrseq_unit_data pwrseq_rzg3l_dsi_pwrrdy_unit = {
+ .name = "dsi-pwrrdy-sequence",
+ .enable = pwrseq_rzg3l_dsi_pwrrdy_enable,
+ .disable = pwrseq_rzg3l_dsi_pwrrdy_disable,
+};
+
+static int pwrseq_rzg3l_csi_pwrrdy_enable(struct pwrseq_device *pwrseq)
+{
+ return pwrseq_rzg3l_set_pwrrdy(pwrseq, SYS_PWRRDY_N_CSI_MASK, 0);
+}
+
+static int pwrseq_rzg3l_csi_pwrrdy_disable(struct pwrseq_device *pwrseq)
+{
+ return pwrseq_rzg3l_set_pwrrdy(pwrseq, SYS_PWRRDY_N_CSI_MASK, 1);
+}
+
+static const struct pwrseq_unit_data pwrseq_rzg3l_csi_pwrrdy_unit = {
+ .name = "csi-pwrrdy-power-sequence",
+ .enable = pwrseq_rzg3l_csi_pwrrdy_enable,
+ .disable = pwrseq_rzg3l_csi_pwrrdy_disable,
+};
+
+static const struct pwrseq_target_data pwrseq_rzg3l_usb_pwrrdy_target = {
+ .name = "usb-pwrrdy",
+ .unit = &pwrseq_rzg3l_usb_pwrrdy_unit,
+};
+
+static const struct pwrseq_target_data pwrseq_rzg3l_dsi_pwrrdy_target = {
+ .name = "dsi-pwrrdy",
+ .unit = &pwrseq_rzg3l_dsi_pwrrdy_unit,
+};
+
+static const struct pwrseq_target_data pwrseq_rzg3l_csi_pwrrdy_target = {
+ .name = "csi-pwrrdy",
+ .unit = &pwrseq_rzg3l_csi_pwrrdy_unit,
+};
+
+static const struct pwrseq_target_data *pwrseq_rzg3l_pwrrdy_targets[] = {
+ &pwrseq_rzg3l_usb_pwrrdy_target,
+ &pwrseq_rzg3l_dsi_pwrrdy_target,
+ &pwrseq_rzg3l_csi_pwrrdy_target,
+ NULL
+};
+
+static const char * const pwrseq_rzg3l_pwrrdy_compats[] = {
+ "renesas,r9a08g046-usbphy-ctrl",
+ "renesas,r9a08g046-mipi-dsi",
+ NULL
+};
+
+static int pwrseq_rzg3l_pwrrdy_match(struct pwrseq_device *pwrseq,
+ struct device *dev)
+{
+ if (of_device_compatible_match(dev->of_node, pwrseq_rzg3l_pwrrdy_compats))
+ return PWRSEQ_MATCH_OK;
+
+ return PWRSEQ_NO_MATCH;
+}
+
+static int pwrseq_rzg3l_pwrrdy_probe(struct auxiliary_device *adev,
+ const struct auxiliary_device_id *id)
+{
+ struct pwrseq_config config = {
+ .parent = &adev->dev,
+ .owner = THIS_MODULE,
+ .drvdata = adev->dev.platform_data,
+ .match = pwrseq_rzg3l_pwrrdy_match,
+ .targets = pwrseq_rzg3l_pwrrdy_targets,
+ };
+
+ return PTR_ERR_OR_ZERO(devm_pwrseq_device_register(&adev->dev, &config));
+}
+
+static const struct auxiliary_device_id pwrseq_rzg3l_pwrrdy_id_table[] = {
+ { .name = "rz_sysc.pwrseq-pwrrdy" },
+ { /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(auxiliary, pwrseq_rzg3l_pwrrdy_id_table);
+
+static struct auxiliary_driver pwrseq_rzg3l_pwrrdy_driver = {
+ .driver = {
+ .name = "pwrseq-rzg3l-pwrrdy",
+ },
+ .probe = pwrseq_rzg3l_pwrrdy_probe,
+ .id_table = pwrseq_rzg3l_pwrrdy_id_table,
+};
+module_auxiliary_driver(pwrseq_rzg3l_pwrrdy_driver);
+
+MODULE_AUTHOR("Biju Das <biju.das.jz@bp.renesas.com>");
+MODULE_DESCRIPTION("Renesas RZ/G3L Power Ready Driver");
+MODULE_LICENSE("GPL");
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v5 4/4] soc: renesas: Kconfig: Select POWER_SEQUENCING_RENESAS_PWRRDY for R9A08G046
2026-08-26 12:27 [PATCH v5 0/4] Add RZ/G3L PWRRDY power sequencing support Biju
` (2 preceding siblings ...)
2026-08-26 12:27 ` [PATCH v5 3/4] power: sequencing: Add Renesas RZ/G3L Power Ready driver Biju
@ 2026-08-26 12:27 ` Biju
2026-09-02 10:44 ` (subset) [PATCH v5 0/4] Add RZ/G3L PWRRDY power sequencing support Bartosz Golaszewski
2026-09-02 10:48 ` Bartosz Golaszewski
5 siblings, 0 replies; 11+ messages in thread
From: Biju @ 2026-08-26 12:27 UTC (permalink / raw)
To: Geert Uytterhoeven, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Laurent Pinchart, Philipp Zabel,
Bartosz Golaszewski, Magnus Damm
Cc: Biju Das, linux-renesas-soc, linux-kernel, Prabhakar Mahadev Lad,
Biju Das
From: Biju Das <biju.das.jz@bp.renesas.com>
The RZ/G3L SYSC driver registers a "pwrseq-pwrrdy" auxiliary device to
handle the PWRRDY power sequencing, which requires the
pwrseq-renesas-pwrrdy driver to bind to it. Select
POWER_SEQUENCING_RENESAS_PWRRDY from SYSC_R9A08G046 so it's built
whenever RZ/G3L SYSC support is enabled.
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v4->v5:
* No change.
v3->v4:
* Collected the tag.
v2->v3:
* Kconfig selects POWER_SEQUENCING as POWER_SEQUENCING_RENESAS_PWRRDY is
defined inside an if POWER_SEQUENCING block in
drivers/power/sequencing/Kconfig
v1->v2:
* No change.
---
drivers/soc/renesas/Kconfig | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/soc/renesas/Kconfig b/drivers/soc/renesas/Kconfig
index 4929ea350cec..987958d494a5 100644
--- a/drivers/soc/renesas/Kconfig
+++ b/drivers/soc/renesas/Kconfig
@@ -495,6 +495,8 @@ config SYSC_R9A08G045
config SYSC_R9A08G046
bool "Renesas System controller support for R9A08G046 (RZ/G3L)" if COMPILE_TEST
select SYSC_RZ
+ select POWER_SEQUENCING
+ select POWER_SEQUENCING_RENESAS_PWRRDY
config SYS_R9A09G047
bool "Renesas System controller support for R9A09G047 (RZ/G3E)" if COMPILE_TEST
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v5 3/4] power: sequencing: Add Renesas RZ/G3L Power Ready driver
2026-08-26 12:27 ` [PATCH v5 3/4] power: sequencing: Add Renesas RZ/G3L Power Ready driver Biju
@ 2026-09-01 16:15 ` Bartosz Golaszewski
2026-09-02 7:10 ` Geert Uytterhoeven
0 siblings, 1 reply; 11+ messages in thread
From: Bartosz Golaszewski @ 2026-09-01 16:15 UTC (permalink / raw)
To: Biju
Cc: Biju Das, linux-kernel, linux-pm, Prabhakar Mahadev Lad,
linux-renesas-soc, Bartosz Golaszewski, Geert Uytterhoeven,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Laurent Pinchart,
Philipp Zabel, Magnus Damm
On Wed, 26 Aug 2026 14:27:25 +0200, Biju <biju.das.au@gmail.com> said:
> From: Biju Das <biju.das.jz@bp.renesas.com>
>
> Add a power sequencing driver for the Renesas RZ/G3L PWRRDY module,
> which signals power readiness for various IPs (USB, DSI, CSI etc.) on the
> SoC. The driver binds as an auxiliary device to the parent SYSC driver,
> using its regmap to toggle the SYS_PWRRDY_N register bits, and exposes
> {usb,dsi,csi}-pwrrdy pwrseq targets.
>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
I would prefer to see a stricter .match() but since the parent is the soc node
we may get away without it.
What is the merge strategy here? Are patches 2 and 3 independent from 1 and 4
at build time?
Bart
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v5 3/4] power: sequencing: Add Renesas RZ/G3L Power Ready driver
2026-09-01 16:15 ` Bartosz Golaszewski
@ 2026-09-02 7:10 ` Geert Uytterhoeven
2026-09-02 10:48 ` Bartosz Golaszewski
0 siblings, 1 reply; 11+ messages in thread
From: Geert Uytterhoeven @ 2026-09-02 7:10 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Biju, Biju Das, linux-kernel, linux-pm, Prabhakar Mahadev Lad,
linux-renesas-soc, Geert Uytterhoeven, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Laurent Pinchart,
Philipp Zabel, Magnus Damm
Hi Bartosz,
On Tue, 1 Sept 2026 at 18:15, Bartosz Golaszewski <brgl@kernel.org> wrote:
> On Wed, 26 Aug 2026 14:27:25 +0200, Biju <biju.das.au@gmail.com> said:
> > From: Biju Das <biju.das.jz@bp.renesas.com>
> >
> > Add a power sequencing driver for the Renesas RZ/G3L PWRRDY module,
> > which signals power readiness for various IPs (USB, DSI, CSI etc.) on the
> > SoC. The driver binds as an auxiliary device to the parent SYSC driver,
> > using its regmap to toggle the SYS_PWRRDY_N register bits, and exposes
> > {usb,dsi,csi}-pwrrdy pwrseq targets.
> >
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> What is the merge strategy here? Are patches 2 and 3 independent from 1 and 4
> at build time?
I think so: one can safely select a non-existing symbol in Kconfig.
So once you're happy with this patch, I can take patches 1 and 4
through renesas-devel.
Thanks!
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: (subset) [PATCH v5 0/4] Add RZ/G3L PWRRDY power sequencing support
2026-08-26 12:27 [PATCH v5 0/4] Add RZ/G3L PWRRDY power sequencing support Biju
` (3 preceding siblings ...)
2026-08-26 12:27 ` [PATCH v5 4/4] soc: renesas: Kconfig: Select POWER_SEQUENCING_RENESAS_PWRRDY for R9A08G046 Biju
@ 2026-09-02 10:44 ` Bartosz Golaszewski
2026-09-02 10:48 ` Bartosz Golaszewski
5 siblings, 0 replies; 11+ messages in thread
From: Bartosz Golaszewski @ 2026-09-02 10:44 UTC (permalink / raw)
To: Geert Uytterhoeven, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Laurent Pinchart, Philipp Zabel,
Bartosz Golaszewski, Magnus Damm, Biju
Cc: Bartosz Golaszewski, Biju Das, linux-renesas-soc, linux-kernel,
linux-pm, Prabhakar Mahadev Lad
On Wed, 26 Aug 2026 13:27:22 +0100, Biju wrote:
> From: Biju Das <biju.das.jz@bp.renesas.com>
>
> 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.
>
> [...]
Applied, thanks!
[2/4] power: sequencing: Fix build issue with COMPILE_TEST
https://git.kernel.org/brgl/c/3b54dbd119805361695cb50ca6a875f4c7518b74
Best regards,
--
Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: (subset) [PATCH v5 0/4] Add RZ/G3L PWRRDY power sequencing support
2026-08-26 12:27 [PATCH v5 0/4] Add RZ/G3L PWRRDY power sequencing support Biju
` (4 preceding siblings ...)
2026-09-02 10:44 ` (subset) [PATCH v5 0/4] Add RZ/G3L PWRRDY power sequencing support Bartosz Golaszewski
@ 2026-09-02 10:48 ` Bartosz Golaszewski
5 siblings, 0 replies; 11+ messages in thread
From: Bartosz Golaszewski @ 2026-09-02 10:48 UTC (permalink / raw)
To: Geert Uytterhoeven, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Laurent Pinchart, Philipp Zabel,
Bartosz Golaszewski, Magnus Damm, Biju
Cc: Bartosz Golaszewski, Biju Das, linux-renesas-soc, linux-kernel,
linux-pm, Prabhakar Mahadev Lad
On Wed, 26 Aug 2026 13:27:22 +0100, Biju wrote:
> 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 is based on proposal for power sequence driver [1]
> for USB PWRRDY signal and DSI PWRRDY signal[2].
>
> [...]
Applied, thanks!
[3/4] power: sequencing: Add Renesas RZ/G3L Power Ready driver
https://git.kernel.org/brgl/c/3b04e9b8056e868c3e9a04cc74168c7c9a18746a
Best regards,
--
Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v5 3/4] power: sequencing: Add Renesas RZ/G3L Power Ready driver
2026-09-02 7:10 ` Geert Uytterhoeven
@ 2026-09-02 10:48 ` Bartosz Golaszewski
2026-09-02 11:34 ` Geert Uytterhoeven
0 siblings, 1 reply; 11+ messages in thread
From: Bartosz Golaszewski @ 2026-09-02 10:48 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Biju, Biju Das, linux-kernel, linux-pm, Prabhakar Mahadev Lad,
linux-renesas-soc, Geert Uytterhoeven, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Laurent Pinchart,
Philipp Zabel, Magnus Damm, Bartosz Golaszewski
On Wed, 2 Sep 2026 09:10:45 +0200, Geert Uytterhoeven
<geert@linux-m68k.org> said:
> Hi Bartosz,
>
> On Tue, 1 Sept 2026 at 18:15, Bartosz Golaszewski <brgl@kernel.org> wrote:
>> On Wed, 26 Aug 2026 14:27:25 +0200, Biju <biju.das.au@gmail.com> said:
>> > From: Biju Das <biju.das.jz@bp.renesas.com>
>> >
>> > Add a power sequencing driver for the Renesas RZ/G3L PWRRDY module,
>> > which signals power readiness for various IPs (USB, DSI, CSI etc.) on the
>> > SoC. The driver binds as an auxiliary device to the parent SYSC driver,
>> > using its regmap to toggle the SYS_PWRRDY_N register bits, and exposes
>> > {usb,dsi,csi}-pwrrdy pwrseq targets.
>> >
>> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
>
>> What is the merge strategy here? Are patches 2 and 3 independent from 1 and 4
>> at build time?
>
> I think so: one can safely select a non-existing symbol in Kconfig.
>
> So once you're happy with this patch, I can take patches 1 and 4
> through renesas-devel.
>
I picked up 2 and 3.
Bart
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v5 3/4] power: sequencing: Add Renesas RZ/G3L Power Ready driver
2026-09-02 10:48 ` Bartosz Golaszewski
@ 2026-09-02 11:34 ` Geert Uytterhoeven
0 siblings, 0 replies; 11+ messages in thread
From: Geert Uytterhoeven @ 2026-09-02 11:34 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Biju, Biju Das, linux-kernel, linux-pm, Prabhakar Mahadev Lad,
linux-renesas-soc, Geert Uytterhoeven, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Laurent Pinchart,
Philipp Zabel, Magnus Damm
Hi Bartosz,
On Wed, 2 Sept 2026 at 12:49, Bartosz Golaszewski <brgl@kernel.org> wrote:
> On Wed, 2 Sep 2026 09:10:45 +0200, Geert Uytterhoeven
> <geert@linux-m68k.org> said:
> > On Tue, 1 Sept 2026 at 18:15, Bartosz Golaszewski <brgl@kernel.org> wrote:
> >> On Wed, 26 Aug 2026 14:27:25 +0200, Biju <biju.das.au@gmail.com> said:
> >> > From: Biju Das <biju.das.jz@bp.renesas.com>
> >> >
> >> > Add a power sequencing driver for the Renesas RZ/G3L PWRRDY module,
> >> > which signals power readiness for various IPs (USB, DSI, CSI etc.) on the
> >> > SoC. The driver binds as an auxiliary device to the parent SYSC driver,
> >> > using its regmap to toggle the SYS_PWRRDY_N register bits, and exposes
> >> > {usb,dsi,csi}-pwrrdy pwrseq targets.
> >> >
> >> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> >
> >> What is the merge strategy here? Are patches 2 and 3 independent from 1 and 4
> >> at build time?
> >
> > I think so: one can safely select a non-existing symbol in Kconfig.
> >
> > So once you're happy with this patch, I can take patches 1 and 4
> > through renesas-devel.
>
> I picked up 2 and 3.
Thanks, I will pick up 1 and 4.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2026-09-02 11:34 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-26 12:27 [PATCH v5 0/4] Add RZ/G3L PWRRDY power sequencing support Biju
2026-08-26 12:27 ` [PATCH v5 1/4] soc: renesas: rz-sysc: Register auxiliary device for PWRRDY power sequencer Biju
2026-08-26 12:27 ` [PATCH v5 2/4] power: sequencing: Fix build issue with COMPILE_TEST Biju
2026-08-26 12:27 ` [PATCH v5 3/4] power: sequencing: Add Renesas RZ/G3L Power Ready driver Biju
2026-09-01 16:15 ` Bartosz Golaszewski
2026-09-02 7:10 ` Geert Uytterhoeven
2026-09-02 10:48 ` Bartosz Golaszewski
2026-09-02 11:34 ` Geert Uytterhoeven
2026-08-26 12:27 ` [PATCH v5 4/4] soc: renesas: Kconfig: Select POWER_SEQUENCING_RENESAS_PWRRDY for R9A08G046 Biju
2026-09-02 10:44 ` (subset) [PATCH v5 0/4] Add RZ/G3L PWRRDY power sequencing support Bartosz Golaszewski
2026-09-02 10:48 ` Bartosz Golaszewski
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®