]> git.itanic.dy.fi Git - linux-stable/commit
clk: baikal-t1: Move reset-controls code into a dedicated module
authorSerge Semin <Sergey.Semin@baikalelectronics.ru>
Thu, 29 Sep 2022 22:53:59 +0000 (01:53 +0300)
committerStephen Boyd <sboyd@kernel.org>
Fri, 30 Sep 2022 21:19:33 +0000 (14:19 -0700)
commit70fa895488a4ebdae8b2d08b4c84e164ef14696e
treed7f1a6c3e5d944696bc0c340ca8e37c383b12403
parent081a9b7c74eae4e12b2cb1b86720f836a8f29247
clk: baikal-t1: Move reset-controls code into a dedicated module

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: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Link: https://lore.kernel.org/r/20220929225402.9696-6-Sergey.Semin@baikalelectronics.ru
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/baikal-t1/Kconfig
drivers/clk/baikal-t1/Makefile
drivers/clk/baikal-t1/ccu-div.c
drivers/clk/baikal-t1/ccu-div.h
drivers/clk/baikal-t1/ccu-rst.c [new file with mode: 0644]
drivers/clk/baikal-t1/ccu-rst.h [new file with mode: 0644]
drivers/clk/baikal-t1/clk-ccu-div.c