• Suman Anna's avatar
    remoteproc/omap: Request a timer(s) for remoteproc usage · e28edc57
    Suman Anna authored
    The remote processors in OMAP4+ SoCs are equipped with internal
    timers, like the internal SysTick timer in a Cortex M3/M4 NVIC or
    the CTM timer within Unicache in IPU & DSP. However, these timers
    are gated when the processor subsystem clock is gated, making
    them rather difficult to use as OS tick sources. They will not
    be able to wakeup the processor from any processor-sleep induced
    clock-gating states.
    
    This can be avoided by using an external timer as the tick source,
    which can be controlled independently by the OMAP remoteproc
    driver code, but still allowing the processor subsystem clock to
    be auto-gated when the remoteproc cores are idle.
    
    This patch adds the support for OMAP remote processors to request
    timer(s) to be used by the remoteproc. The timers are enabled and
    disabled in line with the enabling/disabling of the remoteproc.
    The timer data is not mandatory if the advanced device management
    features are not required.
    
    The core timer functionality is provided by the OMAP DMTimer
    clocksource driver, which does not export any API. The logic is
    implemented through the timer device's platform data ops. The OMAP
    remoteproc driver mainly requires ops to request/free a dmtimer,
    and to start/stop a timer. The split ops helps in controlling the
    timer state without having to request and release a timer everytime
    it needs to use the timer.
    
    NOTE: If the gptimer is already in use by the time IPU and/or
    DSP are loaded, the processors will fail to boot.
    Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
    Signed-off-by: default avatarTero Kristo <t-kristo@ti.com>
    Reviewed-by: default avatarAndrew F. Davis <afd@ti.com>
    Acked-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
    Link: https://lore.kernel.org/r/20200324110035.29907-11-t-kristo@ti.comSigned-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
    e28edc57
omap_remoteproc.c 22.5 KB