• Alex Elder's avatar
    clk: bcm281xx: define CCU clock data statically · 03548ec0
    Alex Elder authored
    Rather than "manually" setting up each CCU's clock entries at run
    time, define a flexible array of generic Kona clock structures
    within the CCU structure itself.  Each of these entries contains
    generic kona clock information (like its CCU pointer and clock
    framework initialization data).  Each also has a pointer to a
    structure contianing clock type-dependent initialization data
    (like register definitions).
    
    Since we'll iterate over these arrays we need to be sure they have
    slots for all potential clock index values.  (E.g. for the root CCU
    we must have at least BCM281XX_ROOT_CCU_CLOCK_COUNT slots.)  To
    ensure this we always define an extra entry and fill it using the
    special initializer LAST_KONA_CLK.
    
    Just about everything we need to know about a clock can be defined
    statically.  As a result, kona_clk_setup() can be changed to take
    just a kona_clk structure as its argument, and peri_clk_setup() can
    be simplified.  With the information pre-defined we are also able
    to handle most clock setup genericially.  We can do away with the
    CCU-specific callback functions that previously were needed to set
    up the entries in CCU's clock array.
    
    Move the definition of the ccu_data structure down in "clk-kona.h"
    to avoid a forward dependency.
    Signed-off-by: default avatarAlex Elder <elder@linaro.org>
    Signed-off-by: default avatarMike Turquette <mturquette@linaro.org>
    03548ec0
clk-kona-setup.c 19.1 KB