it8xxx2: timer: to unified method of enabling event timer.

This enable timer and also reset it.

fixes #42851
fixes #42953

Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
This commit is contained in:
Dino Li 2022-02-24 16:50:17 +08:00 committed by Carles Cufí
commit d8c2c2cbb8

View file

@ -122,6 +122,13 @@ void timer_5ms_one_shot(void)
} }
#endif /* CONFIG_SOC_IT8XXX2_PLL_FLASH_48M */ #endif /* CONFIG_SOC_IT8XXX2_PLL_FLASH_48M */
static void evt_timer_enable(void)
{
/* Enable and re-start event timer */
IT8XXX2_EXT_CTRLX(EVENT_TIMER) |= (IT8XXX2_EXT_ETXEN |
IT8XXX2_EXT_ETXRST);
}
static void evt_timer_isr(const void *unused) static void evt_timer_isr(const void *unused)
{ {
ARG_UNUSED(unused); ARG_UNUSED(unused);
@ -142,10 +149,8 @@ static void evt_timer_isr(const void *unused)
sys_clock_announce(dticks); sys_clock_announce(dticks);
} else { } else {
/* Enable and re-start event timer */ /* enable event timer */
IT8XXX2_EXT_CTRLX(EVENT_TIMER) |= (IT8XXX2_EXT_ETXEN | evt_timer_enable();
IT8XXX2_EXT_ETXRST);
/* Informs kernel that one system tick has elapsed */ /* Informs kernel that one system tick has elapsed */
sys_clock_announce(1); sys_clock_announce(1);
} }
@ -215,11 +220,8 @@ void sys_clock_set_timeout(int32_t ticks, bool idle)
/* W/C event timer interrupt status */ /* W/C event timer interrupt status */
ite_intc_isr_clear(EVENT_TIMER_IRQ); ite_intc_isr_clear(EVENT_TIMER_IRQ);
/* /* enable event timer */
* When timer enable bit is from 0->1, timer will reload counts and evt_timer_enable();
* start countdown.
*/
IT8XXX2_EXT_CTRLX(EVENT_TIMER) |= IT8XXX2_EXT_ETXEN;
k_spin_unlock(&lock, key); k_spin_unlock(&lock, key);