diff --git a/drivers/interrupt_controller/intc_plic.c b/drivers/interrupt_controller/intc_plic.c index 42f6cbc1f069..ed055017d69c 100644 --- a/drivers/interrupt_controller/intc_plic.c +++ b/drivers/interrupt_controller/intc_plic.c @@ -70,7 +70,7 @@ static int riscv_plic_is_edge_irq(uint32_t irq) volatile uint32_t *trig = (volatile uint32_t *)PLIC_EDGE_TRIG_TYPE; trig += (irq >> PLIC_EDGE_TRIG_SHIFT); - return *trig & BIT(irq); + return *trig & BIT(irq & BIT_MASK(PLIC_EDGE_TRIG_SHIFT)); } /**