zephyr/drivers/timer
Nicolas Pitre 0fc9c9f46a drivers/timer/arm_arch_timer: driver revamp
Couple issues:

- `sys_clock_set_timeout()` should not base its `mtime` on the current
  time either. Tracking the `last_tick` and `last_elapsed` values avoids
  the need for all the tick rounding computation.

- The MIN_DELAY thing is pointless. The hardware performs a signed
  comparison. If the delay gets close or even behind current time then
  the IRQ will be triggered right away. This is unlikely to happen very
  often anyway so the constant overhead is uncalled for.

- Runtime 64-bits divisions on 32-bits hardware are very expensive.

- The timer must be enabled before the count can return a sensible
  value during driver init (at least on qemu_cortex_a9).

Discussion in PR #54919 applies here too.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2023-03-02 15:37:35 -05:00
..
altera_avalon_timer_hal.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
apic_timer.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
apic_tsc.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
arcv2_timer0.c smp: Convert #if to use CONFIG_MP_MAX_NUM_CPUS 2022-10-20 22:04:10 +09:00
arm_arch_timer.c drivers/timer/arm_arch_timer: driver revamp 2023-03-02 15:37:35 -05:00
cc13x2_cc26x2_rtc_timer.c include: add missing spinlock.h include 2022-10-11 18:05:17 +02:00
CMakeLists.txt
cortex_m_systick.c cortex-m: warnings: Address -Wextra warnings 2023-02-19 20:58:44 -05:00
esp32c3_sys_timer.c driver: systimer: increase esp32c3 tick resolution 2023-01-04 14:24:25 +01:00
hpet.c timer: hpet: Remove deadcode 2023-01-09 12:07:28 -05:00
intel_adsp_timer.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
ite_it8xxx2_timer.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
Kconfig drivers: timers: Add dependency on SYS_CLOCK_EXISTS to all timer configs 2023-01-20 20:02:20 +01:00
Kconfig.altera_avalon
Kconfig.apic timer: APIC timer count is a lock free accessor 2022-10-18 14:14:12 +02:00
Kconfig.arcv2
Kconfig.arm_arch
Kconfig.cavs drivers: timer: intel_adsp: Update driver to use dts Kconfig symbol 2022-11-01 09:03:17 +00:00
Kconfig.cc13x2_cc26x2_rtc drivers: timer: Update drivers to use devicetree Kconfig symbol 2022-09-09 09:58:48 +00:00
Kconfig.cortex_m_systick drivers: timer: Update drivers to use devicetree Kconfig symbol 2022-09-09 09:58:48 +00:00
Kconfig.esp32c3_sys
Kconfig.hpet timer: Revert "timer: HPET is also a lock free readable timer" 2022-11-01 23:15:23 +09:00
Kconfig.ite_it8xxx2 drivers: timer: Update drivers to use devicetree Kconfig symbol 2022-09-09 09:58:48 +00:00
Kconfig.leon_gptimer drivers: timer: Update drivers to use devicetree Kconfig symbol 2022-09-09 09:58:48 +00:00
Kconfig.litex drivers: timer: Update drivers to use devicetree Kconfig symbol 2022-09-09 09:58:48 +00:00
Kconfig.mchp_xec_rtos drivers: timer: Update drivers to use devicetree Kconfig symbol 2022-09-09 09:58:48 +00:00
Kconfig.mcux_gpt soc: arm: nxp: switch imxrt boards to use systick timer unless CONFIG_PM=y 2022-12-16 09:31:48 +01:00
Kconfig.mcux_lptmr drivers: timer: mcux: lptmr: add dependency on CONFIG_PM 2023-01-31 22:10:28 -06:00
Kconfig.mcux_os drivers: timer: Update drivers to use devicetree Kconfig symbol 2022-09-09 09:58:48 +00:00
Kconfig.mips_cp0
Kconfig.native_posix
Kconfig.npcx_itim drivers: timer: Update drivers to use devicetree Kconfig symbol 2022-09-09 09:58:48 +00:00
Kconfig.nrf_rtc drivers: tiemr: nrf_rtc_timer: Add test function for shifting time 2022-11-17 11:24:23 +01:00
Kconfig.rcar_cmt drivers: timer: Update drivers to use devicetree Kconfig symbol 2022-09-09 09:58:48 +00:00
Kconfig.riscv_machine drivers: timer: Machine timer driver enablement for NIOSV 2023-02-20 09:29:13 -05:00
Kconfig.rv32m1_lptmr drivers: timer: Update drivers to use devicetree Kconfig symbol 2022-09-09 09:58:48 +00:00
Kconfig.sam0_rtc drivers: timer: Update drivers to use devicetree Kconfig symbol 2022-09-09 09:58:48 +00:00
Kconfig.stm32_lptim drivers: timer: stm32_lptim: Change clock source config check sanction 2022-09-21 18:39:07 +00:00
Kconfig.xlnx_psttc drivers: timer: Update drivers to use devicetree Kconfig symbol 2022-09-09 09:58:48 +00:00
Kconfig.xtensa
leon_gptimer.c include: add missing irq.h include 2022-10-11 18:05:17 +02:00
litex_timer.c
mchp_xec_rtos_timer.c include: add missing irq.h include 2022-10-11 18:05:17 +02:00
mcux_gpt_timer.c include: add missing irq.h include 2022-10-11 18:05:17 +02:00
mcux_lptmr_timer.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
mcux_os_timer.c timer: nxp: Update OS-Timer to use wakeup-source flag 2022-10-27 11:03:13 +02:00
mips_cp0_timer.c include: add missing limits.h include 2022-10-11 18:05:17 +02:00
native_posix_timer.c
npcx_itim_timer.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
nrf_rtc_timer.c drivers: nrf_rtc_timer: Fix handling of COMPARE events in set_alarm() 2023-02-14 08:28:28 +01:00
rcar_cmt_timer.c include: add missing irq.h include 2022-10-11 18:05:17 +02:00
riscv_machine_timer.c riscv: timer: driver revamp 2023-02-21 18:04:55 -05:00
rv32m1_lptmr_timer.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
sam0_rtc_timer.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
stm32_lptim_timer.c drivers: timer: stm32_lptim: fix sys_clock_* return value 2023-02-27 17:31:03 +01:00
sys_clock_init.c
xlnx_psttc_timer_priv.h
xlnx_psttc_timer.c include: add missing sys_clock.h include 2022-10-11 18:05:17 +02:00
xtensa_sys_timer.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00