From b02567ddf87fa6fd86069d0f2be22d5fa9bfc019 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Fri, 3 May 2013 07:04:22 +0000 Subject: [PATCH] git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@5659 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.c | 22 +++++++++++++++++++-- os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.h | 4 ++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.c b/os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.c index e429688de..4cdfab8f7 100644 --- a/os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.c +++ b/os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.c @@ -285,10 +285,10 @@ static void icu_lld_serve_interrupt(ICUDriver *icup) { * @param[in] config the architecture-dependent ICU driver configuration */ static void spc5_icu_smod_init(ICUDriver *icup) { - uint32_t psc = (SPC5_ETIMER0_CLK / icup->config->frequency); + uint32_t psc = (icup->clock / icup->config->frequency); chDbgAssert((psc <= 0xFFFF) && - ((psc * icup->config->frequency) == SPC5_ETIMER0_CLK) && + ((psc * icup->config->frequency) == icup->clock) && ((psc == 1) || (psc == 2) || (psc == 4) || (psc == 8) || (psc == 16) || (psc == 32) || (psc == 64) || (psc == 128)), @@ -806,6 +806,7 @@ void icu_lld_init(void) { icuObjectInit(&ICUD1); ICUD1.etimerp = &SPC5_ETIMER_0; ICUD1.smod_number = 0U; + ICUD1.clock = SPC5_ETIMER0_CLK; #endif #if SPC5_ICU_USE_SMOD1 @@ -813,6 +814,7 @@ void icu_lld_init(void) { icuObjectInit(&ICUD2); ICUD2.etimerp = &SPC5_ETIMER_0; ICUD2.smod_number = 1U; + ICUD2.clock = SPC5_ETIMER0_CLK; #endif #if SPC5_ICU_USE_SMOD2 @@ -820,6 +822,7 @@ void icu_lld_init(void) { icuObjectInit(&ICUD3); ICUD3.etimerp = &SPC5_ETIMER_0; ICUD3.smod_number = 2U; + ICUD3.clock = SPC5_ETIMER0_CLK; #endif #if SPC5_ICU_USE_SMOD3 @@ -827,6 +830,7 @@ void icu_lld_init(void) { icuObjectInit(&ICUD4); ICUD4.etimerp = &SPC5_ETIMER_0; ICUD4.smod_number = 3U; + ICUD4.clock = SPC5_ETIMER0_CLK; #endif #if SPC5_ICU_USE_SMOD4 @@ -834,6 +838,7 @@ void icu_lld_init(void) { icuObjectInit(&ICUD5); ICUD5.etimerp = &SPC5_ETIMER_0; ICUD5.smod_number = 4U; + ICUD5.clock = SPC5_ETIMER0_CLK; #endif #if SPC5_ICU_USE_SMOD5 @@ -841,6 +846,7 @@ void icu_lld_init(void) { icuObjectInit(&ICUD6); ICUD6.etimerp = &SPC5_ETIMER_0; ICUD6.smod_number = 5U; + ICUD6.clock = SPC5_ETIMER0_CLK; #endif #if SPC5_ICU_USE_SMOD6 @@ -848,6 +854,7 @@ void icu_lld_init(void) { icuObjectInit(&ICUD7); ICUD7.etimerp = &SPC5_ETIMER_1; ICUD7.smod_number = 0U; + ICUD7.clock = SPC5_ETIMER1_CLK; #endif #if SPC5_ICU_USE_SMOD7 @@ -855,6 +862,7 @@ void icu_lld_init(void) { icuObjectInit(&ICUD8); ICUD8.etimerp = &SPC5_ETIMER_1; ICUD8.smod_number = 1U; + ICUD8.clock = SPC5_ETIMER1_CLK; #endif #if SPC5_ICU_USE_SMOD8 @@ -862,6 +870,7 @@ void icu_lld_init(void) { icuObjectInit(&ICUD9); ICUD9.etimerp = &SPC5_ETIMER_1; ICUD9.smod_number = 2U; + ICUD9.clock = SPC5_ETIMER1_CLK; #endif #if SPC5_ICU_USE_SMOD9 @@ -869,6 +878,7 @@ void icu_lld_init(void) { icuObjectInit(&ICUD10); ICUD10.etimerp = &SPC5_ETIMER_1; ICUD10.smod_number = 3U; + ICUD10.clock = SPC5_ETIMER1_CLK; #endif #if SPC5_ICU_USE_SMOD10 @@ -876,6 +886,7 @@ void icu_lld_init(void) { icuObjectInit(&ICUD11); ICUD11.etimerp = &SPC5_ETIMER_1; ICUD11.smod_number = 4U; + ICUD11.clock = SPC5_ETIMER1_CLK; #endif #if SPC5_ICU_USE_SMOD11 @@ -883,6 +894,7 @@ void icu_lld_init(void) { icuObjectInit(&ICUD12); ICUD12.etimerp = &SPC5_ETIMER_1; ICUD12.smod_number = 5U; + ICUD12.clock = SPC5_ETIMER1_CLK; #endif #if SPC5_ICU_USE_SMOD12 @@ -890,6 +902,7 @@ void icu_lld_init(void) { icuObjectInit(&ICUD13); ICUD13.etimerp = &SPC5_ETIMER_2; ICUD13.smod_number = 0U; + ICUD13.clock = SPC5_ETIMER2_CLK; #endif #if SPC5_ICU_USE_SMOD13 @@ -897,6 +910,7 @@ void icu_lld_init(void) { icuObjectInit(&ICUD14); ICUD14.etimerp = &SPC5_ETIMER_2; ICUD14.smod_number = 1U; + ICUD14.clock = SPC5_ETIMER2_CLK; #endif #if SPC5_ICU_USE_SMOD14 @@ -904,6 +918,7 @@ void icu_lld_init(void) { icuObjectInit(&ICUD15); ICUD15.etimerp = &SPC5_ETIMER_2; ICUD15.smod_number = 2U; + ICUD15.clock = SPC5_ETIMER2_CLK; #endif #if SPC5_ICU_USE_SMOD15 @@ -911,6 +926,7 @@ void icu_lld_init(void) { icuObjectInit(&ICUD16); ICUD16.etimerp = &SPC5_ETIMER_2; ICUD16.smod_number = 3U; + ICUD16.clock = SPC5_ETIMER2_CLK; #endif #if SPC5_ICU_USE_SMOD16 @@ -918,6 +934,7 @@ void icu_lld_init(void) { icuObjectInit(&ICUD17); ICUD17.etimerp = &SPC5_ETIMER_2; ICUD17.smod_number = 4U; + ICUD17.clock = SPC5_ETIMER2_CLK; #endif #if SPC5_ICU_USE_SMOD17 @@ -925,6 +942,7 @@ void icu_lld_init(void) { icuObjectInit(&ICUD18); ICUD18.etimerp = &SPC5_ETIMER_2; ICUD18.smod_number = 5U; + ICUD18.clock = SPC5_ETIMER2_CLK; #endif #if SPC5_ICU_USE_ETIMER0 diff --git a/os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.h b/os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.h index 1e07e7918..f95f5356f 100644 --- a/os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.h +++ b/os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.h @@ -467,6 +467,10 @@ struct ICUDriver { ICU_DRIVER_EXT_FIELDS #endif /* End of the mandatory fields.*/ + /** + * @brief Clock value for this unit. + */ + uint32_t clock; /** * @brief eTimer submodule number. */