diff --git a/src/stm32/Kconfig b/src/stm32/Kconfig index cbaa7f32..378fb00b 100644 --- a/src/stm32/Kconfig +++ b/src/stm32/Kconfig @@ -124,6 +124,10 @@ config USBSERIAL bool "Use USB for communication (instead of serial)" depends on HAVE_STM32_USBFS || HAVE_STM32_USBOTG default y +config STM32F042_USB_PIN_SWAP + bool "Use PA9/PA10 for USB" if MACH_STM32F042 + depends on USBSERIAL && MACH_STM32F042 + default n config SERIAL depends on !USBSERIAL bool diff --git a/src/stm32/stm32f0.c b/src/stm32/stm32f0.c index d3c1afb4..2c6958a9 100644 --- a/src/stm32/stm32f0.c +++ b/src/stm32/stm32f0.c @@ -159,4 +159,12 @@ clock_setup(void) hsi48_setup(); else pll_setup(); + + // Support alternate USB pins on stm32f042 +#ifdef SYSCFG_CFGR1_PA11_PA12_RMP + if (CONFIG_STM32F042_USB_PIN_SWAP) { + enable_pclock(SYSCFG_BASE); + SYSCFG->CFGR1 |= SYSCFG_CFGR1_PA11_PA12_RMP; + } +#endif }