aboutsummaryrefslogtreecommitdiffstats
path: root/src/stm32/stm32f4.c
diff options
context:
space:
mode:
authorH. Gregor Molter <gregor.molter@secretlab.de>2023-02-20 19:52:36 -0500
committerKevin O'Connor <kevin@koconnor.net>2023-02-20 19:55:25 -0500
commitd7bd7f1f4ba6cecd19daa566fdc1864561269ae1 (patch)
treed57d02e2dd5fb12359b2ba95080241483f02fbb0 /src/stm32/stm32f4.c
parent848a78d1a548cfe28af20d5d0ab021558368cfae (diff)
downloadkutter-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.c12
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
}