Skip to content
  • Sean Anderson's avatar
    clk: k210: Rewrite to remove CCF · 609bd60b
    Sean Anderson authored
    
    
    This is effectively a complete rewrite to remove all dependency on CCF.
    The code is now smaller, and so is the binary. It also takes up less memory
    at runtime (since we don't have to create 40 udevices). In general, I am
    much happier with this driver as much of the complexity and late binding
    has been removed.
    
    The k210_*_params structs which were previously used to initialize CCF
    clocks are now used as the complete configuration. Since we can write our
    own division logic, we can now do away with several "half" clocks which
    only existed to provide constant factors of two.
    
    The clock IDs have been renumbered to remove unused clocks. This may not be
    the last time they are renumbered, since we have diverged with Linux. There
    are also still a few clocks left out which may need to be added back in.
    
    In general, I have tried to leave out behavioral changes. However, there is
    a small bugfix regarding ACLK. According to the technical reference manual,
    its mux comes *after* its divider (which is present only for PLL0). This
    would have required yet another intermediate clock to fix with CCF, but
    with the new driver it is just 2 lines of code :)
    
    Signed-off-by: default avatarSean Anderson <seanga2@gmail.com>
    Reviewed-by: default avatarLeo Yu-Chi Liang <ycliang@andestech.com>
    609bd60b