drivers: adc: stm32: disable dma before calibration
For some STM32 series, DMA has to be disabled before starting ADC calibration. Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
This commit is contained in:
parent
b624013335
commit
e91860d8c7
1 changed files with 17 additions and 0 deletions
|
|
@ -547,6 +547,23 @@ static int adc_stm32_calibrate(const struct device *dev)
|
||||||
ADC_TypeDef *adc = config->base;
|
ADC_TypeDef *adc = config->base;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
|
#if defined(CONFIG_ADC_STM32_DMA)
|
||||||
|
#if defined(CONFIG_SOC_SERIES_STM32C0X) || \
|
||||||
|
defined(CONFIG_SOC_SERIES_STM32F0X) || \
|
||||||
|
defined(CONFIG_SOC_SERIES_STM32G0X) || \
|
||||||
|
defined(CONFIG_SOC_SERIES_STM32L0X) || \
|
||||||
|
defined(CONFIG_SOC_SERIES_STM32WBAX) || \
|
||||||
|
defined(CONFIG_SOC_SERIES_STM32WLX)
|
||||||
|
/* Make sure DMA is disabled before starting calibration */
|
||||||
|
LL_ADC_REG_SetDMATransfer(adc, LL_ADC_REG_DMA_TRANSFER_NONE);
|
||||||
|
#elif defined(CONFIG_SOC_SERIES_STM32U5X)
|
||||||
|
if (adc == ADC4) {
|
||||||
|
/* Make sure DMA is disabled before starting calibration */
|
||||||
|
LL_ADC_REG_SetDMATransfer(adc, LL_ADC_REG_DMA_TRANSFER_NONE);
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_SOC_SERIES_* */
|
||||||
|
#endif /* CONFIG_ADC_STM32_DMA */
|
||||||
|
|
||||||
#if !DT_HAS_COMPAT_STATUS_OKAY(st_stm32f1_adc)
|
#if !DT_HAS_COMPAT_STATUS_OKAY(st_stm32f1_adc)
|
||||||
adc_stm32_disable(adc);
|
adc_stm32_disable(adc);
|
||||||
adc_stm32_calibration_start(dev);
|
adc_stm32_calibration_start(dev);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue