aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/stm32/Kconfig4
-rw-r--r--src/stm32/stm32h7.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/src/stm32/Kconfig b/src/stm32/Kconfig
index e78fda5e..0c240bb2 100644
--- a/src/stm32/Kconfig
+++ b/src/stm32/Kconfig
@@ -463,7 +463,7 @@ choice
select CANSERIAL
config STM32_MMENU_CANBUS_PB5_PB6
bool "CAN bus (on PB5/PB6)" if LOW_LEVEL_OPTIONS
- depends on (MACH_STM32F4 && HAVE_STM32_CANBUS)
+ depends on (MACH_STM32F4 && HAVE_STM32_CANBUS) || MACH_STM32H7
select CANSERIAL
config STM32_MMENU_CANBUS_PB12_PB13
bool "CAN bus (on PB12/PB13)" if LOW_LEVEL_OPTIONS
@@ -503,7 +503,7 @@ choice
depends on (MACH_STM32F4 && HAVE_STM32_CANBUS)
config STM32_CMENU_CANBUS_PB5_PB6
bool "CAN bus (on PB5/PB6)"
- depends on (MACH_STM32F4 && HAVE_STM32_CANBUS) || MACH_STM32G0B1
+ depends on (MACH_STM32F4 && HAVE_STM32_CANBUS) || MACH_STM32H7 || MACH_STM32G0B1
config STM32_CMENU_CANBUS_PB12_PB13
bool "CAN bus (on PB12/PB13)"
depends on (MACH_STM32F4 && HAVE_STM32_CANBUS) || HAVE_STM32_FDCANBUS
diff --git a/src/stm32/stm32h7.c b/src/stm32/stm32h7.c
index 74732624..f65eeed7 100644
--- a/src/stm32/stm32h7.c
+++ b/src/stm32/stm32h7.c
@@ -49,6 +49,10 @@ lookup_clock_line(uint32_t periph_base)
uint32_t bit = 1 << ((periph_base - D2_APB2PERIPH_BASE) / 0x400);
return (struct cline){.en=&RCC->APB2ENR, .rst=&RCC->APB2RSTR, .bit=bit};
} else {
+ if (periph_base == FDCAN2_BASE)
+ // FDCAN1 and FDCAN2 share same clock enable
+ return (struct cline){.en=&RCC->APB1HENR, .rst=&RCC->APB1HRSTR,
+ .bit = RCC_APB1HENR_FDCANEN};
uint32_t offset = ((periph_base - D2_APB1PERIPH_BASE) / 0x400);
if (offset < 32) {
uint32_t bit = 1 << offset;