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; | 
