* [PATCH 00/11] Add MTU3 for RZ/T2H and RZ/N2H
@ 2026-03-27 19:24 Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 01/11] clk: renesas: r9a09g077: add MTU3 module clock Cosmin Tanislav
` (10 more replies)
0 siblings, 11 replies; 15+ messages in thread
From: Cosmin Tanislav @ 2026-03-27 19:24 UTC (permalink / raw)
To: Biju Das, Daniel Lezcano, Thomas Gleixner, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm, Michael Turquette, Stephen Boyd, Lee Jones,
Philipp Zabel
Cc: linux-iio, linux-renesas-soc, linux-kernel, devicetree, linux-clk,
Cosmin Tanislav
The Renesas RZ/T2H (R9A09G077) and RZ/N2H (R9A09G087) SoCs have an MTU3
block. Add support for them and fix the non-existing TCIU8 interrupt.
Cosmin Tanislav (11):
clk: renesas: r9a09g077: add MTU3 module clock
mfd: rz-mtu3: use device-managed reset deassert
mfd: rz-mtu3: use device-managed mfd_add_devices()
mfd: rz-mtu3: store &pdev->dev in local variable
mfd: rz-mtu3: make reset optional
dt-bindings: timer: renesas,rz-mtu3: remove TCIU8 interrupt
dt-bindings: timer: renesas,rz-mtu3: move required resets to
conditional
dt-bindings: timer: renesas,rz-mtu3: document RZ/{T2H,N2H}
arm64: dts: renesas: r9a07g0{43,44,54}: remove TCIU8 interrupt from
MTU3
arm64: dts: renesas: r9a09g077: add MTU3 support
arm64: dts: renesas: r9a09g087: add MTU3 support
.../bindings/timer/renesas,rz-mtu3.yaml | 34 ++++++++--
arch/arm64/boot/dts/renesas/r9a07g043.dtsi | 5 +-
arch/arm64/boot/dts/renesas/r9a07g044.dtsi | 5 +-
arch/arm64/boot/dts/renesas/r9a07g054.dtsi | 5 +-
arch/arm64/boot/dts/renesas/r9a09g077.dtsi | 68 +++++++++++++++++++
arch/arm64/boot/dts/renesas/r9a09g087.dtsi | 68 +++++++++++++++++++
drivers/clk/renesas/r9a09g077-cpg.c | 1 +
drivers/mfd/rz-mtu3.c | 39 +++--------
8 files changed, 181 insertions(+), 44 deletions(-)
--
2.53.0
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 01/11] clk: renesas: r9a09g077: add MTU3 module clock
2026-03-27 19:24 [PATCH 00/11] Add MTU3 for RZ/T2H and RZ/N2H Cosmin Tanislav
@ 2026-03-27 19:24 ` Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 02/11] mfd: rz-mtu3: use device-managed reset deassert Cosmin Tanislav
` (9 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Cosmin Tanislav @ 2026-03-27 19:24 UTC (permalink / raw)
To: Biju Das, Daniel Lezcano, Thomas Gleixner, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm, Michael Turquette, Stephen Boyd, Lee Jones,
Philipp Zabel
Cc: linux-iio, linux-renesas-soc, linux-kernel, devicetree, linux-clk,
Cosmin Tanislav
The Renesas RZ/T2H (R9A09G077) and RZ/N2H (R9A09G087) SoCs have a MTU3
block connected to the PCLKH and with a module clock controlled by
register 0x308, bit 0.
Add support for the module clock.
Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com>
---
drivers/clk/renesas/r9a09g077-cpg.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/clk/renesas/r9a09g077-cpg.c b/drivers/clk/renesas/r9a09g077-cpg.c
index 93b15e06a19b..f777601a23b9 100644
--- a/drivers/clk/renesas/r9a09g077-cpg.c
+++ b/drivers/clk/renesas/r9a09g077-cpg.c
@@ -257,6 +257,7 @@ static const struct mssr_mod_clk r9a09g077_mod_clks[] __initconst = {
DEF_MOD("spi0", 104, CLK_SPI0ASYNC),
DEF_MOD("spi1", 105, CLK_SPI1ASYNC),
DEF_MOD("spi2", 106, CLK_SPI2ASYNC),
+ DEF_MOD("mtu3", 200, R9A09G077_CLK_PCLKH),
DEF_MOD("adc0", 206, R9A09G077_CLK_PCLKH),
DEF_MOD("adc1", 207, R9A09G077_CLK_PCLKH),
DEF_MOD("adc2", 225, R9A09G077_CLK_PCLKM),
--
2.53.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 02/11] mfd: rz-mtu3: use device-managed reset deassert
2026-03-27 19:24 [PATCH 00/11] Add MTU3 for RZ/T2H and RZ/N2H Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 01/11] clk: renesas: r9a09g077: add MTU3 module clock Cosmin Tanislav
@ 2026-03-27 19:24 ` Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 03/11] mfd: rz-mtu3: use device-managed mfd_add_devices() Cosmin Tanislav
` (8 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Cosmin Tanislav @ 2026-03-27 19:24 UTC (permalink / raw)
To: Biju Das, Daniel Lezcano, Thomas Gleixner, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm, Michael Turquette, Stephen Boyd, Lee Jones,
Philipp Zabel
Cc: linux-iio, linux-renesas-soc, linux-kernel, devicetree, linux-clk,
Cosmin Tanislav
Replace devm_reset_control_get_exclusive() and the manual
reset_control_deassert()/reset_control_assert() with handling by
devm_reset_control_get_exclusive_deasserted().
While at it, remove struct rz_mtu3_priv::rstc and use a local variable
for it as it is not needed inside rz_mtu3_reset_assert().
Rename rz_mtu3_reset_assert() to rz_mtu3_mfd_remove() to accurately
describe its usage since it no longer calls reset_control_assert().
Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com>
---
drivers/mfd/rz-mtu3.c | 23 +++++++----------------
1 file changed, 7 insertions(+), 16 deletions(-)
diff --git a/drivers/mfd/rz-mtu3.c b/drivers/mfd/rz-mtu3.c
index 9cdfef610398..6b9c6831dffa 100644
--- a/drivers/mfd/rz-mtu3.c
+++ b/drivers/mfd/rz-mtu3.c
@@ -21,7 +21,6 @@
struct rz_mtu3_priv {
void __iomem *mmio;
- struct reset_control *rstc;
spinlock_t lock;
};
@@ -301,13 +300,9 @@ void rz_mtu3_disable(struct rz_mtu3_channel *ch)
}
EXPORT_SYMBOL_GPL(rz_mtu3_disable);
-static void rz_mtu3_reset_assert(void *data)
+static void rz_mtu3_mfd_remove(void *data)
{
- struct rz_mtu3 *mtu = dev_get_drvdata(data);
- struct rz_mtu3_priv *priv = mtu->priv_data;
-
mfd_remove_devices(data);
- reset_control_assert(priv->rstc);
}
static const struct mfd_cell rz_mtu3_devs[] = {
@@ -321,6 +316,7 @@ static const struct mfd_cell rz_mtu3_devs[] = {
static int rz_mtu3_probe(struct platform_device *pdev)
{
+ struct reset_control *rstc;
struct rz_mtu3_priv *priv;
struct rz_mtu3 *ddata;
unsigned int i;
@@ -340,15 +336,14 @@ static int rz_mtu3_probe(struct platform_device *pdev)
if (IS_ERR(priv->mmio))
return PTR_ERR(priv->mmio);
- priv->rstc = devm_reset_control_get_exclusive(&pdev->dev, NULL);
- if (IS_ERR(priv->rstc))
- return PTR_ERR(priv->rstc);
+ rstc = devm_reset_control_get_exclusive_deasserted(&pdev->dev, NULL);
+ if (IS_ERR(rstc))
+ return PTR_ERR(rstc);
ddata->clk = devm_clk_get(&pdev->dev, NULL);
if (IS_ERR(ddata->clk))
return PTR_ERR(ddata->clk);
- reset_control_deassert(priv->rstc);
spin_lock_init(&priv->lock);
platform_set_drvdata(pdev, ddata);
@@ -361,14 +356,10 @@ static int rz_mtu3_probe(struct platform_device *pdev)
ret = mfd_add_devices(&pdev->dev, 0, rz_mtu3_devs,
ARRAY_SIZE(rz_mtu3_devs), NULL, 0, NULL);
if (ret < 0)
- goto err_assert;
+ return ret;
- return devm_add_action_or_reset(&pdev->dev, rz_mtu3_reset_assert,
+ return devm_add_action_or_reset(&pdev->dev, rz_mtu3_mfd_remove,
&pdev->dev);
-
-err_assert:
- reset_control_assert(priv->rstc);
- return ret;
}
static const struct of_device_id rz_mtu3_of_match[] = {
--
2.53.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 03/11] mfd: rz-mtu3: use device-managed mfd_add_devices()
2026-03-27 19:24 [PATCH 00/11] Add MTU3 for RZ/T2H and RZ/N2H Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 01/11] clk: renesas: r9a09g077: add MTU3 module clock Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 02/11] mfd: rz-mtu3: use device-managed reset deassert Cosmin Tanislav
@ 2026-03-27 19:24 ` Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 04/11] mfd: rz-mtu3: store &pdev->dev in local variable Cosmin Tanislav
` (7 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Cosmin Tanislav @ 2026-03-27 19:24 UTC (permalink / raw)
To: Biju Das, Daniel Lezcano, Thomas Gleixner, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm, Michael Turquette, Stephen Boyd, Lee Jones,
Philipp Zabel
Cc: linux-iio, linux-renesas-soc, linux-kernel, devicetree, linux-clk,
Cosmin Tanislav
Replace mfd_add_devices() and the custom cleanup action with
devm_mfd_add_devices().
Remove the ret variable as it is now unused.
Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com>
---
drivers/mfd/rz-mtu3.c | 15 ++-------------
1 file changed, 2 insertions(+), 13 deletions(-)
diff --git a/drivers/mfd/rz-mtu3.c b/drivers/mfd/rz-mtu3.c
index 6b9c6831dffa..3be6f6c900b8 100644
--- a/drivers/mfd/rz-mtu3.c
+++ b/drivers/mfd/rz-mtu3.c
@@ -300,11 +300,6 @@ void rz_mtu3_disable(struct rz_mtu3_channel *ch)
}
EXPORT_SYMBOL_GPL(rz_mtu3_disable);
-static void rz_mtu3_mfd_remove(void *data)
-{
- mfd_remove_devices(data);
-}
-
static const struct mfd_cell rz_mtu3_devs[] = {
{
.name = "rz-mtu3-counter",
@@ -320,7 +315,6 @@ static int rz_mtu3_probe(struct platform_device *pdev)
struct rz_mtu3_priv *priv;
struct rz_mtu3 *ddata;
unsigned int i;
- int ret;
ddata = devm_kzalloc(&pdev->dev, sizeof(*ddata), GFP_KERNEL);
if (!ddata)
@@ -353,13 +347,8 @@ static int rz_mtu3_probe(struct platform_device *pdev)
mutex_init(&ddata->channels[i].lock);
}
- ret = mfd_add_devices(&pdev->dev, 0, rz_mtu3_devs,
- ARRAY_SIZE(rz_mtu3_devs), NULL, 0, NULL);
- if (ret < 0)
- return ret;
-
- return devm_add_action_or_reset(&pdev->dev, rz_mtu3_mfd_remove,
- &pdev->dev);
+ return devm_mfd_add_devices(&pdev->dev, 0, rz_mtu3_devs,
+ ARRAY_SIZE(rz_mtu3_devs), NULL, 0, NULL);
}
static const struct of_device_id rz_mtu3_of_match[] = {
--
2.53.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 04/11] mfd: rz-mtu3: store &pdev->dev in local variable
2026-03-27 19:24 [PATCH 00/11] Add MTU3 for RZ/T2H and RZ/N2H Cosmin Tanislav
` (2 preceding siblings ...)
2026-03-27 19:24 ` [PATCH 03/11] mfd: rz-mtu3: use device-managed mfd_add_devices() Cosmin Tanislav
@ 2026-03-27 19:24 ` Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 05/11] mfd: rz-mtu3: make reset optional Cosmin Tanislav
` (6 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Cosmin Tanislav @ 2026-03-27 19:24 UTC (permalink / raw)
To: Biju Das, Daniel Lezcano, Thomas Gleixner, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm, Michael Turquette, Stephen Boyd, Lee Jones,
Philipp Zabel
Cc: linux-iio, linux-renesas-soc, linux-kernel, devicetree, linux-clk,
Cosmin Tanislav
&pdev->dev is accessed multiple times during probe. Store it in a local
variable and use that to simplify the code.
Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com>
---
drivers/mfd/rz-mtu3.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/mfd/rz-mtu3.c b/drivers/mfd/rz-mtu3.c
index 3be6f6c900b8..37d12030e069 100644
--- a/drivers/mfd/rz-mtu3.c
+++ b/drivers/mfd/rz-mtu3.c
@@ -311,16 +311,17 @@ static const struct mfd_cell rz_mtu3_devs[] = {
static int rz_mtu3_probe(struct platform_device *pdev)
{
+ struct device *dev = &pdev->dev;
struct reset_control *rstc;
struct rz_mtu3_priv *priv;
struct rz_mtu3 *ddata;
unsigned int i;
- ddata = devm_kzalloc(&pdev->dev, sizeof(*ddata), GFP_KERNEL);
+ ddata = devm_kzalloc(dev, sizeof(*ddata), GFP_KERNEL);
if (!ddata)
return -ENOMEM;
- ddata->priv_data = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
+ ddata->priv_data = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
if (!ddata->priv_data)
return -ENOMEM;
@@ -330,11 +331,11 @@ static int rz_mtu3_probe(struct platform_device *pdev)
if (IS_ERR(priv->mmio))
return PTR_ERR(priv->mmio);
- rstc = devm_reset_control_get_exclusive_deasserted(&pdev->dev, NULL);
+ rstc = devm_reset_control_get_exclusive_deasserted(dev, NULL);
if (IS_ERR(rstc))
return PTR_ERR(rstc);
- ddata->clk = devm_clk_get(&pdev->dev, NULL);
+ ddata->clk = devm_clk_get(dev, NULL);
if (IS_ERR(ddata->clk))
return PTR_ERR(ddata->clk);
@@ -347,7 +348,7 @@ static int rz_mtu3_probe(struct platform_device *pdev)
mutex_init(&ddata->channels[i].lock);
}
- return devm_mfd_add_devices(&pdev->dev, 0, rz_mtu3_devs,
+ return devm_mfd_add_devices(dev, 0, rz_mtu3_devs,
ARRAY_SIZE(rz_mtu3_devs), NULL, 0, NULL);
}
--
2.53.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 05/11] mfd: rz-mtu3: make reset optional
2026-03-27 19:24 [PATCH 00/11] Add MTU3 for RZ/T2H and RZ/N2H Cosmin Tanislav
` (3 preceding siblings ...)
2026-03-27 19:24 ` [PATCH 04/11] mfd: rz-mtu3: store &pdev->dev in local variable Cosmin Tanislav
@ 2026-03-27 19:24 ` Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 06/11] dt-bindings: timer: renesas,rz-mtu3: remove TCIU8 interrupt Cosmin Tanislav
` (5 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Cosmin Tanislav @ 2026-03-27 19:24 UTC (permalink / raw)
To: Biju Das, Daniel Lezcano, Thomas Gleixner, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm, Michael Turquette, Stephen Boyd, Lee Jones,
Philipp Zabel
Cc: linux-iio, linux-renesas-soc, linux-kernel, devicetree, linux-clk,
Cosmin Tanislav
The Renesas RZ/T2H (R9A09G077) and RZ/N2H (R9A09G087) SoCs do not have a
reset line for the MTU3 block.
Prepare for them by making it optional.
Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com>
---
drivers/mfd/rz-mtu3.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mfd/rz-mtu3.c b/drivers/mfd/rz-mtu3.c
index 37d12030e069..689dbb181d30 100644
--- a/drivers/mfd/rz-mtu3.c
+++ b/drivers/mfd/rz-mtu3.c
@@ -331,7 +331,7 @@ static int rz_mtu3_probe(struct platform_device *pdev)
if (IS_ERR(priv->mmio))
return PTR_ERR(priv->mmio);
- rstc = devm_reset_control_get_exclusive_deasserted(dev, NULL);
+ rstc = devm_reset_control_get_optional_exclusive_deasserted(dev, NULL);
if (IS_ERR(rstc))
return PTR_ERR(rstc);
--
2.53.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 06/11] dt-bindings: timer: renesas,rz-mtu3: remove TCIU8 interrupt
2026-03-27 19:24 [PATCH 00/11] Add MTU3 for RZ/T2H and RZ/N2H Cosmin Tanislav
` (4 preceding siblings ...)
2026-03-27 19:24 ` [PATCH 05/11] mfd: rz-mtu3: make reset optional Cosmin Tanislav
@ 2026-03-27 19:24 ` Cosmin Tanislav
2026-04-07 19:21 ` Rob Herring (Arm)
2026-03-27 19:24 ` [PATCH 07/11] dt-bindings: timer: renesas,rz-mtu3: move required resets to conditional Cosmin Tanislav
` (4 subsequent siblings)
10 siblings, 1 reply; 15+ messages in thread
From: Cosmin Tanislav @ 2026-03-27 19:24 UTC (permalink / raw)
To: Biju Das, Daniel Lezcano, Thomas Gleixner, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm, Michael Turquette, Stephen Boyd, Lee Jones,
Philipp Zabel
Cc: linux-iio, linux-renesas-soc, linux-kernel, devicetree, linux-clk,
Cosmin Tanislav
Based on the following pages in the User Manuals, the MTU3 block does
not have a TCIU8 interrupt, only a TCIV8 interrupt, as the row where
TCIU8 should have been is marked as reserved, and the GIC SPI numbers
stop at 212.
* Page 486, Table 8.2 Interrupt mapping (7/13) in the Renesas RZ/G2UL
Rev.1.40 User Manual
* Page 363, Table 8.2 Interrupt Mapping (6/13) in the Renesas RZ/Five
Rev.1.30 User Manual
* Page 528, Table 8.2 Interrupt mapping (7/13) in the Renesas RZ/G2L
and RZ/G2LC Rev.1.50 User Manual
* Page 540, Table 8.2 Interrupt mapping (7/13) in the Renesas RZ/V2L
Rev.1.50 User Manual
Remove the TCIU8 interrupt.
Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com>
---
.../devicetree/bindings/timer/renesas,rz-mtu3.yaml | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml b/Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml
index 3ad10c5b66ba..00cd5cbcf6e9 100644
--- a/Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml
+++ b/Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml
@@ -162,7 +162,6 @@ properties:
- description: MTU8.TGRC input capture/compare match
- description: MTU8.TGRD input capture/compare match
- description: MTU8.TCNT overflow
- - description: MTU8.TCNT underflow
interrupt-names:
items:
@@ -209,7 +208,6 @@ properties:
- const: tgic8
- const: tgid8
- const: tciv8
- - const: tciu8
clocks:
maxItems: 1
@@ -287,8 +285,7 @@ examples:
<GIC_SPI 209 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 210 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 211 IRQ_TYPE_EDGE_RISING>,
- <GIC_SPI 212 IRQ_TYPE_EDGE_RISING>,
- <GIC_SPI 213 IRQ_TYPE_EDGE_RISING>;
+ <GIC_SPI 212 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "tgia0", "tgib0", "tgic0", "tgid0", "tciv0", "tgie0",
"tgif0",
"tgia1", "tgib1", "tciv1", "tciu1",
@@ -298,7 +295,7 @@ examples:
"tgiu5", "tgiv5", "tgiw5",
"tgia6", "tgib6", "tgic6", "tgid6", "tciv6",
"tgia7", "tgib7", "tgic7", "tgid7", "tciv7",
- "tgia8", "tgib8", "tgic8", "tgid8", "tciv8", "tciu8";
+ "tgia8", "tgib8", "tgic8", "tgid8", "tciv8";
clocks = <&cpg CPG_MOD R9A07G044_MTU_X_MCK_MTU3>;
power-domains = <&cpg>;
resets = <&cpg R9A07G044_MTU_X_PRESET_MTU3>;
--
2.53.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 07/11] dt-bindings: timer: renesas,rz-mtu3: move required resets to conditional
2026-03-27 19:24 [PATCH 00/11] Add MTU3 for RZ/T2H and RZ/N2H Cosmin Tanislav
` (5 preceding siblings ...)
2026-03-27 19:24 ` [PATCH 06/11] dt-bindings: timer: renesas,rz-mtu3: remove TCIU8 interrupt Cosmin Tanislav
@ 2026-03-27 19:24 ` Cosmin Tanislav
2026-04-07 19:22 ` Rob Herring (Arm)
2026-03-27 19:24 ` [PATCH 08/11] dt-bindings: timer: renesas,rz-mtu3: document RZ/{T2H,N2H} Cosmin Tanislav
` (3 subsequent siblings)
10 siblings, 1 reply; 15+ messages in thread
From: Cosmin Tanislav @ 2026-03-27 19:24 UTC (permalink / raw)
To: Biju Das, Daniel Lezcano, Thomas Gleixner, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm, Michael Turquette, Stephen Boyd, Lee Jones,
Philipp Zabel
Cc: linux-iio, linux-renesas-soc, linux-kernel, devicetree, linux-clk,
Cosmin Tanislav
The Renesas RZ/T2H (R9A09G077) and RZ/N2H (R9A09G087) SoCs do not have a
reset line for the MTU3 block.
Prepare for adding support for them by moving the required reset into a
conditional matching all compatibles except the fallback one.
Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com>
---
.../devicetree/bindings/timer/renesas,rz-mtu3.yaml | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml b/Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml
index 00cd5cbcf6e9..4623f6cddaf0 100644
--- a/Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml
+++ b/Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml
@@ -231,7 +231,19 @@ required:
- interrupt-names
- clocks
- power-domains
- - resets
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - renesas,r9a07g043-mtu3
+ - renesas,r9a07g044-mtu3
+ - renesas,r9a07g054-mtu3
+ then:
+ required:
+ - resets
additionalProperties: false
--
2.53.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 08/11] dt-bindings: timer: renesas,rz-mtu3: document RZ/{T2H,N2H}
2026-03-27 19:24 [PATCH 00/11] Add MTU3 for RZ/T2H and RZ/N2H Cosmin Tanislav
` (6 preceding siblings ...)
2026-03-27 19:24 ` [PATCH 07/11] dt-bindings: timer: renesas,rz-mtu3: move required resets to conditional Cosmin Tanislav
@ 2026-03-27 19:24 ` Cosmin Tanislav
2026-04-07 19:24 ` Rob Herring
2026-03-27 19:24 ` [PATCH 09/11] arm64: dts: renesas: r9a07g0{43,44,54}: remove TCIU8 interrupt from MTU3 Cosmin Tanislav
` (2 subsequent siblings)
10 siblings, 1 reply; 15+ messages in thread
From: Cosmin Tanislav @ 2026-03-27 19:24 UTC (permalink / raw)
To: Biju Das, Daniel Lezcano, Thomas Gleixner, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm, Michael Turquette, Stephen Boyd, Lee Jones,
Philipp Zabel
Cc: linux-iio, linux-renesas-soc, linux-kernel, devicetree, linux-clk,
Cosmin Tanislav
Compared to the previously supported SoCs, the Renesas RZ/T2H and RZ/N2H
SoCs do not have a reset line.
Add a new conditional only matching RZ/T2H and RZ/N2H which disables the
resets property.
Document RZ/T2H and RZ/N2H, and use the generic compatible as a
fallback, as functionality is the same.
Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com>
---
.../devicetree/bindings/timer/renesas,rz-mtu3.yaml | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml b/Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml
index 4623f6cddaf0..410951ca53f8 100644
--- a/Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml
+++ b/Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml
@@ -112,6 +112,8 @@ properties:
- renesas,r9a07g043-mtu3 # RZ/{G2UL,Five}
- renesas,r9a07g044-mtu3 # RZ/G2{L,LC}
- renesas,r9a07g054-mtu3 # RZ/V2L
+ - renesas,r9a09g077-mtu3 # RZ/T2H
+ - renesas,r9a09g087-mtu3 # RZ/N2H
- const: renesas,rz-mtu3
reg:
@@ -245,6 +247,17 @@ allOf:
required:
- resets
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - renesas,r9a09g077-mtu3
+ - renesas,r9a09g087-mtu3
+ then:
+ properties:
+ resets: false
+
additionalProperties: false
examples:
--
2.53.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 09/11] arm64: dts: renesas: r9a07g0{43,44,54}: remove TCIU8 interrupt from MTU3
2026-03-27 19:24 [PATCH 00/11] Add MTU3 for RZ/T2H and RZ/N2H Cosmin Tanislav
` (7 preceding siblings ...)
2026-03-27 19:24 ` [PATCH 08/11] dt-bindings: timer: renesas,rz-mtu3: document RZ/{T2H,N2H} Cosmin Tanislav
@ 2026-03-27 19:24 ` Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 10/11] arm64: dts: renesas: r9a09g077: add MTU3 support Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 11/11] arm64: dts: renesas: r9a09g087: " Cosmin Tanislav
10 siblings, 0 replies; 15+ messages in thread
From: Cosmin Tanislav @ 2026-03-27 19:24 UTC (permalink / raw)
To: Biju Das, Daniel Lezcano, Thomas Gleixner, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm, Michael Turquette, Stephen Boyd, Lee Jones,
Philipp Zabel
Cc: linux-iio, linux-renesas-soc, linux-kernel, devicetree, linux-clk,
Cosmin Tanislav
Based on the following pages in the User Manuals, the MTU3 block does
not have a TCIU8 interrupt, only a TCIV8 interrupt, as the row where
TCIU8 should have been is marked as reserved, and the GIC SPI numbers
stop at 212.
* Page 486, Table 8.2 Interrupt mapping (7/13) in the Renesas RZ/G2UL
Rev.1.40 User Manual
* Page 363, Table 8.2 Interrupt Mapping (6/13) in the Renesas RZ/Five
Rev.1.30 User Manual
* Page 528, Table 8.2 Interrupt mapping (7/13) in the Renesas RZ/G2L
and RZ/G2LC Rev.1.50 User Manual
* Page 540, Table 8.2 Interrupt mapping (7/13) in the Renesas RZ/V2L
Rev.1.50 User Manual
Remove the TCIU8 interrupt. This does not cause any breakage as the
driver does not make use of the interrupts.
Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com>
---
arch/arm64/boot/dts/renesas/r9a07g043.dtsi | 5 ++---
arch/arm64/boot/dts/renesas/r9a07g044.dtsi | 5 ++---
arch/arm64/boot/dts/renesas/r9a07g054.dtsi | 5 ++---
3 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/arch/arm64/boot/dts/renesas/r9a07g043.dtsi b/arch/arm64/boot/dts/renesas/r9a07g043.dtsi
index 593c66b27ad1..7bc37e1015a4 100644
--- a/arch/arm64/boot/dts/renesas/r9a07g043.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a07g043.dtsi
@@ -120,8 +120,7 @@ mtu3: timer@10001200 {
<SOC_PERIPHERAL_IRQ(209) IRQ_TYPE_EDGE_RISING>,
<SOC_PERIPHERAL_IRQ(210) IRQ_TYPE_EDGE_RISING>,
<SOC_PERIPHERAL_IRQ(211) IRQ_TYPE_EDGE_RISING>,
- <SOC_PERIPHERAL_IRQ(212) IRQ_TYPE_EDGE_RISING>,
- <SOC_PERIPHERAL_IRQ(213) IRQ_TYPE_EDGE_RISING>;
+ <SOC_PERIPHERAL_IRQ(212) IRQ_TYPE_EDGE_RISING>;
interrupt-names = "tgia0", "tgib0", "tgic0", "tgid0",
"tciv0", "tgie0", "tgif0",
"tgia1", "tgib1", "tciv1", "tciu1",
@@ -136,7 +135,7 @@ mtu3: timer@10001200 {
"tgia7", "tgib7", "tgic7", "tgid7",
"tciv7",
"tgia8", "tgib8", "tgic8", "tgid8",
- "tciv8", "tciu8";
+ "tciv8";
clocks = <&cpg CPG_MOD R9A07G043_MTU_X_MCK_MTU3>;
power-domains = <&cpg>;
resets = <&cpg R9A07G043_MTU_X_PRESET_MTU3>;
diff --git a/arch/arm64/boot/dts/renesas/r9a07g044.dtsi b/arch/arm64/boot/dts/renesas/r9a07g044.dtsi
index 29273da81995..799a974c4dba 100644
--- a/arch/arm64/boot/dts/renesas/r9a07g044.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a07g044.dtsi
@@ -220,8 +220,7 @@ mtu3: timer@10001200 {
<GIC_SPI 209 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 210 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 211 IRQ_TYPE_EDGE_RISING>,
- <GIC_SPI 212 IRQ_TYPE_EDGE_RISING>,
- <GIC_SPI 213 IRQ_TYPE_EDGE_RISING>;
+ <GIC_SPI 212 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "tgia0", "tgib0", "tgic0", "tgid0",
"tciv0", "tgie0", "tgif0",
"tgia1", "tgib1", "tciv1", "tciu1",
@@ -236,7 +235,7 @@ mtu3: timer@10001200 {
"tgia7", "tgib7", "tgic7", "tgid7",
"tciv7",
"tgia8", "tgib8", "tgic8", "tgid8",
- "tciv8", "tciu8";
+ "tciv8";
clocks = <&cpg CPG_MOD R9A07G044_MTU_X_MCK_MTU3>;
power-domains = <&cpg>;
resets = <&cpg R9A07G044_MTU_X_PRESET_MTU3>;
diff --git a/arch/arm64/boot/dts/renesas/r9a07g054.dtsi b/arch/arm64/boot/dts/renesas/r9a07g054.dtsi
index 0dee48c4f1e4..0dc4c3c8c06b 100644
--- a/arch/arm64/boot/dts/renesas/r9a07g054.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a07g054.dtsi
@@ -220,8 +220,7 @@ mtu3: timer@10001200 {
<GIC_SPI 209 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 210 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 211 IRQ_TYPE_EDGE_RISING>,
- <GIC_SPI 212 IRQ_TYPE_EDGE_RISING>,
- <GIC_SPI 213 IRQ_TYPE_EDGE_RISING>;
+ <GIC_SPI 212 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "tgia0", "tgib0", "tgic0", "tgid0",
"tciv0", "tgie0", "tgif0",
"tgia1", "tgib1", "tciv1", "tciu1",
@@ -236,7 +235,7 @@ mtu3: timer@10001200 {
"tgia7", "tgib7", "tgic7", "tgid7",
"tciv7",
"tgia8", "tgib8", "tgic8", "tgid8",
- "tciv8", "tciu8";
+ "tciv8";
clocks = <&cpg CPG_MOD R9A07G054_MTU_X_MCK_MTU3>;
power-domains = <&cpg>;
resets = <&cpg R9A07G054_MTU_X_PRESET_MTU3>;
--
2.53.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 10/11] arm64: dts: renesas: r9a09g077: add MTU3 support
2026-03-27 19:24 [PATCH 00/11] Add MTU3 for RZ/T2H and RZ/N2H Cosmin Tanislav
` (8 preceding siblings ...)
2026-03-27 19:24 ` [PATCH 09/11] arm64: dts: renesas: r9a07g0{43,44,54}: remove TCIU8 interrupt from MTU3 Cosmin Tanislav
@ 2026-03-27 19:24 ` Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 11/11] arm64: dts: renesas: r9a09g087: " Cosmin Tanislav
10 siblings, 0 replies; 15+ messages in thread
From: Cosmin Tanislav @ 2026-03-27 19:24 UTC (permalink / raw)
To: Biju Das, Daniel Lezcano, Thomas Gleixner, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm, Michael Turquette, Stephen Boyd, Lee Jones,
Philipp Zabel
Cc: linux-iio, linux-renesas-soc, linux-kernel, devicetree, linux-clk,
Cosmin Tanislav
The Renesas RZ/T2H (R9A09G077) SoC has an MTU3 block.
Add support for it.
Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com>
---
arch/arm64/boot/dts/renesas/r9a09g077.dtsi | 68 ++++++++++++++++++++++
1 file changed, 68 insertions(+)
diff --git a/arch/arm64/boot/dts/renesas/r9a09g077.dtsi b/arch/arm64/boot/dts/renesas/r9a09g077.dtsi
index 3761551c9647..fe5d206d4def 100644
--- a/arch/arm64/boot/dts/renesas/r9a09g077.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a09g077.dtsi
@@ -1116,6 +1116,74 @@ gic: interrupt-controller@83000000 {
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
};
+ mtu3: timer@90001200 {
+ compatible = "renesas,r9a09g077-mtu3",
+ "renesas,rz-mtu3";
+ reg = <0 0x90001200 0 0xb00>;
+ interrupts = <GIC_SPI 420 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 421 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 422 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 423 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 424 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 425 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 426 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 427 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 428 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 429 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 430 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 431 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 432 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 433 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 434 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 435 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 436 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 437 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 438 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 439 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 440 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 441 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 442 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 443 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 444 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 445 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 446 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 447 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 448 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 450 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 451 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 452 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 453 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 454 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 455 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 456 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 457 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 458 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 459 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 460 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 461 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 462 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "tgia0", "tgib0", "tgic0", "tgid0",
+ "tciv0", "tgie0", "tgif0",
+ "tgia1", "tgib1", "tciv1", "tciu1",
+ "tgia2", "tgib2", "tciv2", "tciu2",
+ "tgia3", "tgib3", "tgic3", "tgid3",
+ "tciv3",
+ "tgia4", "tgib4", "tgic4", "tgid4",
+ "tciv4",
+ "tgiu5", "tgiv5", "tgiw5",
+ "tgia6", "tgib6", "tgic6", "tgid6",
+ "tciv6",
+ "tgia7", "tgib7", "tgic7", "tgid7",
+ "tciv7",
+ "tgia8", "tgib8", "tgic8", "tgid8",
+ "tciv8";
+ clocks = <&cpg CPG_MOD 200>;
+ power-domains = <&cpg>;
+ #pwm-cells = <3>;
+ status = "disabled";
+ };
+
adc0: adc@90014000 {
compatible = "renesas,r9a09g077-adc";
reg = <0 0x90014000 0 0x400>;
--
2.53.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 11/11] arm64: dts: renesas: r9a09g087: add MTU3 support
2026-03-27 19:24 [PATCH 00/11] Add MTU3 for RZ/T2H and RZ/N2H Cosmin Tanislav
` (9 preceding siblings ...)
2026-03-27 19:24 ` [PATCH 10/11] arm64: dts: renesas: r9a09g077: add MTU3 support Cosmin Tanislav
@ 2026-03-27 19:24 ` Cosmin Tanislav
10 siblings, 0 replies; 15+ messages in thread
From: Cosmin Tanislav @ 2026-03-27 19:24 UTC (permalink / raw)
To: Biju Das, Daniel Lezcano, Thomas Gleixner, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm, Michael Turquette, Stephen Boyd, Lee Jones,
Philipp Zabel
Cc: linux-iio, linux-renesas-soc, linux-kernel, devicetree, linux-clk,
Cosmin Tanislav
The Renesas RZ/N2H (R9A09G087) SoC has an MTU3 block.
Add support for it.
Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com>
---
arch/arm64/boot/dts/renesas/r9a09g087.dtsi | 68 ++++++++++++++++++++++
1 file changed, 68 insertions(+)
diff --git a/arch/arm64/boot/dts/renesas/r9a09g087.dtsi b/arch/arm64/boot/dts/renesas/r9a09g087.dtsi
index f697e9698ed3..c64b532f3d23 100644
--- a/arch/arm64/boot/dts/renesas/r9a09g087.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a09g087.dtsi
@@ -1119,6 +1119,74 @@ gic: interrupt-controller@83000000 {
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
};
+ mtu3: timer@90001200 {
+ compatible = "renesas,r9a09g087-mtu3",
+ "renesas,rz-mtu3";
+ reg = <0 0x90001200 0 0xb00>;
+ interrupts = <GIC_SPI 420 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 421 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 422 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 423 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 424 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 425 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 426 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 427 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 428 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 429 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 430 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 431 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 432 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 433 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 434 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 435 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 436 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 437 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 438 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 439 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 440 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 441 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 442 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 443 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 444 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 445 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 446 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 447 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 448 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 450 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 451 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 452 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 453 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 454 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 455 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 456 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 457 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 458 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 459 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 460 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 461 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 462 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "tgia0", "tgib0", "tgic0", "tgid0",
+ "tciv0", "tgie0", "tgif0",
+ "tgia1", "tgib1", "tciv1", "tciu1",
+ "tgia2", "tgib2", "tciv2", "tciu2",
+ "tgia3", "tgib3", "tgic3", "tgid3",
+ "tciv3",
+ "tgia4", "tgib4", "tgic4", "tgid4",
+ "tciv4",
+ "tgiu5", "tgiv5", "tgiw5",
+ "tgia6", "tgib6", "tgic6", "tgid6",
+ "tciv6",
+ "tgia7", "tgib7", "tgic7", "tgid7",
+ "tciv7",
+ "tgia8", "tgib8", "tgic8", "tgid8",
+ "tciv8";
+ clocks = <&cpg CPG_MOD 200>;
+ power-domains = <&cpg>;
+ #pwm-cells = <3>;
+ status = "disabled";
+ };
+
adc0: adc@90014000 {
compatible = "renesas,r9a09g087-adc", "renesas,r9a09g077-adc";
reg = <0 0x90014000 0 0x400>;
--
2.53.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 06/11] dt-bindings: timer: renesas,rz-mtu3: remove TCIU8 interrupt
2026-03-27 19:24 ` [PATCH 06/11] dt-bindings: timer: renesas,rz-mtu3: remove TCIU8 interrupt Cosmin Tanislav
@ 2026-04-07 19:21 ` Rob Herring (Arm)
0 siblings, 0 replies; 15+ messages in thread
From: Rob Herring (Arm) @ 2026-04-07 19:21 UTC (permalink / raw)
To: Cosmin Tanislav
Cc: Stephen Boyd, Philipp Zabel, linux-iio, Krzysztof Kozlowski,
Biju Das, linux-clk, Conor Dooley, Magnus Damm, Thomas Gleixner,
linux-renesas-soc, linux-kernel, Geert Uytterhoeven, Lee Jones,
Michael Turquette, devicetree, Daniel Lezcano
On Fri, 27 Mar 2026 21:24:20 +0200, Cosmin Tanislav wrote:
> Based on the following pages in the User Manuals, the MTU3 block does
> not have a TCIU8 interrupt, only a TCIV8 interrupt, as the row where
> TCIU8 should have been is marked as reserved, and the GIC SPI numbers
> stop at 212.
>
> * Page 486, Table 8.2 Interrupt mapping (7/13) in the Renesas RZ/G2UL
> Rev.1.40 User Manual
> * Page 363, Table 8.2 Interrupt Mapping (6/13) in the Renesas RZ/Five
> Rev.1.30 User Manual
> * Page 528, Table 8.2 Interrupt mapping (7/13) in the Renesas RZ/G2L
> and RZ/G2LC Rev.1.50 User Manual
> * Page 540, Table 8.2 Interrupt mapping (7/13) in the Renesas RZ/V2L
> Rev.1.50 User Manual
>
> Remove the TCIU8 interrupt.
>
> Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com>
> ---
> .../devicetree/bindings/timer/renesas,rz-mtu3.yaml | 7 ++-----
> 1 file changed, 2 insertions(+), 5 deletions(-)
>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 07/11] dt-bindings: timer: renesas,rz-mtu3: move required resets to conditional
2026-03-27 19:24 ` [PATCH 07/11] dt-bindings: timer: renesas,rz-mtu3: move required resets to conditional Cosmin Tanislav
@ 2026-04-07 19:22 ` Rob Herring (Arm)
0 siblings, 0 replies; 15+ messages in thread
From: Rob Herring (Arm) @ 2026-04-07 19:22 UTC (permalink / raw)
To: Cosmin Tanislav
Cc: Biju Das, linux-iio, Lee Jones, Magnus Damm, Daniel Lezcano,
Stephen Boyd, devicetree, Michael Turquette, Geert Uytterhoeven,
Philipp Zabel, linux-renesas-soc, Thomas Gleixner, linux-clk,
linux-kernel, Krzysztof Kozlowski, Conor Dooley
On Fri, 27 Mar 2026 21:24:21 +0200, Cosmin Tanislav wrote:
> The Renesas RZ/T2H (R9A09G077) and RZ/N2H (R9A09G087) SoCs do not have a
> reset line for the MTU3 block.
>
> Prepare for adding support for them by moving the required reset into a
> conditional matching all compatibles except the fallback one.
>
> Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com>
> ---
> .../devicetree/bindings/timer/renesas,rz-mtu3.yaml | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 08/11] dt-bindings: timer: renesas,rz-mtu3: document RZ/{T2H,N2H}
2026-03-27 19:24 ` [PATCH 08/11] dt-bindings: timer: renesas,rz-mtu3: document RZ/{T2H,N2H} Cosmin Tanislav
@ 2026-04-07 19:24 ` Rob Herring
0 siblings, 0 replies; 15+ messages in thread
From: Rob Herring @ 2026-04-07 19:24 UTC (permalink / raw)
To: Cosmin Tanislav
Cc: Biju Das, Daniel Lezcano, Thomas Gleixner, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm, Michael Turquette,
Stephen Boyd, Lee Jones, Philipp Zabel, linux-iio,
linux-renesas-soc, linux-kernel, devicetree, linux-clk
On Fri, Mar 27, 2026 at 09:24:22PM +0200, Cosmin Tanislav wrote:
> Compared to the previously supported SoCs, the Renesas RZ/T2H and RZ/N2H
> SoCs do not have a reset line.
>
> Add a new conditional only matching RZ/T2H and RZ/N2H which disables the
> resets property.
>
> Document RZ/T2H and RZ/N2H, and use the generic compatible as a
> fallback, as functionality is the same.
>
> Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com>
> ---
> .../devicetree/bindings/timer/renesas,rz-mtu3.yaml | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml b/Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml
> index 4623f6cddaf0..410951ca53f8 100644
> --- a/Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml
> +++ b/Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml
> @@ -112,6 +112,8 @@ properties:
> - renesas,r9a07g043-mtu3 # RZ/{G2UL,Five}
> - renesas,r9a07g044-mtu3 # RZ/G2{L,LC}
> - renesas,r9a07g054-mtu3 # RZ/V2L
> + - renesas,r9a09g077-mtu3 # RZ/T2H
> + - renesas,r9a09g087-mtu3 # RZ/N2H
> - const: renesas,rz-mtu3
>
> reg:
> @@ -245,6 +247,17 @@ allOf:
> required:
> - resets
>
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - renesas,r9a09g077-mtu3
> + - renesas,r9a09g087-mtu3
This can just be an 'else' on the prior if/then schema. Really, these 2
patches can be combined as the motivation for the 1st patch is the 2nd
patch.
> + then:
> + properties:
> + resets: false
> +
> additionalProperties: false
>
> examples:
> --
> 2.53.0
>
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2026-04-07 19:24 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-27 19:24 [PATCH 00/11] Add MTU3 for RZ/T2H and RZ/N2H Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 01/11] clk: renesas: r9a09g077: add MTU3 module clock Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 02/11] mfd: rz-mtu3: use device-managed reset deassert Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 03/11] mfd: rz-mtu3: use device-managed mfd_add_devices() Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 04/11] mfd: rz-mtu3: store &pdev->dev in local variable Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 05/11] mfd: rz-mtu3: make reset optional Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 06/11] dt-bindings: timer: renesas,rz-mtu3: remove TCIU8 interrupt Cosmin Tanislav
2026-04-07 19:21 ` Rob Herring (Arm)
2026-03-27 19:24 ` [PATCH 07/11] dt-bindings: timer: renesas,rz-mtu3: move required resets to conditional Cosmin Tanislav
2026-04-07 19:22 ` Rob Herring (Arm)
2026-03-27 19:24 ` [PATCH 08/11] dt-bindings: timer: renesas,rz-mtu3: document RZ/{T2H,N2H} Cosmin Tanislav
2026-04-07 19:24 ` Rob Herring
2026-03-27 19:24 ` [PATCH 09/11] arm64: dts: renesas: r9a07g0{43,44,54}: remove TCIU8 interrupt from MTU3 Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 10/11] arm64: dts: renesas: r9a09g077: add MTU3 support Cosmin Tanislav
2026-03-27 19:24 ` [PATCH 11/11] arm64: dts: renesas: r9a09g087: " Cosmin Tanislav
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox