From 9174c0241e970db23384fdafab2403bc05adc946 Mon Sep 17 00:00:00 2001 From: adelyser <12093019+adelyser@users.noreply.github.com> Date: Sun, 6 Feb 2022 16:29:53 -0700 Subject: [PATCH] stm32: Fix ADC on stm32h7 (#5239) Don't reset the ADC peripheral if the clock is already enabled. Fixes #5236 Signed-off-by: Aaron DeLyser --- src/stm32/stm32h7_adc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/stm32/stm32h7_adc.c b/src/stm32/stm32h7_adc.c index 792a3335..2733b24f 100644 --- a/src/stm32/stm32h7_adc.c +++ b/src/stm32/stm32h7_adc.c @@ -114,7 +114,9 @@ gpio_adc_setup(uint32_t pin) ADC_TypeDef *adc; if (chan >= 40){ adc = ADC3; - enable_pclock(ADC3_BASE); + if (!is_enabled_pclock(ADC3_BASE)) { + enable_pclock(ADC3_BASE); + } MODIFY_REG(ADC3_COMMON->CCR, ADC_CCR_CKMODE_Msk, 0b11 << ADC_CCR_CKMODE_Pos); } else if (chan >= 20){