diff --git a/libraries/mbed/common/gpio.c b/libraries/mbed/common/gpio.c index 54220c7273..62de59d4af 100644 --- a/libraries/mbed/common/gpio.c +++ b/libraries/mbed/common/gpio.c @@ -15,23 +15,27 @@ */ #include "gpio_api.h" -#define GPIO_INIT_IN(obj, pin, mode) \ - gpio_init(obj, pin), \ - gpio_mode(obj, mode), \ - gpio_dir(obj, PIN_INPUT) +static inline void _gpio_init_in(gpio_t* gpio, PinName pin, PinMode mode) +{ + gpio_init(gpio, pin); + gpio_mode(gpio, mode); + gpio_dir(gpio, PIN_INPUT); +} -#define GPIO_INIT_OUT(obj, pin, mode, value) \ - gpio_init(obj, pin), \ - gpio_write(obj, value), \ - gpio_dir(obj, PIN_OUTPUT), \ - gpio_mode(obj, mode) +static inline void _gpio_init_out(gpio_t* gpio, PinName pin, PinMode mode, int value) +{ + gpio_init(gpio, pin); + gpio_write(gpio, value); + gpio_dir(gpio, PIN_OUTPUT); + gpio_mode(gpio, mode); +} void gpio_init_in(gpio_t* gpio, PinName pin) { gpio_init_in_ex(gpio, pin, PullDefault); } void gpio_init_in_ex(gpio_t* gpio, PinName pin, PinMode mode) { - GPIO_INIT_IN(gpio, pin, mode); + _gpio_init_in(gpio, pin, mode); } void gpio_init_out(gpio_t* gpio, PinName pin) { @@ -39,14 +43,14 @@ void gpio_init_out(gpio_t* gpio, PinName pin) { } void gpio_init_out_ex(gpio_t* gpio, PinName pin, int value) { - GPIO_INIT_OUT(gpio, pin, PullNone, value); + _gpio_init_out(gpio, pin, PullNone, value); } void gpio_init_inout(gpio_t* gpio, PinName pin, PinDirection direction, PinMode mode, int value) { if (direction == PIN_INPUT) { - GPIO_INIT_IN(gpio, pin, mode); - gpio_write(gpio, value); // we prepare the value in case direction is switched later + _gpio_init_in(gpio, pin, mode); + gpio_write(gpio, value); // we prepare the value in case it is switched later } else { - GPIO_INIT_OUT(gpio, pin, mode, value); + _gpio_init_out(gpio, pin, mode, value); } } diff --git a/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC176X/TARGET_UBLOX_C027/platform_init.c b/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC176X/TARGET_UBLOX_C027/platform_init.c index fd38537553..d7a96ae58e 100644 --- a/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC176X/TARGET_UBLOX_C027/platform_init.c +++ b/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC176X/TARGET_UBLOX_C027/platform_init.c @@ -9,19 +9,19 @@ void mbed_sdk_init() gpio_t gpsEn, gpsRst, led, modemRts; // start with modem disabled - gpio_init_out_ex(&modemEn, MDMEN, PullNone, 0); - gpio_init_out_ex(&modemRst, MDMRST, PullNone, 1); - gpio_init_out_ex(&modemPwrOn, MDMPWRON, PullNone, 1); - gpio_init_out_ex(&modemLvlOe, MDMLVLOE, PullNone, 1); - gpio_init_out_ex(&modemILvlOe, MDMILVLOE, PullNone, 0); - gpio_init_out_ex(&modemUsbDet, MDMUSBDET, PullNone, 0); - gpio_init_out_ex(&modemRts, MDMRTS, PullNone, 0); + gpio_init_out_ex(&modemEn, MDMEN, PullNone, 0); + gpio_init_out_ex(&modemRst, MDMRST, PullNone, 1); + gpio_init_out_ex(&modemPwrOn, MDMPWRON, PullNone, 1); + gpio_init_out_ex(&modemLvlOe, MDMLVLOE, PullNone, 1); + gpio_init_out_ex(&modemILvlOe, MDMILVLOE, PullNone, 0); + gpio_init_out_ex(&modemUsbDet, MDMUSBDET, PullNone, 0); + gpio_init_out_ex(&modemRts, MDMRTS, PullNone, 0); // start with gps disabled - gpio_init_out_ex(&gpsEn, GPSEN, PullNone, 0); - gpio_init_out_ex(&gpsRst, GPSRST, PullNone, 1); + gpio_init_out_ex(&gpsEn, GPSEN, PullNone, 0); + gpio_init_out_ex(&gpsRst, GPSRST, PullNone, 1); // led should be off - gpio_init_out_ex(&led, LED, PullNone, 0); - + gpio_init_out_ex(&led, LED, PullNone, 0); + wait_ms(50); // when USB cable is inserted the interface chip issues // multiple resets to the target CPU We wait here for a short period to // prevent those resets from propagating to the modem and other