• Eric Anholt's avatar
    clk: bcm2835: Add support for programming the audio domain clocks · 41691b88
    Eric Anholt authored
    This adds support for enabling, disabling, and setting the rate of the
    audio domain clocks.  It will be necessary for setting the pixel clock
    for HDMI in the VC4 driver and let us write a cpufreq driver.  It will
    also improve compatibility with user changes to the firmware's
    config.txt, since our previous fixed clocks are unaware of it.
    
    The firmware also has support for configuring the clocks through the
    mailbox channel, but the pixel clock setup by the firmware doesn't
    work, and it's Raspberry Pi specific anyway.  The only conflicts we
    should have with the firmware would be if we made firmware calls that
    result in clock management (like opening firmware V3D or ISP access,
    which we don't support in upstream), or on hardware over-thermal or
    under-voltage (when the firmware would rewrite PLLB to take the ARM
    out of overclock).  If that happens, our cached .recalc_rate() results
    would be incorrect, but that's no worse than our current state where
    we used fixed clocks.
    
    The existing fixed clocks in the code are left in place to provide
    backwards compatibility with old device tree files.
    Signed-off-by: default avatarEric Anholt <eric@anholt.net>
    Tested-by: default avatarMartin Sperl <kernel@martin.sperl.org>
    Acked-by: default avatarStephen Warren <swarren@wwwdotorg.org>
    Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
    41691b88
clk-bcm2835.c 42.5 KB