From 8d47a1de0a97243aa4e770ad0e332a71890c1e85 Mon Sep 17 00:00:00 2001 From: Vincent Palatin Date: Thu, 9 Apr 2015 09:03:15 -0700 Subject: [PATCH] stm32f0: fix adc_read_all_channels() We need to clear DMA status before starting another transaction. Otherwise, we get incorrect values. Same fix as the one Vic did in CL 240282 for STM32F1xx and STM32F3xx. Signed-off-by: Vincent Palatin BRANCH=none BUG=chrome-os-partner:38902 TEST=On the twinkie USB console (without anything connected), do "tw res rd rd" then "adc". We now always get "CC1_PD = 0 CC2_PD = 0" rather than some fancy values for CC2_PD such as "CC2_PD = 29097". Change-Id: I065b2f8f74ba39f805445bab96b45819322a7da3 Reviewed-on: https://chromium-review.googlesource.com/264981 Reviewed-by: Alec Berg Tested-by: Vincent Palatin Commit-Queue: Vincent Palatin Trybot-Ready: Vincent Palatin --- chip/stm32/adc-stm32f0.c | 1 + 1 file changed, 1 insertion(+) diff --git a/chip/stm32/adc-stm32f0.c b/chip/stm32/adc-stm32f0.c index ba1b29f4d5..6fdabc0789 100644 --- a/chip/stm32/adc-stm32f0.c +++ b/chip/stm32/adc-stm32f0.c @@ -250,6 +250,7 @@ int adc_read_all_channels(int *data) /* Enable DMA */ STM32_ADC_CFGR1 |= 0x1; + dma_clear_isr(STM32_DMAC_ADC); dma_start_rx(&dma_adc_option, ADC_CH_COUNT, raw_data); /* Clear flags */