altos/stmf0: Use double buffering for USB tx data
[fw/altos] / src / stmf0 / stm32f0.h
index 182cd9639df0af69ede15503542f88be7dec15bb..1dbe6a121c983f5cd20c491efce002bda7c55f53 100644 (file)
@@ -282,8 +282,8 @@ struct stm_rcc {
 
 extern struct stm_rcc stm_rcc;
 
-/* Nominal high speed internal oscillator frequency is 16MHz */
-#define STM_HSI_FREQ           16000000
+/* Nominal high speed internal oscillator frequency is 8MHz */
+#define STM_HSI_FREQ           8000000
 
 #define STM_RCC_CR_PLLRDY      (25)
 #define STM_RCC_CR_PLLON       (24)
@@ -1812,15 +1812,15 @@ extern struct stm_tim23 stm_tim2, stm_tim3;
 
 #define STM_TIM23_CCMR2_OC4CE  15
 #define STM_TIM23_CCMR2_OC4M   12
-#define  STM_TIM23_CCMR2_OCM_FROZEN                    0
-#define  STM_TIM23_CCMR2_OCM_SET_HIGH_ON_MATCH 1
-#define  STM_TIM23_CCMR2_OCM_SET_LOW_ON_MATCH          2
-#define  STM_TIM23_CCMR2_OCM_TOGGLE                    3
-#define  STM_TIM23_CCMR2_OCM_FORCE_LOW                 4
-#define  STM_TIM23_CCMR2_OCM_FORCE_HIGH                        5
-#define  STM_TIM23_CCMR2_OCM_PWM_MODE_1                        6
-#define  STM_TIM23_CCMR2_OCM_PWM_MODE_2                        7
-#define  STM_TIM23_CCMR2_OCM_MASK                      7
+#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
@@ -1832,15 +1832,15 @@ extern struct stm_tim23 stm_tim2, stm_tim3;
 
 #define STM_TIM23_CCMR2_OC3CE  7
 #define STM_TIM23_CCMR2_OC3M   4
-#define  STM_TIM23_CCMR2_OCM_FROZEN                    0
-#define  STM_TIM23_CCMR2_OCM_SET_HIGH_ON_MATCH         1
-#define  STM_TIM23_CCMR2_OCM_SET_LOW_ON_MATCH          2
-#define  STM_TIM23_CCMR2_OCM_TOGGLE                    3
-#define  STM_TIM23_CCMR2_OCM_FORCE_LOW                 4
-#define  STM_TIM23_CCMR2_OCM_FORCE_HIGH                        5
+#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_OCM_PWM_MODE_2                        7
-#define  STM_TIM23_CCMR2_OCM_MASK                      7
+#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
@@ -1906,7 +1906,9 @@ extern struct stm_usb stm_usb;
 #define  STM_USB_EPR_EP_TYPE_INTERRUPT                 3
 #define  STM_USB_EPR_EP_TYPE_MASK                      3
 #define STM_USB_EPR_EP_KIND    8
+#define  STM_USB_EPR_EP_KIND_SNGL_BUF                  0       /* Bulk */
 #define  STM_USB_EPR_EP_KIND_DBL_BUF                   1       /* Bulk */
+#define  STM_USB_EPR_EP_KIND_NO_STATUS_OUT             0       /* Control */
 #define  STM_USB_EPR_EP_KIND_STATUS_OUT                        1       /* Control */
 #define STM_USB_EPR_CTR_TX     7
 #define  STM_USB_CTR_TX_WRITE_INVARIANT                        1
@@ -1996,7 +1998,7 @@ union stm_usb_bdt {
 
 #define STM_USB_BDT_SIZE       8
 
-extern uint8_t stm_usb_sram[];
+extern uint8_t stm_usb_sram[] __attribute__((aligned(4)));
 
 struct stm_exti {
        vuint32_t       imr;