diff options
author | H. Gregor Molter <gregor.molter@secretlab.de> | 2023-02-20 19:52:36 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2023-02-20 19:55:25 -0500 |
commit | d7bd7f1f4ba6cecd19daa566fdc1864561269ae1 (patch) | |
tree | d57d02e2dd5fb12359b2ba95080241483f02fbb0 /src/stm32/stm32f4.c | |
parent | 848a78d1a548cfe28af20d5d0ab021558368cfae (diff) | |
download | kutter-d7bd7f1f4ba6cecd19daa566fdc1864561269ae1.tar.gz kutter-d7bd7f1f4ba6cecd19daa566fdc1864561269ae1.tar.xz kutter-d7bd7f1f4ba6cecd19daa566fdc1864561269ae1.zip |
stm32: Add sdio support
Adds sdio support for the stm32f4 to allow for SD card flash updates
without power cycling some boards, e.g. BTT Octopus Pro.
Signed-off-by: H. Gregor Molter <gregor.molter@secretlab.de>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/stm32/stm32f4.c')
-rw-r--r-- | src/stm32/stm32f4.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/stm32/stm32f4.c b/src/stm32/stm32f4.c index a2060d76..fd3eb0ba 100644 --- a/src/stm32/stm32f4.c +++ b/src/stm32/stm32f4.c @@ -138,8 +138,8 @@ enable_clock_stm32f446(void) while (!(PWR->CSR & PWR_CSR_ODSWRDY)) ; - // Enable 48Mhz USB clock - if (CONFIG_USB) { + // Enable 48Mhz USB clock for USB or for SDIO + if (CONFIG_USB || CONFIG_HAVE_GPIO_SDIO) { uint32_t ref = (CONFIG_STM32_CLOCK_REF_INTERNAL ? 16000000 : CONFIG_CLOCK_REF_FREQ); uint32_t plls_base = 2000000, plls_freq = FREQ_USB * 4; @@ -153,6 +153,14 @@ enable_clock_stm32f446(void) ; RCC->DCKCFGR2 = RCC_DCKCFGR2_CK48MSEL; + } else { + // Reset value just in case the booloader modified the default value + RCC->DCKCFGR2 = 0; + } + + // Set SDIO clk to PLL48CLK + if (CONFIG_HAVE_GPIO_SDIO) { + MODIFY_REG(RCC->DCKCFGR2, RCC_DCKCFGR2_SDIOSEL, 0); } #endif } |