Skip to content

Commit 28e89cd

Browse files
bijudasKAGA-KOKO
authored andcommitted
irqchip/renesas-rzv2h: Prevent TINT spurious interrupt
A spurious TINT interrupt is seen during boot on RZ/G3E SMARC EVK. A glitch in the edge detection circuit can cause a spurious interrupt. Clear the status flag after setting the ICU_TSSRk registers, which is recommended in the hardware manual as a countermeasure. Fixes: 0d7605e ("irqchip: Add RZ/V2H(P) Interrupt Control Unit (ICU) driver") Signed-off-by: Biju Das <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Cc: [email protected]
1 parent fbb429d commit 28e89cd

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

drivers/irqchip/irq-renesas-rzv2h.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,14 @@ static void rzv2h_tint_irq_endisable(struct irq_data *d, bool enable)
170170
else
171171
tssr &= ~ICU_TSSR_TIEN(tssel_n, priv->info->field_width);
172172
writel_relaxed(tssr, priv->base + priv->info->t_offs + ICU_TSSR(k));
173+
174+
/*
175+
* A glitch in the edge detection circuit can cause a spurious
176+
* interrupt. Clear the status flag after setting the ICU_TSSRk
177+
* registers, which is recommended by the hardware manual as a
178+
* countermeasure.
179+
*/
180+
writel_relaxed(BIT(tint_nr), priv->base + priv->info->t_offs + ICU_TSCLR);
173181
}
174182

175183
static void rzv2h_icu_irq_disable(struct irq_data *d)

0 commit comments

Comments
 (0)