• Serge Semin's avatar
    clk: baikal-t1: Move reset-controls code into a dedicated module · 70fa8954
    Serge Semin authored
    Before adding the directly controlled resets support it's reasonable to
    move the existing resets control functionality into a dedicated object for
    the sake of the CCU dividers clock driver simplification. After the new
    functionality was added clk-ccu-div.c would have got to a mixture of the
    weakly dependent clocks and resets methods. Splitting the methods up into
    the two objects will make the code easier to read and maintain. It shall
    also improve the code scalability (though hopefully we won't need this
    part that much in the future).
    
    The reset control functionality is now implemented in the framework of a
    single unit since splitting it up doesn't make much sense due to
    relatively simple reset operations. The ccu-rst.c has been designed to be
    looking like ccu-div.c or ccu-pll.c with two globally available methods
    for the sake of the code unification and better code readability.
    
    This commit doesn't provide any change in the CCU reset implementation
    semantics. As before the driver will support the trigger-like CCU resets
    only, which are responsible for the AXI-bus, APB-bus and SATA-ref blocks
    reset. The assert/de-assert-capable reset controls support will be added
    in the next commit.
    
    Note the CCU Clock dividers and resets functionality split up was possible
    due to not having any side-effects (at least we didn't found ones) of the
    regmap-based concurrent access of the common CCU dividers/reset CSRs.
    Signed-off-by: default avatarSerge Semin <Sergey.Semin@baikalelectronics.ru>
    Reviewed-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
    Link: https://lore.kernel.org/r/20220929225402.9696-6-Sergey.Semin@baikalelectronics.ruSigned-off-by: default avatarStephen Boyd <sboyd@kernel.org>
    70fa8954
Kconfig 2.06 KB