mirror of
https://github.com/torvalds/linux.git
synced 2024-11-19 18:41:48 +00:00
194444c52e
In 5388a6b266
("ARM: SMP: Always enable clock event broadcast support")
Russell noted that "the TWD local timers are unable to wake up the CPU
when it is placed into a low power mode".
However, some platforms do not stop the TWD block in low-power mode,
and can thus use the TWD timer in one-shot mode, without setting up
a broadcast device.
Make the driver check for the "always-on" boolean property, and set
the CLOCK_EVT_FEAT_C3STOP flag accordingly.
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Marc Gonzalez <marc_gonzalez@sigmadesigns.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
54 lines
1.2 KiB
Plaintext
54 lines
1.2 KiB
Plaintext
* ARM Timer Watchdog
|
|
|
|
ARM 11MP, Cortex-A5 and Cortex-A9 are often associated with a per-core
|
|
Timer-Watchdog (aka TWD), which provides both a per-cpu local timer
|
|
and watchdog.
|
|
|
|
The TWD is usually attached to a GIC to deliver its two per-processor
|
|
interrupts.
|
|
|
|
** Timer node required properties:
|
|
|
|
- compatible : Should be one of:
|
|
"arm,cortex-a9-twd-timer"
|
|
"arm,cortex-a5-twd-timer"
|
|
"arm,arm11mp-twd-timer"
|
|
|
|
- interrupts : One interrupt to each core
|
|
|
|
- reg : Specify the base address and the size of the TWD timer
|
|
register window.
|
|
|
|
Optional
|
|
|
|
- always-on : a boolean property. If present, the timer is powered through
|
|
an always-on power domain, therefore it never loses context.
|
|
|
|
Example:
|
|
|
|
twd-timer@2c000600 {
|
|
compatible = "arm,arm11mp-twd-timer"";
|
|
reg = <0x2c000600 0x20>;
|
|
interrupts = <1 13 0xf01>;
|
|
};
|
|
|
|
** Watchdog node properties:
|
|
|
|
- compatible : Should be one of:
|
|
"arm,cortex-a9-twd-wdt"
|
|
"arm,cortex-a5-twd-wdt"
|
|
"arm,arm11mp-twd-wdt"
|
|
|
|
- interrupts : One interrupt to each core
|
|
|
|
- reg : Specify the base address and the size of the TWD watchdog
|
|
register window.
|
|
|
|
Example:
|
|
|
|
twd-watchdog@2c000620 {
|
|
compatible = "arm,arm11mp-twd-wdt";
|
|
reg = <0x2c000620 0x20>;
|
|
interrupts = <1 14 0xf01>;
|
|
};
|