OSDN Git Service

clk: Add RISC-V Canaan Kendryte K210 clock driver
authorDamien Le Moal <damien.lemoal@wdc.com>
Wed, 10 Feb 2021 05:02:14 +0000 (14:02 +0900)
committerPalmer Dabbelt <palmerdabbelt@google.com>
Tue, 23 Feb 2021 01:51:04 +0000 (17:51 -0800)
commitc6ca7616f7d5c2ce166280107ba74db1d528fcb7
tree12e5c34d4433b636971078f7e2aff0338ee82bf1
parent4bb875632ad0e8b71fa0f0be292793c061a9f43c
clk: Add RISC-V Canaan Kendryte K210 clock driver

Add a clock provider driver for the Canaan Kendryte K210 RISC-V SoC.
This new driver with the compatible string "canaan,k210-clk" implements
support for the full clock structure of the K210 SoC. Since it is
required for the correct operation of the SoC, this driver is
selected by default for compilation when the SOC_CANAAN option is
selected.

With this change, the k210-sysctl driver is turned into a simple
platform driver which enables its power bus clock and triggers
populating its child nodes. The sysctl driver retains the SOC early
initialization code, but the implementation now relies on the new
function k210_clk_early_init() provided by the new clk-k210 driver.

The clock structure implemented and many of the coding ideas for the
driver come from the work by Sean Anderson on the K210 support for the
U-Boot project.

Cc: Stephen Boyd <sboyd@kernel.org>
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: linux-clk@vger.kernel.org
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
drivers/clk/Kconfig
drivers/clk/Makefile
drivers/clk/clk-k210.c [new file with mode: 0644]
drivers/soc/canaan/Kconfig
drivers/soc/canaan/Makefile
drivers/soc/canaan/k210-sysctl.c
include/soc/canaan/k210-sysctl.h