summaryrefslogtreecommitdiff
path: root/chip/stm32/hwtimer.c
diff options
context:
space:
mode:
authorVic Yang <victoryang@google.com>2015-02-04 11:28:53 -0800
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-02-10 10:47:07 +0000
commit049463f8ad985f9cb996caa7dbc5438383bd3084 (patch)
tree93ff78695657a998919c6d6e28101cd158489368 /chip/stm32/hwtimer.c
parenta9ae00b10129feca28713a7b88978ff6cfe7c2a6 (diff)
downloadchrome-ec-049463f8ad985f9cb996caa7dbc5438383bd3084.tar.gz
stm32: Add delay after enabling peripheral clock
We need a dummy read after enabling AHB peripheral clock before we can access the peripheral. For APB, we also need a dummy read for STM32F3. BRANCH=All affected BUG=chrome-os-partner:33007 TEST=make buildall Change-Id: I47f4a024dca294f555428c3f2053c1d32835ebe0 Signed-off-by: Vic Yang <victoryang@google.com> Reviewed-on: https://chromium-review.googlesource.com/246181 Reviewed-by: Alec Berg <alecaberg@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> Tested-by: Vic Yang <victoryang@chromium.org> Commit-Queue: Vic Yang <victoryang@chromium.org>
Diffstat (limited to 'chip/stm32/hwtimer.c')
-rw-r--r--chip/stm32/hwtimer.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/chip/stm32/hwtimer.c b/chip/stm32/hwtimer.c
index 14a9bc7f2b..9e8f959553 100644
--- a/chip/stm32/hwtimer.c
+++ b/chip/stm32/hwtimer.c
@@ -320,6 +320,9 @@ int __hw_clock_source_init(uint32_t start_t)
__hw_timer_enable_clock(TIM_CLOCK_MSB, 1);
__hw_timer_enable_clock(TIM_CLOCK_LSB, 1);
+ /* Delay 1 APB clock cycle after the clock is enabled */
+ clock_wait_bus_cycles(BUS_APB, 1);
+
/*
* Timer configuration : Upcounter, counter disabled, update event only
* on overflow.
@@ -405,6 +408,9 @@ void hwtimer_setup_watchdog(void)
/* Enable clock */
__hw_timer_enable_clock(TIM_WATCHDOG, 1);
+ /* Delay 1 APB clock cycle after the clock is enabled */
+ clock_wait_bus_cycles(BUS_APB, 1);
+
/*
* Timer configuration : Down counter, counter disabled, update
* event only on overflow.