[PATCH v2 0/4] clocksource: Add standalone MMIO ARM arch timer driver

From: Marc Zyngier
Date: Thu Aug 14 2025 - 11:51:57 EST


For the past 10 years, both Mark and I have been lamenting about the
sorry state of the badly named "arch_timer" driver, and about the way
the MMIO part is intricately weaved into the system-register part.

The time has finally come to take a stab at it.

This small series simply creates a new timer driver for the MMIO arch
timer, and only that. It is an actual driver, and not some kludge that
has to run super early (that's what the per-CPU timers are for). This
allows, in turn, a pretty large cleanup of the per-CPU driver, though
there is more to come -- one thing at a time.

As an added bonus, we get a clocksource, which the original code
didn't provide. Just in case it might be useful. The end-result is far
more readable, and about 100 lines smaller.

Patches on top of 6.17-rc1.

* From v1 [1]:

- Narrow the max delta to something that fits an unsigned long, as
the core code doesn't deal with 64bit quantities on 32bit CPUs.

- Collected RBs and TBs from Sudeep, with thanks.

Marc Zyngier (4):
ACPI: GTDT: Generate platform devices for MMIO timers
clocksource/drivers/arm_arch_timer: Add standalone MMIO driver
clocksource/drivers/arm_arch_timer_mmio: Switch over to standalone
driver
clocksource/drivers/arm_arch_timer_mmio: Add MMIO clocksource

MAINTAINERS | 1 +
drivers/acpi/arm64/gtdt.c | 29 +-
drivers/clocksource/Makefile | 1 +
drivers/clocksource/arm_arch_timer.c | 686 ++--------------------
drivers/clocksource/arm_arch_timer_mmio.c | 440 ++++++++++++++
include/clocksource/arm_arch_timer.h | 5 -
6 files changed, 532 insertions(+), 630 deletions(-)
create mode 100644 drivers/clocksource/arm_arch_timer_mmio.c

--
2.39.2