zephyr/drivers/timer
Jedrzej Ciupis 26e297572a drivers: timer: extend nrf_rtc_timer
This commit introduces the following changes:

* nrf_rtc_timer is extended with a capability to handle RTC overflow,
allowing it to operate on absolute RTC ticks, rather than relative
ticks.
* overflow handling is ZLI-proof and relies on the sys clock
handler being executed twice every RTC counter's overflow.
* callbacks are given an absolute RTC tick value as a parameter instead
of CC register's value. The absolute RTC tick value is the RTC counter
value set during CC channel configuration extended to 64 bits.
* in case the timer's target time is in the past or is the current tick,
the timer fires as soon as possible, however still from the RTC's ISR
context.
* in case an active timer is set again with the same target time, it is
not scheduled again - only its event data is updated. Otherwise, the
timer is scheduled as usual.
* a scheduled timer can be aborted.
* system clock functions are now using 64 bit values internally.

Signed-off-by: Andrzej Kuroś <andrzej.kuros@nordicsemi.no>
Signed-off-by: Jedrzej Ciupis <jedrzej.ciupis@nordicsemi.no>
Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
Signed-off-by: Paweł Kwiek <pawel.kwiek@nordicsemi.no>
2021-12-20 16:25:49 +01:00
..
altera_avalon_timer_hal.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
apic_timer.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
apic_tsc.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
arcv2_timer0.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
arm_arch_timer.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
cavs_timer.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
cc13x2_cc26x2_rtc_timer.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
CMakeLists.txt drivers: mcux_gpt_timer: Added GPT timer for HW clock 2021-12-13 20:13:21 -05:00
cortex_m_systick.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
esp32c3_sys_timer.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
hpet.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
ite_it8xxx2_timer.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
Kconfig drivers: mcux_gpt_timer: Added GPT timer for HW clock 2021-12-13 20:13:21 -05:00
Kconfig.altera_avalon drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.apic drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.arcv2 drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.arm_arch drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.cavs drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.cc13x2_cc26x2_rtc drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.cortex_m_systick drivers: timer: cortex_m_systick: improve ISR installation 2021-12-04 07:34:53 -05:00
Kconfig.esp32c3_sys drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.hpet drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.ite_it8xxx2 drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.leon_gptimer drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.litex drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.mchp_xec_rtos drivers: timer: improve sys_timer_disable usage 2021-12-04 07:34:53 -05:00
Kconfig.mcux_gpt drivers: mcux_gpt_timer: Added GPT timer for HW clock 2021-12-13 20:13:21 -05:00
Kconfig.mcux_lptmr drivers: timer: improve sys_timer_disable usage 2021-12-04 07:34:53 -05:00
Kconfig.mcux_os drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.native_posix drivers: timer: improve sys_timer_disable usage 2021-12-04 07:34:53 -05:00
Kconfig.npcx_itim drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.nrf_rtc drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.rcar_cmt drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.riscv_machine drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.rv32m1_lptmr drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.sam0_rtc drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.stm32_lptim kconfig: drivers: experimental settings now uses select EXPERIMENTAL 2021-10-25 10:46:48 +02:00
Kconfig.xlnx_psttc drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
Kconfig.xtensa drivers: timer: split Kconfig 2021-12-04 07:34:53 -05:00
leon_gptimer.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
litex_timer.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
mchp_xec_rtos_timer.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
mcux_gpt_timer.c drivers: mcux_gpt_timer: Added GPT timer for HW clock 2021-12-13 20:13:21 -05:00
mcux_lptmr_timer.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
mcux_os_timer.c drivers: timer: fix MISRA 5.7 violation 2021-12-04 07:34:53 -05:00
native_posix_timer.c drivers: timer: improve sys_timer_disable usage 2021-12-04 07:34:53 -05:00
npcx_itim_timer.c driver: timer: npcx_itim: Add timer initialization 2021-12-09 11:13:06 -06:00
nrf_rtc_timer.c drivers: timer: extend nrf_rtc_timer 2021-12-20 16:25:49 +01:00
rcar_cmt_timer.c drivers: timer: fix MISRA 5.7 violation 2021-12-04 07:34:53 -05:00
riscv_machine_timer.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
rv32m1_lptmr_timer.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
sam0_rtc_timer.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
stm32_lptim_timer.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
sys_clock_init.c drivers: timer: cortex_m_systick: improve ISR installation 2021-12-04 07:34:53 -05:00
xlnx_psttc_timer_priv.h
xlnx_psttc_timer.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00
xtensa_sys_timer.c drivers: timer: move initialization setup to drivers 2021-12-04 07:34:53 -05:00