• Dmitry Osipenko's avatar
    clk: tegra: Add Tegra20/30 EMC clock implementation · ed1a2459
    Dmitry Osipenko authored
    A proper External Memory Controller clock rounding and parent selection
    functionality is required by the EMC drivers, it is not available using
    the generic clock implementation because only the Memory Controller driver
    is aware of what clock rates are actually available for a particular
    device. EMC drivers will have to register a Tegra-specific CLK-API
    callback which will perform rounding of a requested rate. EMC clock users
    won't be able to request EMC clock by getting -EPROBE_DEFER until EMC
    driver is probed and the callback is set up.
    
    The functionality is somewhat similar to the clk-emc.c which serves
    Tegra124+ SoCs. The later HW generations support more parent clock sources
    and the HW configuration / integration with the EMC drivers differs a tad
    from the older gens, hence it's not really worth to try to squash
    everything into a single source file.
    Acked-by: default avatarPeter De Schrijver <pdeschrijver@nvidia.com>
    Signed-off-by: default avatarDmitry Osipenko <digetx@gmail.com>
    Acked-by: default avatarStephen Boyd <sboyd@kernel.org>
    Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
    ed1a2459
clk-tegra20.c 39.6 KB