• David Brownell's avatar
    [ARM] 4539/1: clocksource and clockevents for at91rm9200 · 5e802dfa
    David Brownell authored
    GENERIC_TIME and GENERIC_CLOCKEVENTS support for the at91rm9200.
    
     - Oneshot mode (used for NO_HZ and high res timers) uses the
       alarm to emulate a real oneshot timer; the trickiest bit is
       how to avoid some lowlevel races.  Thanks to Remy Bohmer for
       various fixes to this code.
    
     - Tighten up periodic mode support using the PIT.
    
     - Streamline reads of the 32KHz counter.  Thanks to Marc Pignat
       for some testing results: the CRTR register has *very* odd
       behavior.  The reread appears to work around stranger glitches
       than just getting an old clock value (which would quickly
       self-correct).
    
     - Remove the rounding-up of tick_usec to 10.009 msec (32KiHz/100),
       since that no longer acts correct (time increases too fast).
    
    Note that the at91sam9 and at91x40 chips need other solutions,
    since they don't have the same system timer module.
    Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Acked-by: default avatarBill Gatliff <bgat@billgatliff.com>
    Acked-by: default avatarRemy Bohmer <linux@bohmer.net>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    5e802dfa
at91rm9200_time.c 5.65 KB