diff --git a/targets/TARGET_Maxim/TARGET_MAX32625/gpio_api.c b/targets/TARGET_Maxim/TARGET_MAX32625/gpio_api.c index 2b5bb5e41b7..c59a879a2be 100644 --- a/targets/TARGET_Maxim/TARGET_MAX32625/gpio_api.c +++ b/targets/TARGET_Maxim/TARGET_MAX32625/gpio_api.c @@ -67,6 +67,13 @@ void gpio_init(gpio_t *obj, PinName name) void gpio_mode(gpio_t *obj, PinMode mode) { +#ifdef OPEN_DRAIN_LEDS + if ((obj->name == LED1) || (obj->name == LED2) || + (obj->name == LED3) || (obj->name == LED4)) { + mode = OpenDrain; + } +#endif + obj->mode = mode; pin_mode(obj->name, mode); } diff --git a/targets/targets.json b/targets/targets.json index 44c4d3dc424..1947f4f538f 100755 --- a/targets/targets.json +++ b/targets/targets.json @@ -2782,7 +2782,7 @@ "MAX32625MBED": { "inherits": ["Target"], "core": "Cortex-M4F", - "macros": ["__SYSTEM_HFX=96000000","TARGET=MAX32625","TARGET_REV=0x4132"], + "macros": ["__SYSTEM_HFX=96000000","TARGET=MAX32625","TARGET_REV=0x4132", "OPEN_DRAIN_LEDS"], "extra_labels": ["Maxim", "MAX32625"], "supported_toolchains": ["GCC_ARM", "IAR", "ARM"], "device_has": ["ANALOGIN", "I2C", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "STDIO_MESSAGES"],