mirror of https://github.com/ARMmbed/mbed-os.git
Use previously introduced pin_function_gpiomode
This way the pull-up / pull-down modes would not be overwritten as first reported in issue #2638pull/2975/head
parent
e160132cc0
commit
7cfa975753
|
@ -163,6 +163,7 @@ static void gpio_irq6(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
extern uint32_t Set_GPIO_Clock(uint32_t port_idx);
|
extern uint32_t Set_GPIO_Clock(uint32_t port_idx);
|
||||||
|
extern void pin_function_gpiomode(PinName pin, uint32_t gpiomode);
|
||||||
|
|
||||||
int gpio_irq_init(gpio_irq_t *obj, PinName pin, gpio_irq_handler handler, uint32_t id)
|
int gpio_irq_init(gpio_irq_t *obj, PinName pin, gpio_irq_handler handler, uint32_t id)
|
||||||
{
|
{
|
||||||
|
@ -267,15 +268,14 @@ void gpio_irq_free(gpio_irq_t *obj)
|
||||||
gpio_channel->channel_gpio[gpio_idx] = 0;
|
gpio_channel->channel_gpio[gpio_idx] = 0;
|
||||||
gpio_channel->channel_pin[gpio_idx] = 0;
|
gpio_channel->channel_pin[gpio_idx] = 0;
|
||||||
|
|
||||||
// Disable EXTI line
|
// Disable EXTI line, but don't change pull-up config
|
||||||
pin_function(obj->pin, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
|
pin_function_gpiomode(obj->pin, STM_MODE_INPUT);
|
||||||
obj->event = EDGE_NONE;
|
obj->event = EDGE_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gpio_irq_set(gpio_irq_t *obj, gpio_irq_event event, uint32_t enable)
|
void gpio_irq_set(gpio_irq_t *obj, gpio_irq_event event, uint32_t enable)
|
||||||
{
|
{
|
||||||
uint32_t mode = STM_MODE_IT_EVT_RESET;
|
uint32_t mode = STM_MODE_IT_EVT_RESET;
|
||||||
uint32_t pull = GPIO_NOPULL;
|
|
||||||
|
|
||||||
if (enable) {
|
if (enable) {
|
||||||
if (event == IRQ_RISE) {
|
if (event == IRQ_RISE) {
|
||||||
|
@ -317,7 +317,7 @@ void gpio_irq_set(gpio_irq_t *obj, gpio_irq_event event, uint32_t enable)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pin_function(obj->pin, STM_PIN_DATA(mode, pull, 0));
|
pin_function_gpiomode(obj->pin, mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void gpio_irq_enable(gpio_irq_t *obj)
|
void gpio_irq_enable(gpio_irq_t *obj)
|
||||||
|
|
Loading…
Reference in New Issue