This patch series adds support for the Realtek SYSTIMER, a 64-bit timer
that serves as a tick broadcast timer on Realtek SoCs.
On Realtek platforms, CPUs can enter deep idle states (C-states) where
local timers are stopped and powered off. Without a global tick broadcast
timer, one CPU must remain awake to wake up the others, preventing all CPUs
from entering deep idle simultaneously and limiting power savings.
The Realtek SYSTIMER remains active during deep idle states, allowing all
CPUs to enter power-cut idle states simultaneously. This significantly
reduces overall power consumption while maintaining proper tick broadcast
functionality.
Technical details:
- 64-bit timer operating at 1MHz fixed frequency
- Supports oneshot mode for tick broadcast
- Uses standard TIMER_OF framework and Device Tree integration
- Remains active during CPU power-down states
Testing:
- Tested on Realtek SoC platform in ChromiumOS environment
- Power consumption reduction verified in deep idle scenarios
Patch organization:
Patch 1/2: Device Tree binding documentation
Patch 2/2: Clock source driver implementation
Best regards,
Hao-Wen Ting
Hao-Wen Ting (2):
dt-bindings: timer: Add Realtek SYSTIMER binding
clocksource: Add Realtek systimer as tick broadcast driver
.../bindings/timer/realtek,systimer.yaml | 54 ++++++
MAINTAINERS | 5 +
drivers/clocksource/Kconfig | 10 +
drivers/clocksource/Makefile | 1 +
drivers/clocksource/timer-realtek.c | 173 ++++++++++++++++++
5 files changed, 243 insertions(+)
create mode 100644 Documentation/devicetree/bindings/timer/realtek,systimer.yaml
create mode 100644 drivers/clocksource/timer-realtek.c
base-commit: 948b99877bf5a1cd58bee930e455b7574daba5c3
--
2.34.1