Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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