summaryrefslogtreecommitdiff
path: root/drivers/clk/sophgo
diff options
context:
space:
mode:
authorInochi Amaoto <inochiama@outlook.com>2024-03-09 12:02:54 +0300
committerStephen Boyd <sboyd@kernel.org>2024-04-11 10:02:20 +0300
commit1cce3e61af6a89aa4b01189257fba73e46244b2d (patch)
treec21592dbc3c4625605e098e76e308120e2e6f861 /drivers/clk/sophgo
parent3b8d2042122846e3e61b184f9d17690d31a885a4 (diff)
downloadlinux-1cce3e61af6a89aa4b01189257fba73e46244b2d.tar.xz
clk: sophgo: Add clock support for SG2000 SoC
Add init code for SG2000 SoC. Signed-off-by: Inochi Amaoto <inochiama@outlook.com> Link: https://github.com/sophgo/sophgo-doc/releases/tag/sg2000-datasheet-v1.0-alpha Link: https://lore.kernel.org/r/IA1PR20MB49537156E71B64483F15C0F2BB262@IA1PR20MB4953.namprd20.prod.outlook.com Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Diffstat (limited to 'drivers/clk/sophgo')
-rw-r--r--drivers/clk/sophgo/clk-cv1800.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/clk/sophgo/clk-cv1800.c b/drivers/clk/sophgo/clk-cv1800.c
index c7d4aa6c8343..956de5b21a80 100644
--- a/drivers/clk/sophgo/clk-cv1800.c
+++ b/drivers/clk/sophgo/clk-cv1800.c
@@ -1437,6 +1437,20 @@ static const struct cv1800_clk_desc cv1810_desc = {
.pre_init = cv1810_pre_init,
};
+static int sg2000_pre_init(struct device *dev, void __iomem *base,
+ struct cv1800_clk_ctrl *ctrl,
+ const struct cv1800_clk_desc *desc)
+{
+ cv18xx_clk_disable_auto_pd(base);
+
+ return 0;
+}
+
+static const struct cv1800_clk_desc sg2000_desc = {
+ .clks_data = &cv1810_hw_clks,
+ .pre_init = sg2000_pre_init,
+};
+
static int cv1800_clk_init_ctrl(struct device *dev, void __iomem *reg,
struct cv1800_clk_ctrl *ctrl,
const struct cv1800_clk_desc *desc)
@@ -1506,6 +1520,7 @@ static int cv1800_clk_probe(struct platform_device *pdev)
static const struct of_device_id cv1800_clk_ids[] = {
{ .compatible = "sophgo,cv1800-clk", .data = &cv1800_desc },
{ .compatible = "sophgo,cv1810-clk", .data = &cv1810_desc },
+ { .compatible = "sophgo,sg2000-clk", .data = &sg2000_desc },
{ }
};
MODULE_DEVICE_TABLE(of, cv1800_clk_ids);