]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blame - Documentation/timers/hpet.txt
UBUNTU: Start new release
[mirror_ubuntu-zesty-kernel.git] / Documentation / timers / hpet.txt
CommitLineData
1da177e4
LT
1 High Precision Event Timer Driver for Linux
2
64a76f66 3The High Precision Event Timer (HPET) hardware follows a specification
4e7f9df2 4by Intel and Microsoft, revision 1.
64a76f66
DB
5
6Each HPET has one fixed-rate counter (at 10+ MHz, hence "High Precision")
7and up to 32 comparators. Normally three or more comparators are provided,
19f59460 8each of which can generate oneshot interrupts and at least one of which has
64a76f66
DB
9additional hardware to support periodic interrupts. The comparators are
10also called "timers", which can be misleading since usually timers are
11independent of each other ... these share a counter, complicating resets.
12
13HPET devices can support two interrupt routing modes. In one mode, the
14comparators are additional interrupt sources with no particular system
15role. Many x86 BIOS writers don't route HPET interrupts at all, which
16prevents use of that mode. They support the other "legacy replacement"
17mode where the first two comparators block interrupts from 8254 timers
18and from the RTC.
8a0d4900
RD
19
20The driver supports detection of HPET driver allocation and initialization
21of the HPET before the driver module_init routine is called. This enables
22platform code which uses timer 0 or 1 as the main timer to intercept HPET
23initialization. An example of this initialization can be found in
64a76f66 24arch/x86/kernel/hpet.c.
1da177e4 25
64a76f66 26The driver provides a userspace API which resembles the API found in the
e6186309 27RTC driver framework. An example user space program is provided in
155fe001 28file:samples/timers/hpet_example.c