[PATCH v4 0/9] Add RZ/G3L IRQC support

From: Biju

Date: Fri Feb 27 2026 - 09:32:13 EST


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

The IRQC block on RZ/G3L SoC is almost identical to one found on the
RZ/G3S SoC with the difference like it support more external interrupts,
GPT error Interrupts and also has additional registers for GPT/MTU
interrupt selection, shared interrupt selection between external interrupt
and TINT.

It has 16 external interrupts of which 8 interrupts are shared with
TINT[24:31] and are mutually exclusive. The external IRQ/TINT interrupt
selection is based on a register in the ICU block.

Ref:
v3: https://lore.kernel.org/all/20260206111658.231934-1-biju.das.jz@xxxxxxxxxxxxxx/
v2: https://lore.kernel.org/all/20260204180632.249139-1-biju.das.jz@xxxxxxxxxxxxxx/
v1: https://lore.kernel.org/all/20260204142320.103184-1-biju.das.jz@xxxxxxxxxxxxxx/
v3->v4:
* Collected tag from Rob for binding patch#1
* Updated commit description for binding patch#{1,2}.
* Updated commit header for patch#3
* Replaced IRQs->interrupts in commit description
* Fixed the typo Dynamicaly->Dynamically
* Updated commit description IRQs->interrupts in patch#4
* Replaced the variable type for num_irq in struct rzg2l_hw_info from
u8->unsigned int
* Replaced the pointer variable info from irqc_priv and instead embed a
struct hwinfo into irqc_priv and copy the data into it at probe time.
* Replaced the check 'hwirq > (priv->info->num_irq - 1)' with
hwirq >= priv->info.num_irq
* Updated commit description 'this differences->this difference' in
patch#5.
* Updated tint_start variable type from u8-> unsigned int.
* Updated commit description IRQs->interrupts in patch#6.
* Updated variable type of irq_count from u8->unsigned int.
* Updated commit description IRQs->interrupts in patch#7.
* Updated rzg2l_disable_tint_and_set_tint_source() for making
tint assignment very clear in the code.
* Formatted rzg3l_tssel_lut as table format.
* Updated commit header irq->interrupt in patch#8.
* Updated commit description IRQs->interrupts.
* Updated shared_irq_cnt variable type from u8->unsigned int.
v2->v3:
* Dropped items and instead used enum for single compatible values
* Add minItems for interrupts and interrupt-names properties of
the RZ/{G2L,G2UL,Five,V2L} SoCs
* Replaced maxItems->minItems for interrupts and interrupt-names
properties of the RZ/G3L SoC.
v1->v2:
* Simplified the binding by using pattern for intterrupt-names
* Fixed the binding warnings reported by bot.

Biju Das (9):
dt-bindings: interrupt-controller: renesas,rzg2l-irqc: Use pattern for
interrupt-names
dt-bindings: interrupt-controller: renesas,rzg2l-irqc: Document RZ/G3L
SoC
irqchip/renesas-rzg2l: Dynamically allocate fwspec array
irqchip/renesas-rzg2l: Drop IRQC_NUM_IRQ macro
irqchip/renesas-rzg2l: Drop IRQC_TINT_START macro
irqchip/renesas-rzg2l: Drop IRQC_IRQ_COUNT macro
irqchip/renesas-rzg2l: Add RZ/G3L support
irqchip/renesas-rzg2l: Add shared interrupt support
arm64: dts: renesas: r9a08g046: Add ICU node

.../renesas,rzg2l-irqc.yaml | 157 +++++--------
arch/arm64/boot/dts/renesas/r9a08g046.dtsi | 91 ++++++++
drivers/irqchip/irq-renesas-rzg2l.c | 216 +++++++++++++++---
3 files changed, 335 insertions(+), 129 deletions(-)

--
2.43.0