altos/stmf0: Support PA11/PA12 remapping
authorKeith Packard <keithp@keithp.com>
Sun, 1 Feb 2015 15:44:52 +0000 (16:44 +0100)
committerKeith Packard <keithp@keithp.com>
Sun, 1 Feb 2015 15:44:52 +0000 (16:44 +0100)
Small pin-count versions of the STMF0 can remap PA11/PA12 on the same
pins as PA9/PA10. These are used by USB, so have the USB driver deal
with remapping them.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/stmf0/ao_usb_stm.c

index e0ff541aaa05e4bcb413f70eb1c735ce3685ceb0..3ea7da5e3caa030d5adcca5884b8ec06995a639a 100644 (file)
 #define USB_DEBUG_DATA 0
 #define USB_ECHO       0
 
 #define USB_DEBUG_DATA 0
 #define USB_ECHO       0
 
+#ifndef AO_PA11_PA12_RMP
+#error "must define AO_PA11_PA12_RMP"
+#endif
+
 #ifndef USE_USB_STDIO
 #define USE_USB_STDIO  1
 #endif
 #ifndef USE_USB_STDIO
 #define USE_USB_STDIO  1
 #endif
@@ -1069,6 +1073,12 @@ __code struct ao_cmds ao_usb_cmds[] = {
 void
 ao_usb_init(void)
 {
 void
 ao_usb_init(void)
 {
+       /* Turn on syscfg */
+       stm_rcc.apb2enr |= (1 << STM_RCC_APB2ENR_SYSCFGCOMPEN);
+
+       /* Set PA11/PA12 remapping bit */
+       stm_syscfg.cfgr1 |= (AO_PA11_PA12_RMP << STM_SYSCFG_CFGR1_PA11_PA12_RMP);
+
        ao_usb_enable();
 
        debug ("ao_usb_init\n");
        ao_usb_enable();
 
        debug ("ao_usb_init\n");