diff options
| author | Bdale Garbee <bdale@gag.com> | 2012-08-28 23:39:53 -0600 | 
|---|---|---|
| committer | Bdale Garbee <bdale@gag.com> | 2012-08-28 23:39:53 -0600 | 
| commit | 5ed88fb72c3e3ecf3333c700d838667db71cfbdc (patch) | |
| tree | 3b371f563c0f7607f2fe53242673adb352b48514 /src/stm/ao_arch_funcs.h | |
| parent | adbe64c5a9402b7c5075a444a12629131b663877 (diff) | |
| parent | 621d0930244f25165d2ac5da596dcc87e253b965 (diff) | |
Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
Conflicts:
	debian/control
Diffstat (limited to 'src/stm/ao_arch_funcs.h')
| -rw-r--r-- | src/stm/ao_arch_funcs.h | 40 | 
1 files changed, 39 insertions, 1 deletions
| diff --git a/src/stm/ao_arch_funcs.h b/src/stm/ao_arch_funcs.h index d2c973f5..d4fbea37 100644 --- a/src/stm/ao_arch_funcs.h +++ b/src/stm/ao_arch_funcs.h @@ -20,12 +20,37 @@  /* ao_spi_stm.c   */ -extern uint8_t	ao_spi_mutex[STM_NUM_SPI];  #define AO_SPI_SPEED_FAST	STM_SPI_CR1_BR_PCLK_4  #define AO_SPI_SPEED_1MHz	STM_SPI_CR1_BR_PCLK_16  #define AO_SPI_SPEED_200kHz	STM_SPI_CR1_BR_PCLK_256 +#define AO_SPI_CONFIG_1		0x00 +#define AO_SPI_1_CONFIG_PA5_PA6_PA7	AO_SPI_CONFIG_1 +#define AO_SPI_2_CONFIG_PB13_PB14_PB15	AO_SPI_CONFIG_1 + +#define AO_SPI_CONFIG_2		0x04 +#define AO_SPI_1_CONFIG_PB3_PB4_PB5	AO_SPI_CONFIG_2 +#define AO_SPI_2_CONFIG_PD1_PD3_PD4	AO_SPI_CONFIG_2 + +#define AO_SPI_CONFIG_3		0x08 +#define AO_SPI_1_CONFIG_PE13_PE14_PE15	AO_SPI_CONFIG_3 + +#define AO_SPI_CONFIG_NONE	0x0c + +#define AO_SPI_INDEX_MASK	0x01 +#define AO_SPI_CONFIG_MASK	0x0c + +#define AO_SPI_1_PA5_PA6_PA7	(STM_SPI_INDEX(1) | AO_SPI_1_CONFIG_PA5_PA6_PA7) +#define AO_SPI_1_PB3_PB4_PB5	(STM_SPI_INDEX(1) | AO_SPI_1_CONFIG_PB3_PB4_PB5) +#define AO_SPI_1_PE13_PE14_PE15	(STM_SPI_INDEX(1) | AO_SPI_1_CONFIG_PE13_PE14_PE15) + +#define AO_SPI_2_PB13_PB14_PB15	(STM_SPI_INDEX(2) | AO_SPI_2_CONFIG_PB13_PB14_PB15) +#define AO_SPI_2_PD1_PD3_PD4	(STM_SPI_INDEX(2) | AO_SPI_2_CONFIG_PD1_PD3_PD4) + +#define AO_SPI_INDEX(id)	((id) & AO_SPI_INDEX_MASK) +#define AO_SPI_CONFIG(id)	((id) & AO_SPI_CONFIG_MASK) +  void  ao_spi_get(uint8_t spi_index, uint32_t speed); @@ -78,12 +103,25 @@ ao_spi_init(void);  #define ao_gpio_set(port, bit, pin, v) stm_gpio_set(port, bit, v) +#define ao_gpio_get(port, bit, pin) stm_gpio_get(port, bit) +  #define ao_enable_output(port,bit,pin,v) do {			\  		ao_enable_port(port);				\  		ao_gpio_set(port, bit, pin, v);			\  		stm_moder_set(port, bit, STM_MODER_OUTPUT);\  	} while (0) +#define ao_enable_input(port,bit,mode) do {				\ +		ao_enable_port(port);					\ +		stm_moder_set(port, bit, STM_MODER_INPUT);		\ +		if (mode == AO_EXTI_MODE_PULL_UP)			\ +			stm_pupdr_set(port, bit, STM_PUPDR_PULL_UP);	\ +		else if (mode == AO_EXTI_MODE_PULL_DOWN)		\ +			stm_pupdr_set(port, bit, STM_PUPDR_PULL_DOWN);	\ +		else							\ +			stm_pupdr_set(port, bit, STM_PUPDR_NONE);	\ +	} while (0) +  #define ao_enable_cs(port,bit) do {				\  		stm_gpio_set((port), bit, 1);			\  		stm_moder_set((port), bit, STM_MODER_OUTPUT);	\ | 
