diff options
Diffstat (limited to 'src/stmf0/stm32f0.h')
| -rw-r--r-- | src/stmf0/stm32f0.h | 460 | 
1 files changed, 256 insertions, 204 deletions
diff --git a/src/stmf0/stm32f0.h b/src/stmf0/stm32f0.h index ce8ca456..33eb9c88 100644 --- a/src/stmf0/stm32f0.h +++ b/src/stmf0/stm32f0.h @@ -475,6 +475,24 @@ extern struct stm_rcc stm_rcc;  #define STM_RCC_CR2_HSI14RDY		1  #define STM_RCC_CR2_HSI14ON		0 +#define STM_RCC_CFGR2_PREDIV		0 +#define  STM_RCC_CFGR2_PREDIV_1			0x0 +#define  STM_RCC_CFGR2_PREDIV_2			0x1 +#define  STM_RCC_CFGR2_PREDIV_3			0x2 +#define  STM_RCC_CFGR2_PREDIV_4			0x3 +#define  STM_RCC_CFGR2_PREDIV_5			0x4 +#define  STM_RCC_CFGR2_PREDIV_6			0x5 +#define  STM_RCC_CFGR2_PREDIV_7			0x6 +#define  STM_RCC_CFGR2_PREDIV_8			0x7 +#define  STM_RCC_CFGR2_PREDIV_9			0x8 +#define  STM_RCC_CFGR2_PREDIV_10		0x9 +#define  STM_RCC_CFGR2_PREDIV_11		0xa +#define  STM_RCC_CFGR2_PREDIV_12		0xb +#define  STM_RCC_CFGR2_PREDIV_13		0xc +#define  STM_RCC_CFGR2_PREDIV_14		0xd +#define  STM_RCC_CFGR2_PREDIV_15		0xe +#define  STM_RCC_CFGR2_PREDIV_16		0xf +  #define STM_RCC_CFGR3_USART3SW		18  #define STM_RCC_CFGR3_USART2SW		16  #define STM_RCC_CFGR3_ADCSW		8 @@ -795,7 +813,7 @@ isr(tim7)  #define STM_ISR_TSC_POS			8  #define STM_ISR_DMA_CH1_POS		9  #define STM_ISR_DMA_CH2_3_DMA2_CH1_2_POS	10 -#define STM_ISR_DMA_CH44_5_6_7_DMA2_CH3_4_5_POS	11 +#define STM_ISR_DMA_CH4_5_6_7_DMA2_CH3_4_5_POS	11  #define STM_ISR_ADC_COMP_POS		12  #define STM_ISR_TIM1_BRK_UP_TRG_COM_POS	13  #define STM_ISR_TIM1_CC_POS		14 @@ -819,8 +837,11 @@ isr(tim7)  struct stm_syscfg {  	vuint32_t	cfgr1; +	uint32_t	reserved_04;  	vuint32_t	exticr[4];  	vuint32_t	cfgr2; +	uint8_t		reserved_1c[0x80-0x1c]; +	vuint32_t	itline[31];  };  extern struct stm_syscfg stm_syscfg; @@ -858,7 +879,13 @@ extern struct stm_syscfg stm_syscfg;  #define  STM_SYSCFG_CFGR1_MEM_MODE_SRAM		3  #define  STM_SYSCFG_CFGR1_MEM_MODE_MASK		3 -#if 0 +#define STM_SYSCFG_EXTICR_PA		0 +#define STM_SYSCFG_EXTICR_PB		1 +#define STM_SYSCFG_EXTICR_PC		2 +#define STM_SYSCFG_EXTICR_PD		3 +#define STM_SYSCFG_EXTICR_PE		4 +#define STM_SYSCFG_EXTICR_PF		5 +  static inline void  stm_exticr_set(struct stm_gpio *gpio, int pin) {  	uint8_t	reg = pin >> 2; @@ -879,8 +906,6 @@ stm_exticr_set(struct stm_gpio *gpio, int pin) {  	stm_syscfg.exticr[reg] = (stm_syscfg.exticr[reg] & ~(0xf << shift)) | val << shift;  } -#endif -  struct stm_dma_channel {  	vuint32_t	ccr; @@ -890,7 +915,7 @@ struct stm_dma_channel {  	vuint32_t	reserved;  }; -#define STM_NUM_DMA	6 +#define STM_NUM_DMA	5  struct stm_dma {  	vuint32_t		isr; @@ -900,7 +925,7 @@ struct stm_dma {  extern struct stm_dma stm_dma; -/* DMA channels go from 1 to 6, instead of 0 to 5 (sigh) +/* DMA channels go from 1 to 5, instead of 0 to 4 (sigh)   */  #define STM_DMA_INDEX(channel)		((channel) - 1) @@ -1042,7 +1067,7 @@ extern struct stm_spi stm_spi1, stm_spi2, stm_spi3;  #define STM_SPI_CR1_BIDIOE		14  #define STM_SPI_CR1_CRCEN		13  #define STM_SPI_CR1_CRCNEXT		12 -#define STM_SPI_CR1_DFF			11 +#define STM_SPI_CR1_CRCL		11  #define STM_SPI_CR1_RXONLY		10  #define STM_SPI_CR1_SSM			9  #define STM_SPI_CR1_SSI			8 @@ -1063,17 +1088,43 @@ extern struct stm_spi stm_spi1, stm_spi2, stm_spi3;  #define STM_SPI_CR1_CPOL		1  #define STM_SPI_CR1_CPHA		0 +#define STM_SPI_CR2_LDMA_TX	14 +#define STM_SPI_CR2_LDMA_RX	13 +#define STM_SPI_CR2_FRXTH	12 +#define STM_SPI_CR2_DS		8 +#define  STM_SPI_CR2_DS_4		0x3 +#define  STM_SPI_CR2_DS_5		0x4 +#define  STM_SPI_CR2_DS_6		0x5 +#define  STM_SPI_CR2_DS_7		0x6 +#define  STM_SPI_CR2_DS_8		0x7 +#define  STM_SPI_CR2_DS_9		0x8 +#define  STM_SPI_CR2_DS_10		0x9 +#define  STM_SPI_CR2_DS_11		0xa +#define  STM_SPI_CR2_DS_12		0xb +#define  STM_SPI_CR2_DS_13		0xc +#define  STM_SPI_CR2_DS_14		0xd +#define  STM_SPI_CR2_DS_15		0xe +#define  STM_SPI_CR2_DS_16		0xf  #define STM_SPI_CR2_TXEIE	7  #define STM_SPI_CR2_RXNEIE	6  #define STM_SPI_CR2_ERRIE	5 +#define STM_SPI_CR2_FRF		4 +# define STM_SPI_CR2_FRF_MOTOROLA	0 +# define STM_SPI_CR2_FRF_TI		1 +#define STM_SPI_CR2_NSSP	3  #define STM_SPI_CR2_SSOE	2  #define STM_SPI_CR2_TXDMAEN	1  #define STM_SPI_CR2_RXDMAEN	0 +#define STM_SPI_SR_FTLVL	11 +#define STM_SPI_SR_FRLVL	9 +#define STM_SPI_SR_FRE		8  #define STM_SPI_SR_BSY		7  #define STM_SPI_SR_OVR		6  #define STM_SPI_SR_MODF		5  #define STM_SPI_SR_CRCERR	4 +#define STM_SPI_SR_UDR		3 +#define STM_SPI_SR_CHSIDE	2  #define STM_SPI_SR_TXE		1  #define STM_SPI_SR_RXNE		0 @@ -1293,7 +1344,7 @@ extern struct stm_i2c stm_i2c1, stm_i2c2;  #define STM_I2C_CCR_CCR		0  #define  STM_I2C_CCR_MASK	0x7ff -struct stm_tim234 { +struct stm_tim23 {  	vuint32_t	cr1;  	vuint32_t	cr2;  	vuint32_t	smcr; @@ -1318,204 +1369,205 @@ struct stm_tim234 {  	uint32_t	reserved_44;  	vuint32_t	dcr;  	vuint32_t	dmar; - -	uint32_t	reserved_50;  }; -extern struct stm_tim234 stm_tim2, stm_tim3, stm_tim4; - -#define STM_TIM234_CR1_CKD	8 -#define  STM_TIM234_CR1_CKD_1		0 -#define  STM_TIM234_CR1_CKD_2		1 -#define  STM_TIM234_CR1_CKD_4		2 -#define  STM_TIM234_CR1_CKD_MASK	3 -#define STM_TIM234_CR1_ARPE	7 -#define STM_TIM234_CR1_CMS	5 -#define  STM_TIM234_CR1_CMS_EDGE	0 -#define  STM_TIM234_CR1_CMS_CENTER_1	1 -#define  STM_TIM234_CR1_CMS_CENTER_2	2 -#define  STM_TIM234_CR1_CMS_CENTER_3	3 -#define  STM_TIM234_CR1_CMS_MASK	3 -#define STM_TIM234_CR1_DIR	4 -#define  STM_TIM234_CR1_DIR_UP		0 -#define  STM_TIM234_CR1_DIR_DOWN	1 -#define STM_TIM234_CR1_OPM	3 -#define STM_TIM234_CR1_URS	2 -#define STM_TIM234_CR1_UDIS	1 -#define STM_TIM234_CR1_CEN	0 - -#define STM_TIM234_CR2_TI1S	7 -#define STM_TIM234_CR2_MMS	4 -#define  STM_TIM234_CR2_MMS_RESET		0 -#define  STM_TIM234_CR2_MMS_ENABLE		1 -#define  STM_TIM234_CR2_MMS_UPDATE		2 -#define  STM_TIM234_CR2_MMS_COMPARE_PULSE	3 -#define  STM_TIM234_CR2_MMS_COMPARE_OC1REF	4 -#define  STM_TIM234_CR2_MMS_COMPARE_OC2REF	5 -#define  STM_TIM234_CR2_MMS_COMPARE_OC3REF	6 -#define  STM_TIM234_CR2_MMS_COMPARE_OC4REF	7 -#define  STM_TIM234_CR2_MMS_MASK		7 -#define STM_TIM234_CR2_CCDS	3 - -#define STM_TIM234_SMCR_ETP	15 -#define STM_TIM234_SMCR_ECE	14 -#define STM_TIM234_SMCR_ETPS	12 -#define  STM_TIM234_SMCR_ETPS_OFF		0 -#define  STM_TIM234_SMCR_ETPS_DIV_2	       	1 -#define  STM_TIM234_SMCR_ETPS_DIV_4		2 -#define  STM_TIM234_SMCR_ETPS_DIV_8		3 -#define  STM_TIM234_SMCR_ETPS_MASK		3 -#define STM_TIM234_SMCR_ETF	8 -#define  STM_TIM234_SMCR_ETF_NONE		0 -#define  STM_TIM234_SMCR_ETF_INT_N_2		1 -#define  STM_TIM234_SMCR_ETF_INT_N_4		2 -#define  STM_TIM234_SMCR_ETF_INT_N_8		3 -#define  STM_TIM234_SMCR_ETF_DTS_2_N_6		4 -#define  STM_TIM234_SMCR_ETF_DTS_2_N_8		5 -#define  STM_TIM234_SMCR_ETF_DTS_4_N_6		6 -#define  STM_TIM234_SMCR_ETF_DTS_4_N_8		7 -#define  STM_TIM234_SMCR_ETF_DTS_8_N_6		8 -#define  STM_TIM234_SMCR_ETF_DTS_8_N_8		9 -#define  STM_TIM234_SMCR_ETF_DTS_16_N_5		10 -#define  STM_TIM234_SMCR_ETF_DTS_16_N_6		11 -#define  STM_TIM234_SMCR_ETF_DTS_16_N_8		12 -#define  STM_TIM234_SMCR_ETF_DTS_32_N_5		13 -#define  STM_TIM234_SMCR_ETF_DTS_32_N_6		14 -#define  STM_TIM234_SMCR_ETF_DTS_32_N_8		15 -#define  STM_TIM234_SMCR_ETF_MASK		15 -#define STM_TIM234_SMCR_MSM	7 -#define STM_TIM234_SMCR_TS	4 -#define  STM_TIM234_SMCR_TS_ITR0		0 -#define  STM_TIM234_SMCR_TS_ITR1		1 -#define  STM_TIM234_SMCR_TS_ITR2		2 -#define  STM_TIM234_SMCR_TS_ITR3		3 -#define  STM_TIM234_SMCR_TS_TI1F_ED		4 -#define  STM_TIM234_SMCR_TS_TI1FP1		5 -#define  STM_TIM234_SMCR_TS_TI2FP2		6 -#define  STM_TIM234_SMCR_TS_ETRF		7 -#define  STM_TIM234_SMCR_TS_MASK		7 -#define STM_TIM234_SMCR_OCCS	3 -#define STM_TIM234_SMCR_SMS	0 -#define  STM_TIM234_SMCR_SMS_DISABLE		0 -#define  STM_TIM234_SMCR_SMS_ENCODER_MODE_1	1 -#define  STM_TIM234_SMCR_SMS_ENCODER_MODE_2	2 -#define  STM_TIM234_SMCR_SMS_ENCODER_MODE_3	3 -#define  STM_TIM234_SMCR_SMS_RESET_MODE		4 -#define  STM_TIM234_SMCR_SMS_GATED_MODE		5 -#define  STM_TIM234_SMCR_SMS_TRIGGER_MODE	6 -#define  STM_TIM234_SMCR_SMS_EXTERNAL_CLOCK	7 -#define  STM_TIM234_SMCR_SMS_MASK		7 - -#define STM_TIM234_SR_CC4OF	12 -#define STM_TIM234_SR_CC3OF	11 -#define STM_TIM234_SR_CC2OF	10 -#define STM_TIM234_SR_CC1OF	9 -#define STM_TIM234_SR_TIF	6 -#define STM_TIM234_SR_CC4IF	4 -#define STM_TIM234_SR_CC3IF	3 -#define STM_TIM234_SR_CC2IF	2 -#define STM_TIM234_SR_CC1IF	1 -#define STM_TIM234_SR_UIF	0 - -#define STM_TIM234_EGR_TG	6 -#define STM_TIM234_EGR_CC4G	4 -#define STM_TIM234_EGR_CC3G	3 -#define STM_TIM234_EGR_CC2G	2 -#define STM_TIM234_EGR_CC1G	1 -#define STM_TIM234_EGR_UG	0 - -#define STM_TIM234_CCMR1_OC2CE	15 -#define STM_TIM234_CCMR1_OC2M	12 -#define  STM_TIM234_CCMR1_OC2M_FROZEN			0 -#define  STM_TIM234_CCMR1_OC2M_SET_HIGH_ON_MATCH	1 -#define  STM_TIM234_CCMR1_OC2M_SET_LOW_ON_MATCH		2 -#define  STM_TIM234_CCMR1_OC2M_TOGGLE			3 -#define  STM_TIM234_CCMR1_OC2M_FORCE_LOW		4 -#define  STM_TIM234_CCMR1_OC2M_FORCE_HIGH		5 -#define  STM_TIM234_CCMR1_OC2M_PWM_MODE_1		6 -#define  STM_TIM234_CCMR1_OC2M_PWM_MODE_2		7 -#define  STM_TIM234_CCMR1_OC2M_MASK			7 -#define STM_TIM234_CCMR1_OC2PE	11 -#define STM_TIM234_CCMR1_OC2FE	10 -#define STM_TIM234_CCMR1_CC2S	8 -#define  STM_TIM234_CCMR1_CC2S_OUTPUT			0 -#define  STM_TIM234_CCMR1_CC2S_INPUT_TI2		1 -#define  STM_TIM234_CCMR1_CC2S_INPUT_TI1		2 -#define  STM_TIM234_CCMR1_CC2S_INPUT_TRC		3 -#define  STM_TIM234_CCMR1_CC2S_MASK			3 - -#define STM_TIM234_CCMR1_OC1CE	7 -#define STM_TIM234_CCMR1_OC1M	4 -#define  STM_TIM234_CCMR1_OC1M_FROZEN			0 -#define  STM_TIM234_CCMR1_OC1M_SET_HIGH_ON_MATCH	1 -#define  STM_TIM234_CCMR1_OC1M_SET_LOW_ON_MATCH		2 -#define  STM_TIM234_CCMR1_OC1M_TOGGLE			3 -#define  STM_TIM234_CCMR1_OC1M_FORCE_LOW		4 -#define  STM_TIM234_CCMR1_OC1M_FORCE_HIGH		5 -#define  STM_TIM234_CCMR1_OC1M_PWM_MODE_1		6 -#define  STM_TIM234_CCMR1_OC1M_PWM_MODE_2		7 -#define  STM_TIM234_CCMR1_OC1M_MASK			7 -#define STM_TIM234_CCMR1_OC1PE	11 -#define STM_TIM234_CCMR1_OC1FE	2 -#define STM_TIM234_CCMR1_CC1S	0 -#define  STM_TIM234_CCMR1_CC1S_OUTPUT			0 -#define  STM_TIM234_CCMR1_CC1S_INPUT_TI1		1 -#define  STM_TIM234_CCMR1_CC1S_INPUT_TI2		2 -#define  STM_TIM234_CCMR1_CC1S_INPUT_TRC		3 -#define  STM_TIM234_CCMR1_CC1S_MASK			3 - -#define STM_TIM234_CCMR2_OC4CE	15 -#define STM_TIM234_CCMR2_OC4M	12 -#define  STM_TIM234_CCMR2_OC4M_FROZEN			0 -#define  STM_TIM234_CCMR2_OC4M_SET_HIGH_ON_MATCH	1 -#define  STM_TIM234_CCMR2_OC4M_SET_LOW_ON_MATCH		2 -#define  STM_TIM234_CCMR2_OC4M_TOGGLE			3 -#define  STM_TIM234_CCMR2_OC4M_FORCE_LOW		4 -#define  STM_TIM234_CCMR2_OC4M_FORCE_HIGH		5 -#define  STM_TIM234_CCMR2_OC4M_PWM_MODE_1		6 -#define  STM_TIM234_CCMR2_OC4M_PWM_MODE_2		7 -#define  STM_TIM234_CCMR2_OC4M_MASK			7 -#define STM_TIM234_CCMR2_OC4PE	11 -#define STM_TIM234_CCMR2_OC4FE	10 -#define STM_TIM234_CCMR2_CC4S	8 -#define  STM_TIM234_CCMR2_CC4S_OUTPUT			0 -#define  STM_TIM234_CCMR2_CC4S_INPUT_TI4		1 -#define  STM_TIM234_CCMR2_CC4S_INPUT_TI3		2 -#define  STM_TIM234_CCMR2_CC4S_INPUT_TRC		3 -#define  STM_TIM234_CCMR2_CC4S_MASK			3 - -#define STM_TIM234_CCMR2_OC3CE	7 -#define STM_TIM234_CCMR2_OC3M	4 -#define  STM_TIM234_CCMR2_OC3M_FROZEN			0 -#define  STM_TIM234_CCMR2_OC3M_SET_HIGH_ON_MATCH	1 -#define  STM_TIM234_CCMR2_OC3M_SET_LOW_ON_MATCH		2 -#define  STM_TIM234_CCMR2_OC3M_TOGGLE			3 -#define  STM_TIM234_CCMR2_OC3M_FORCE_LOW		4 -#define  STM_TIM234_CCMR2_OC3M_FORCE_HIGH		5 -#define  STM_TIM234_CCMR2_OC3M_PWM_MODE_1		6 -#define  STM_TIM234_CCMR2_OC3M_PWM_MODE_2		7 -#define  STM_TIM234_CCMR2_OC3M_MASK			7 -#define STM_TIM234_CCMR2_OC3PE	11 -#define STM_TIM234_CCMR2_OC3FE	2 -#define STM_TIM234_CCMR2_CC3S	0 -#define  STM_TIM234_CCMR2_CC3S_OUTPUT			0 -#define  STM_TIM234_CCMR2_CC3S_INPUT_TI3		1 -#define  STM_TIM234_CCMR2_CC3S_INPUT_TI4		2 -#define  STM_TIM234_CCMR2_CC3S_INPUT_TRC		3 -#define  STM_TIM234_CCMR2_CC3S_MASK			3 - -#define STM_TIM234_CCER_CC4NP	15 -#define STM_TIM234_CCER_CC4P	13 -#define STM_TIM234_CCER_CC4E	12 -#define STM_TIM234_CCER_CC3NP	11 -#define STM_TIM234_CCER_CC3P	9 -#define STM_TIM234_CCER_CC3E	8 -#define STM_TIM234_CCER_CC2NP	7 -#define STM_TIM234_CCER_CC2P	5 -#define STM_TIM234_CCER_CC2E	4 -#define STM_TIM234_CCER_CC1NP	3 -#define STM_TIM234_CCER_CC1P	1 -#define STM_TIM234_CCER_CC1E	0 +extern struct stm_tim23 stm_tim2, stm_tim3; + +#define stm_tim3	(*(struct stm_tim23 *) 0x40000400) +#define stm_tim2	(*(struct stm_tim23 *) 0x40000000) + +#define STM_TIM23_CR1_CKD	8 +#define  STM_TIM23_CR1_CKD_1		0 +#define  STM_TIM23_CR1_CKD_2		1 +#define  STM_TIM23_CR1_CKD_4		2 +#define  STM_TIM23_CR1_CKD_MASK	3 +#define STM_TIM23_CR1_ARPE	7 +#define STM_TIM23_CR1_CMS	5 +#define  STM_TIM23_CR1_CMS_EDGE		0 +#define  STM_TIM23_CR1_CMS_CENTER_1	1 +#define  STM_TIM23_CR1_CMS_CENTER_2	2 +#define  STM_TIM23_CR1_CMS_CENTER_3	3 +#define  STM_TIM23_CR1_CMS_MASK		3 +#define STM_TIM23_CR1_DIR	4 +#define  STM_TIM23_CR1_DIR_UP		0 +#define  STM_TIM23_CR1_DIR_DOWN		1 +#define STM_TIM23_CR1_OPM	3 +#define STM_TIM23_CR1_URS	2 +#define STM_TIM23_CR1_UDIS	1 +#define STM_TIM23_CR1_CEN	0 + +#define STM_TIM23_CR2_TI1S	7 +#define STM_TIM23_CR2_MMS	4 +#define  STM_TIM23_CR2_MMS_RESET		0 +#define  STM_TIM23_CR2_MMS_ENABLE		1 +#define  STM_TIM23_CR2_MMS_UPDATE		2 +#define  STM_TIM23_CR2_MMS_COMPARE_PULSE	3 +#define  STM_TIM23_CR2_MMS_COMPARE_OC1REF	4 +#define  STM_TIM23_CR2_MMS_COMPARE_OC2REF	5 +#define  STM_TIM23_CR2_MMS_COMPARE_OC3REF	6 +#define  STM_TIM23_CR2_MMS_COMPARE_OC4REF	7 +#define  STM_TIM23_CR2_MMS_MASK			7 +#define STM_TIM23_CR2_CCDS	3 + +#define STM_TIM23_SMCR_ETP	15 +#define STM_TIM23_SMCR_ECE	14 +#define STM_TIM23_SMCR_ETPS	12 +#define  STM_TIM23_SMCR_ETPS_OFF		0 +#define  STM_TIM23_SMCR_ETPS_DIV_2	       	1 +#define  STM_TIM23_SMCR_ETPS_DIV_4		2 +#define  STM_TIM23_SMCR_ETPS_DIV_8		3 +#define  STM_TIM23_SMCR_ETPS_MASK		3 +#define STM_TIM23_SMCR_ETF	8 +#define  STM_TIM23_SMCR_ETF_NONE		0 +#define  STM_TIM23_SMCR_ETF_INT_N_2		1 +#define  STM_TIM23_SMCR_ETF_INT_N_4		2 +#define  STM_TIM23_SMCR_ETF_INT_N_8		3 +#define  STM_TIM23_SMCR_ETF_DTS_2_N_6		4 +#define  STM_TIM23_SMCR_ETF_DTS_2_N_8		5 +#define  STM_TIM23_SMCR_ETF_DTS_4_N_6		6 +#define  STM_TIM23_SMCR_ETF_DTS_4_N_8		7 +#define  STM_TIM23_SMCR_ETF_DTS_8_N_6		8 +#define  STM_TIM23_SMCR_ETF_DTS_8_N_8		9 +#define  STM_TIM23_SMCR_ETF_DTS_16_N_5		10 +#define  STM_TIM23_SMCR_ETF_DTS_16_N_6		11 +#define  STM_TIM23_SMCR_ETF_DTS_16_N_8		12 +#define  STM_TIM23_SMCR_ETF_DTS_32_N_5		13 +#define  STM_TIM23_SMCR_ETF_DTS_32_N_6		14 +#define  STM_TIM23_SMCR_ETF_DTS_32_N_8		15 +#define  STM_TIM23_SMCR_ETF_MASK		15 +#define STM_TIM23_SMCR_MSM	7 +#define STM_TIM23_SMCR_TS	4 +#define  STM_TIM23_SMCR_TS_ITR0			0 +#define  STM_TIM23_SMCR_TS_ITR1			1 +#define  STM_TIM23_SMCR_TS_ITR2			2 +#define  STM_TIM23_SMCR_TS_ITR3			3 +#define  STM_TIM23_SMCR_TS_TI1F_ED		4 +#define  STM_TIM23_SMCR_TS_TI1FP1		5 +#define  STM_TIM23_SMCR_TS_TI2FP2		6 +#define  STM_TIM23_SMCR_TS_ETRF			7 +#define  STM_TIM23_SMCR_TS_MASK			7 +#define STM_TIM23_SMCR_OCCS	3 +#define STM_TIM23_SMCR_SMS	0 +#define  STM_TIM23_SMCR_SMS_DISABLE		0 +#define  STM_TIM23_SMCR_SMS_ENCODER_MODE_1	1 +#define  STM_TIM23_SMCR_SMS_ENCODER_MODE_2	2 +#define  STM_TIM23_SMCR_SMS_ENCODER_MODE_3	3 +#define  STM_TIM23_SMCR_SMS_RESET_MODE		4 +#define  STM_TIM23_SMCR_SMS_GATED_MODE		5 +#define  STM_TIM23_SMCR_SMS_TRIGGER_MODE	6 +#define  STM_TIM23_SMCR_SMS_EXTERNAL_CLOCK	7 +#define  STM_TIM23_SMCR_SMS_MASK		7 + +#define STM_TIM23_SR_CC4OF	12 +#define STM_TIM23_SR_CC3OF	11 +#define STM_TIM23_SR_CC2OF	10 +#define STM_TIM23_SR_CC1OF	9 +#define STM_TIM23_SR_TIF	6 +#define STM_TIM23_SR_CC4IF	4 +#define STM_TIM23_SR_CC3IF	3 +#define STM_TIM23_SR_CC2IF	2 +#define STM_TIM23_SR_CC1IF	1 +#define STM_TIM23_SR_UIF	0 + +#define STM_TIM23_EGR_TG	6 +#define STM_TIM23_EGR_CC4G	4 +#define STM_TIM23_EGR_CC3G	3 +#define STM_TIM23_EGR_CC2G	2 +#define STM_TIM23_EGR_CC1G	1 +#define STM_TIM23_EGR_UG	0 + +#define STM_TIM23_CCMR1_OC2CE	15 +#define STM_TIM23_CCMR1_OC2M	12 +#define  STM_TIM23_CCMR1_OC2M_FROZEN			0 +#define  STM_TIM23_CCMR1_OC2M_SET_HIGH_ON_MATCH		1 +#define  STM_TIM23_CCMR1_OC2M_SET_LOW_ON_MATCH		2 +#define  STM_TIM23_CCMR1_OC2M_TOGGLE			3 +#define  STM_TIM23_CCMR1_OC2M_FORCE_LOW			4 +#define  STM_TIM23_CCMR1_OC2M_FORCE_HIGH		5 +#define  STM_TIM23_CCMR1_OC2M_PWM_MODE_1		6 +#define  STM_TIM23_CCMR1_OC2M_PWM_MODE_2		7 +#define  STM_TIM23_CCMR1_OC2M_MASK			7 +#define STM_TIM23_CCMR1_OC2PE	11 +#define STM_TIM23_CCMR1_OC2FE	10 +#define STM_TIM23_CCMR1_CC2S	8 +#define  STM_TIM23_CCMR1_CC2S_OUTPUT			0 +#define  STM_TIM23_CCMR1_CC2S_INPUT_TI2			1 +#define  STM_TIM23_CCMR1_CC2S_INPUT_TI1			2 +#define  STM_TIM23_CCMR1_CC2S_INPUT_TRC			3 +#define  STM_TIM23_CCMR1_CC2S_MASK			3 + +#define STM_TIM23_CCMR1_OC1CE	7 +#define STM_TIM23_CCMR1_OC1M	4 +#define  STM_TIM23_CCMR1_OC1M_FROZEN			0 +#define  STM_TIM23_CCMR1_OC1M_SET_HIGH_ON_MATCH		1 +#define  STM_TIM23_CCMR1_OC1M_SET_LOW_ON_MATCH		2 +#define  STM_TIM23_CCMR1_OC1M_TOGGLE			3 +#define  STM_TIM23_CCMR1_OC1M_FORCE_LOW			4 +#define  STM_TIM23_CCMR1_OC1M_FORCE_HIGH		5 +#define  STM_TIM23_CCMR1_OC1M_PWM_MODE_1		6 +#define  STM_TIM23_CCMR1_OC1M_PWM_MODE_2		7 +#define  STM_TIM23_CCMR1_OC1M_MASK			7 +#define STM_TIM23_CCMR1_OC1PE	11 +#define STM_TIM23_CCMR1_OC1FE	2 +#define STM_TIM23_CCMR1_CC1S	0 +#define  STM_TIM23_CCMR1_CC1S_OUTPUT			0 +#define  STM_TIM23_CCMR1_CC1S_INPUT_TI1			1 +#define  STM_TIM23_CCMR1_CC1S_INPUT_TI2			2 +#define  STM_TIM23_CCMR1_CC1S_INPUT_TRC			3 +#define  STM_TIM23_CCMR1_CC1S_MASK			3 + +#define STM_TIM23_CCMR2_OC4CE	15 +#define STM_TIM23_CCMR2_OC4M	12 +#define  STM_TIM23_CCMR2_OC4M_FROZEN			0 +#define  STM_TIM23_CCMR2_OC4M_SET_HIGH_ON_MATCH	1 +#define  STM_TIM23_CCMR2_OC4M_SET_LOW_ON_MATCH		2 +#define  STM_TIM23_CCMR2_OC4M_TOGGLE			3 +#define  STM_TIM23_CCMR2_OC4M_FORCE_LOW			4 +#define  STM_TIM23_CCMR2_OC4M_FORCE_HIGH		5 +#define  STM_TIM23_CCMR2_OC4M_PWM_MODE_1		6 +#define  STM_TIM23_CCMR2_OC4M_PWM_MODE_2		7 +#define  STM_TIM23_CCMR2_OC4M_MASK			7 +#define STM_TIM23_CCMR2_OC4PE	11 +#define STM_TIM23_CCMR2_OC4FE	10 +#define STM_TIM23_CCMR2_CC4S	8 +#define  STM_TIM23_CCMR2_CC4S_OUTPUT			0 +#define  STM_TIM23_CCMR2_CC4S_INPUT_TI4			1 +#define  STM_TIM23_CCMR2_CC4S_INPUT_TI3			2 +#define  STM_TIM23_CCMR2_CC4S_INPUT_TRC			3 +#define  STM_TIM23_CCMR2_CC4S_MASK			3 + +#define STM_TIM23_CCMR2_OC3CE	7 +#define STM_TIM23_CCMR2_OC3M	4 +#define  STM_TIM23_CCMR2_OC3M_FROZEN			0 +#define  STM_TIM23_CCMR2_OC3M_SET_HIGH_ON_MATCH		1 +#define  STM_TIM23_CCMR2_OC3M_SET_LOW_ON_MATCH		2 +#define  STM_TIM23_CCMR2_OC3M_TOGGLE			3 +#define  STM_TIM23_CCMR2_OC3M_FORCE_LOW			4 +#define  STM_TIM23_CCMR2_OC3M_FORCE_HIGH		5 +#define  STM_TIM23_CCMR2_OC3M_PWM_MODE_1		6 +#define  STM_TIM23_CCMR2_OC3M_PWM_MODE_2		7 +#define  STM_TIM23_CCMR2_OC3M_MASK			7 +#define STM_TIM23_CCMR2_OC3PE	11 +#define STM_TIM23_CCMR2_OC3FE	2 +#define STM_TIM23_CCMR2_CC3S	0 +#define  STM_TIM23_CCMR2_CC3S_OUTPUT			0 +#define  STM_TIM23_CCMR2_CC3S_INPUT_TI3			1 +#define  STM_TIM23_CCMR2_CC3S_INPUT_TI4			2 +#define  STM_TIM23_CCMR2_CC3S_INPUT_TRC			3 +#define  STM_TIM23_CCMR2_CC3S_MASK			3 + +#define STM_TIM23_CCER_CC4NP	15 +#define STM_TIM23_CCER_CC4P	13 +#define STM_TIM23_CCER_CC4E	12 +#define STM_TIM23_CCER_CC3NP	11 +#define STM_TIM23_CCER_CC3P	9 +#define STM_TIM23_CCER_CC3E	8 +#define STM_TIM23_CCER_CC2NP	7 +#define STM_TIM23_CCER_CC2P	5 +#define STM_TIM23_CCER_CC2E	4 +#define STM_TIM23_CCER_CC1NP	3 +#define STM_TIM23_CCER_CC1P	1 +#define STM_TIM23_CCER_CC1E	0  struct stm_usb {  	struct {  | 
