Skip to content

Commit 3fb3be8

Browse files
[infineon]fix ifx_pin_irq_enable
1 parent f0609c1 commit 3fb3be8

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

bsp/Infineon/libraries/HAL_Drivers/drv_gpio.c

+7-2
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ static rt_err_t ifx_pin_irq_enable(struct rt_device *device, rt_base_t pin,
321321
irqmap = &pin_irq_map[gpio_port];
322322

323323
#if !defined(COMPONENT_CAT1C)
324-
IRQn_Type irqn = (IRQn_Type)(irqmap->irqno + PORT_GET(irqmap->port));
324+
IRQn_Type irqn = irqmap->irqno;
325325
irq_cb_data[irqn].callback = irq_callback;
326326
irq_cb_data[irqn].callback_arg = (rt_uint16_t *)&pin_irq_map[gpio_port].port;
327327
cyhal_gpio_register_callback(gpio_pin, &irq_cb_data[irqn]);
@@ -357,7 +357,12 @@ static rt_err_t ifx_pin_irq_enable(struct rt_device *device, rt_base_t pin,
357357
irqmap = &pin_irq_map[gpio_port];
358358

359359
#if !defined(COMPONENT_CAT1C)
360-
IRQn_Type irqn = (IRQn_Type)(irqmap->irqno + PORT_GET(irqmap->port));
360+
IRQn_Type irqn = irqmap->irqno;
361+
if (irqn < 0 || irqn >= PIN_IFXPORT_MAX)
362+
{
363+
rt_hw_interrupt_enable(level);
364+
return -RT_EINVAL;
365+
}
361366
_cyhal_irq_disable(irqn);
362367
#endif
363368
rt_hw_interrupt_enable(level);

0 commit comments

Comments
 (0)