diff options
author | Keith Packard <keithp@keithp.com> | 2013-05-21 11:16:54 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2013-05-21 11:16:54 -0700 |
commit | fd5567882b732f8947b44b217552077c82a3d28e (patch) | |
tree | 291a07d2c1f0586c238f29389abc881096e27c5f /src/stm/ao_exti_stm.c | |
parent | fd55c1fe53adf5c50dcd3ce8296f80871cec73e9 (diff) | |
parent | 57b4d82dee10b142b820aa306028a288a85214f6 (diff) |
Merge branch 'lpc'
Diffstat (limited to 'src/stm/ao_exti_stm.c')
-rw-r--r-- | src/stm/ao_exti_stm.c | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/src/stm/ao_exti_stm.c b/src/stm/ao_exti_stm.c index 1361d0d4..c1dcdf85 100644 --- a/src/stm/ao_exti_stm.c +++ b/src/stm/ao_exti_stm.c @@ -70,21 +70,23 @@ ao_exti_setup (struct stm_gpio *gpio, uint8_t pin, uint8_t mode, void (*callback /* configure gpio to interrupt routing */ stm_exticr_set(gpio, pin); - /* configure pin as input, setting selected pull-up/down mode */ - stm_moder_set(gpio, pin, STM_MODER_INPUT); - switch (mode & (AO_EXTI_MODE_PULL_UP|AO_EXTI_MODE_PULL_DOWN)) { - case 0: - default: - pupdr = STM_PUPDR_NONE; - break; - case AO_EXTI_MODE_PULL_UP: - pupdr = STM_PUPDR_PULL_UP; - break; - case AO_EXTI_MODE_PULL_DOWN: - pupdr = STM_PUPDR_PULL_DOWN; - break; + if (!(mode & AO_EXTI_PIN_NOCONFIGURE)) { + /* configure pin as input, setting selected pull-up/down mode */ + stm_moder_set(gpio, pin, STM_MODER_INPUT); + switch (mode & (AO_EXTI_MODE_PULL_UP|AO_EXTI_MODE_PULL_DOWN)) { + case 0: + default: + pupdr = STM_PUPDR_NONE; + break; + case AO_EXTI_MODE_PULL_UP: + pupdr = STM_PUPDR_PULL_UP; + break; + case AO_EXTI_MODE_PULL_DOWN: + pupdr = STM_PUPDR_PULL_DOWN; + break; + } + stm_pupdr_set(gpio, pin, pupdr); } - stm_pupdr_set(gpio, pin, pupdr); /* Set interrupt mask and rising/falling mode */ stm_exti.imr &= ~mask; |