]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
irqchip/renesas-rzg2l: Drop IRQC_IRQ_COUNT macro
authorBiju Das <biju.das.jz@bp.renesas.com>
Wed, 25 Mar 2026 19:24:29 +0000 (19:24 +0000)
committerThomas Gleixner <tglx@kernel.org>
Thu, 26 Mar 2026 15:56:23 +0000 (16:56 +0100)
The total number of external interrupts in RZ/G2L and RZ/G3L SoC are
different. The RZ/G3L has 16 external interrupts whereas RZ/G2L has only 8
external interrupts. Add irq_count variable in struct rzg2l_hw_info to
handle these differences and drop the macro IRQC_IRQ_COUNT.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260325192451.172562-15-biju.das.jz@bp.renesas.com
drivers/irqchip/irq-renesas-rzg2l.c

index 06caa2258334978991b882a9895dc2f2943e4242..5387e901075ecb2c1534c0f9ce9cbb6d387711c0 100644 (file)
@@ -21,7 +21,6 @@
 #include <linux/syscore_ops.h>
 
 #define IRQC_IRQ_START                 1
-#define IRQC_IRQ_COUNT                 8
 #define IRQC_TINT_COUNT                        32
 
 #define ISCR                           0x10
@@ -68,10 +67,12 @@ struct rzg2l_irqc_reg_cache {
 
 /**
  * struct rzg2l_hw_info - Interrupt Control Unit controller hardware info structure.
+ * @irq_count:         Number of IRQC interrupts
  * @tint_start:                Start of TINT interrupts
  * @num_irq:           Total Number of interrupts
  */
 struct rzg2l_hw_info {
+       unsigned int    irq_count;
        unsigned int    tint_start;
        unsigned int    num_irq;
 };
@@ -573,7 +574,7 @@ static int rzg2l_irqc_alloc(struct irq_domain *domain, unsigned int virq,
         * from 16-31 bits. TINT from the pinctrl driver needs to be programmed
         * in IRQC registers to enable a given gpio pin as interrupt.
         */
-       if (hwirq > IRQC_IRQ_COUNT) {
+       if (hwirq > priv->info.irq_count) {
                tint = TINT_EXTRACT_GPIOINT(hwirq);
                hwirq = TINT_EXTRACT_HWIRQ(hwirq);
                chip = priv->tint_chip;
@@ -681,8 +682,9 @@ static int rzg2l_irqc_common_probe(struct platform_device *pdev, struct device_n
 }
 
 static const struct rzg2l_hw_info rzg2l_hw_params = {
-       .tint_start     = IRQC_IRQ_START + IRQC_IRQ_COUNT,
-       .num_irq        = IRQC_IRQ_START + IRQC_IRQ_COUNT + IRQC_TINT_COUNT,
+       .irq_count      = 8,
+       .tint_start     = IRQC_IRQ_START + 8,
+       .num_irq        = IRQC_IRQ_START + 8 + IRQC_TINT_COUNT,
 };
 
 static int rzg2l_irqc_probe(struct platform_device *pdev, struct device_node *parent)