From 651309117372a6b79ef442da7a049399a9ffd851 Mon Sep 17 00:00:00 2001 From: Mahesh Mahadevan Date: Tue, 24 Apr 2018 14:26:20 -0500 Subject: [PATCH] LPC546XX: Add check for GPIO IRQ GPIO IRQ is available on pins for Ports 0 & 1. Add a check to return error for other ports. Signed-off-by: Mahesh Mahadevan --- .../TARGET_MCUXpresso_MCUS/TARGET_LPC/gpio_irq_api.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/targets/TARGET_NXP/TARGET_MCUXpresso_MCUS/TARGET_LPC/gpio_irq_api.c b/targets/TARGET_NXP/TARGET_MCUXpresso_MCUS/TARGET_LPC/gpio_irq_api.c index 0b1e7072ae..46cea7a73b 100644 --- a/targets/TARGET_NXP/TARGET_MCUXpresso_MCUS/TARGET_LPC/gpio_irq_api.c +++ b/targets/TARGET_NXP/TARGET_MCUXpresso_MCUS/TARGET_LPC/gpio_irq_api.c @@ -25,6 +25,8 @@ #include "fsl_pint.h" #include "mbed_error.h" +#define INTERRUPT_PORTS 2 + static uint32_t channel_ids[NUMBER_OF_GPIO_INTS] = {0}; static gpio_irq_handler irq_handler; /* Array of PORT IRQ number. */ @@ -83,6 +85,10 @@ int gpio_irq_init(gpio_irq_t *obj, PinName pin, gpio_irq_handler handler, uint32 obj->pin = pin & 0x1F; obj->port = pin / 32; + if (obj->port >= INTERRUPT_PORTS) { + return -1; + } + /* Connect trigger sources to PINT */ INPUTMUX_Init(INPUTMUX);