Skip to content
  • Boris Brezillon's avatar
    clk: add clk accuracy retrieval support · 5279fc40
    Boris Brezillon authored
    
    
    The clock accuracy is expressed in ppb (parts per billion) and represents
    the possible clock drift.
    Say you have a clock (e.g. an oscillator) which provides a fixed clock of
    20MHz with an accuracy of +- 20Hz. This accuracy expressed in ppb is
    20Hz/20MHz = 1000 ppb (or 1 ppm).
    
    Clock users may need the clock accuracy information in order to choose
    the best clock (the one with the best accuracy) across several available
    clocks.
    
    This patch adds clk accuracy retrieval support for common clk framework by
    means of a new function called clk_get_accuracy.
    This function returns the given clock accuracy expressed in ppb.
    
    In order to get the clock accuracy, this implementation adds one callback
    called recalc_accuracy to the clk_ops structure.
    This callback is given the parent clock accuracy (if the clock is not a
    root clock) and should recalculate the given clock accuracy.
    
    This callback is optional and may be implemented if the clock is not
    a perfect clock (accuracy != 0 ppb).
    
    Signed-off-by: default avatarBoris BREZILLON <b.brezillon@overkiz.com>
    Signed-off-by: default avatarMike Turquette <mturquette@linaro.org>
    5279fc40