Skip to content
  • Jon Hunter's avatar
    ARM: OMAP3: Update clocksource timer selection · 2eb03937
    Jon Hunter authored
    
    
    When booting with device-tree for OMAP3 and AM335x devices and a gptimer
    is used as the clocksource (which is always the case for AM335x), a
    gptimer located in a power domain that is not always-on is selected.
    Ideally we should use a gptimer for clocksource that is located in a
    power domain that is always on (such as the wake-up domain) so that time
    can be maintained during a kernel suspend without keeping on additional
    power domains unnecessarily.
    
    In order to fix this so that we can select a gptimer located in a power
    domain that is always-on, the following changes were made ...
    1. Currently, only when selecting a gptimer to use for a clockevent
       timer, do we pass a timer property that can be used to select a
       specific gptimer. Change this so that we can pass a property when
       selecting a gptimer to use for a clocksource timer too.
    2. Currently, when selecting either a gptimer to use for a clockevent
       timer or a clocksource timer and no timer property is passed, then
       the first available timer is selected regardless of the properties
       it has. Change this so that if no properties are passed, then a timer
       that does not have additional features (such as always-on, dsp-irq,
       pwm, and secure) is selected.
    
    For OMAP3 and AM335x devices that use a gptimer for clocksource, change
    the selection of the gptimer so that by default the gptimer located in
    the always-on power domain is used for clocksource instead of
    clockevents.
    
    Please note that using a gptimer for both clocksource and clockevents
    can have a system power impact during idle. The reason being is that
    OMAP and AMxxx devices typically only have one gptimer in a power domain
    that is always-on. Therefore when the kernel is idle both the clocksource
    and clockevent timers will be active and this will keep additional power
    domains on. During kernel suspend, only the clocksource timer is active
    and therefore, it is better to use a gptimer in a power domain that is
    always-on for clocksource.
    
    Signed-off-by: default avatarJon Hunter <jon-hunter@ti.com>
    Acked-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
    Acked-by: default avatarIgor Grinberg <grinberg@compulab.co.il>
    2eb03937