[RFC PATCH 0/3] Add HiSilicon system timer driver

From: Yicong Yang
Date: Tue Oct 10 2023 - 08:33:28 EST


From: Yicong Yang <yangyicong@xxxxxxxxxxxxx>

HiSilicon system timer is a memory mapped platform timer compatible with
the arm's generic timer specification. The timer supports both SPI and
LPI interrupt and can be enumerated through ACPI DSDT table. Since the
timer is fully compatible with the spec, it can reuse most codes of the
arm_arch_timer driver. However since the arm_arch_timer driver only
supports GTDT and SPI interrupt, this series support the HiSilicon system
timer by:

- refactor some of the arm_arch_timer codes and export the function to
register a arch memory timer by other drivers
- retrieve the IO memory and interrupt resource through DSDT in a separate
driver, then setup and register the clockevent device reuse the arm_arch_timer
function

Using LPI for the timer is mentioned in BSA Spec section 3.8.1 (DEN0094C 1.0C).

Yicong Yang (3):
clocksource/drivers/arm_arch_timer: Split the function of
__arch_timer_setup()
clocksource/drivers/arm_arch_timer: Extend and export
arch_timer_mem_register()
clocksource/drivers: Add HiSilicon system timer driver

drivers/clocksource/Kconfig | 10 +++
drivers/clocksource/Makefile | 1 +
drivers/clocksource/arm_arch_timer.c | 123 +++++++++++++++------------
drivers/clocksource/timer-hisi-sys.c | 68 +++++++++++++++
include/clocksource/arm_arch_timer.h | 2 +
5 files changed, 148 insertions(+), 56 deletions(-)
create mode 100644 drivers/clocksource/timer-hisi-sys.c

--
2.24.0