You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by an...@apache.org on 2019/09/06 14:00:17 UTC
[mynewt-core] 04/06: hw/mcu/dialog: Switch to RCX from HAL
This is an automated email from the ASF dual-hosted git repository.
andk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
commit 93e86d837cd733f551683c9c970eaafdc1009c14
Author: Andrzej Kaczmarek <an...@codecoup.pl>
AuthorDate: Fri Sep 6 13:25:10 2019 +0200
hw/mcu/dialog: Switch to RCX from HAL
We should better switch to RCX from HAL clock setup routine. XTAL32K is
handled separately from sysinit since it requires os_cputime to be
running in order to wait for crystal to settle, we don't need this for
RCX.
---
hw/mcu/dialog/da1469x/src/da1469x_lpclk.c | 4 ----
hw/mcu/dialog/da1469x/src/hal_system.c | 20 +++++++++++++-------
2 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/hw/mcu/dialog/da1469x/src/da1469x_lpclk.c b/hw/mcu/dialog/da1469x/src/da1469x_lpclk.c
index 17dfad6..baa1f89 100644
--- a/hw/mcu/dialog/da1469x/src/da1469x_lpclk.c
+++ b/hw/mcu/dialog/da1469x/src/da1469x_lpclk.c
@@ -66,8 +66,4 @@ da1469x_lpclk_init(void)
os_cputime_timer_relative(&lpclk_settle_tmr,
MYNEWT_VAL(MCU_CLOCK_XTAL32K_SETTLE_TIME_MS) * 1000);
#endif
-#if MYNEWT_VAL_CHOICE(MCU_LPCLK_SOURCE, RCX)
- da1469x_clock_lp_rcx_enable();
- da1469x_clock_lp_rcx_switch();
-#endif
}
diff --git a/hw/mcu/dialog/da1469x/src/hal_system.c b/hw/mcu/dialog/da1469x/src/hal_system.c
index 718993d..537e40c 100644
--- a/hw/mcu/dialog/da1469x/src/hal_system.c
+++ b/hw/mcu/dialog/da1469x/src/hal_system.c
@@ -87,13 +87,6 @@ hal_system_clock_start(void)
/* Reset clock dividers to 0 */
CRG_TOP->CLK_AMBA_REG &= ~(CRG_TOP_CLK_AMBA_REG_HCLK_DIV_Msk | CRG_TOP_CLK_AMBA_REG_PCLK_DIV_Msk);
- /*
- * We cannot switch lp_clk to XTAL32K here since it needs some time to
- * settle, so we just disable RCX (we don't need it) and then we'll handle
- * switch to XTAL32K from sysinit since we need os_cputime for this.
- */
- da1469x_clock_lp_rcx_disable();
-
/* Make sure PD_TIM is up since this is where XTAL32M state machine runs */
da1469x_pd_acquire(MCU_PD_DOMAIN_TIM);
@@ -102,6 +95,19 @@ hal_system_clock_start(void)
da1469x_clock_sys_xtal32m_enable();
da1469x_clock_sys_xtal32m_switch_safe();
da1469x_clock_sys_rc32m_disable();
+
+#if MYNEWT_VAL_CHOICE(MCU_LPCLK_SOURCE, RCX)
+ /* Switch to RCX */
+ da1469x_clock_lp_rcx_enable();
+ da1469x_clock_lp_rcx_switch();
+#else
+ /*
+ * We cannot switch lp_clk to XTAL32K here since it needs some time to
+ * settle, so we just disable RCX (we don't need it) and then we'll handle
+ * switch to XTAL32K from sysinit since we need os_cputime for this.
+ */
+ da1469x_clock_lp_rcx_disable();
+#endif
}
enum hal_reset_reason