diff --git a/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC2460/gpio_api.c b/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC2460/gpio_api.c index fd9c29b528..2678dfdaa5 100644 --- a/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC2460/gpio_api.c +++ b/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC2460/gpio_api.c @@ -29,6 +29,9 @@ void gpio_init(gpio_t *obj, PinName pin) { if (pin == (PinName)NC) return; obj->pin = pin; + if (pin == (PinName)NC) + return; + obj->mask = gpio_set(pin); LPC_GPIO_TypeDef *port_reg = (LPC_GPIO_TypeDef *) ((int)pin & ~0x1F); diff --git a/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC2460/gpio_object.h b/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC2460/gpio_object.h index f149950b16..291dfb848e 100644 --- a/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC2460/gpio_object.h +++ b/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC2460/gpio_object.h @@ -48,6 +48,10 @@ static inline int gpio_read(gpio_t *obj) { return ((*obj->reg_in & obj->mask) ? 1 : 0); } +static inline int gpio_is_connected(const gpio_t *obj) { + return obj->pin != (PinName)NC; +} + #ifdef __cplusplus } #endif