From e6f77f9b735e67d38e8b8625fc2bdba1948e71ac Mon Sep 17 00:00:00 2001 From: Yong Cong Sin Date: Tue, 28 Nov 2023 13:04:32 +0800 Subject: [PATCH] driver: intc: plic: fix trigger type register bit calculation The bit position calculation for the trigger type is wrong, fix that. Signed-off-by: Yong Cong Sin --- drivers/interrupt_controller/intc_plic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/interrupt_controller/intc_plic.c b/drivers/interrupt_controller/intc_plic.c index 434274e8c41..b8ca3234d12 100644 --- a/drivers/interrupt_controller/intc_plic.c +++ b/drivers/interrupt_controller/intc_plic.c @@ -140,7 +140,7 @@ static int riscv_plic_is_edge_irq(const struct device *dev, uint32_t local_irq) const struct plic_config *config = dev->config; mem_addr_t trig_addr = config->trig + local_irq_to_reg_offset(local_irq); - return sys_read32(trig_addr) & BIT(local_irq); + return sys_read32(trig_addr) & BIT(local_irq & PLIC_REG_MASK); } static void plic_irq_enable_set_state(uint32_t irq, bool enable)