[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1cd309fa-a4d3-4283-aa47-1330a40448a7@gmail.com>
Date: Mon, 24 Jun 2024 13:40:03 +0200
From: Johan Jonker <jbx6244@...il.com>
To: heiko@...ech.de
Cc: mturquette@...libre.com, sboyd@...nel.org, linux-clk@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-rockchip@...ts.infradead.org,
linux-kernel@...r.kernel.org
Subject: [PATCH v1] clk: rockchip: rk3188: Drop CLK_NR_CLKS usage
In order to get rid of CLK_NR_CLKS and be able to drop it from the
bindings, use rockchip_clk_find_max_clk_id helper to find the highest
clock id.
Signed-off-by: Johan Jonker <jbx6244@...il.com>
---
drivers/clk/rockchip/clk-rk3188.c | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/drivers/clk/rockchip/clk-rk3188.c b/drivers/clk/rockchip/clk-rk3188.c
index 9c8af4d1dae0..30e670c8afba 100644
--- a/drivers/clk/rockchip/clk-rk3188.c
+++ b/drivers/clk/rockchip/clk-rk3188.c
@@ -757,9 +757,11 @@ static const char *const rk3188_critical_clocks[] __initconst = {
"sclk_mac_lbtest",
};
-static struct rockchip_clk_provider *__init rk3188_common_clk_init(struct device_node *np)
+static struct rockchip_clk_provider *__init rk3188_common_clk_init(struct device_node *np,
+ unsigned long soc_nr_clks)
{
struct rockchip_clk_provider *ctx;
+ unsigned long common_nr_clks;
void __iomem *reg_base;
reg_base = of_iomap(np, 0);
@@ -768,7 +770,9 @@ static struct rockchip_clk_provider *__init rk3188_common_clk_init(struct device
return ERR_PTR(-ENOMEM);
}
- ctx = rockchip_clk_init(np, reg_base, CLK_NR_CLKS);
+ common_nr_clks = rockchip_clk_find_max_clk_id(common_clk_branches,
+ ARRAY_SIZE(common_clk_branches)) + 1;
+ ctx = rockchip_clk_init(np, reg_base, max(common_nr_clks, soc_nr_clks));
if (IS_ERR(ctx)) {
pr_err("%s: rockchip clk init failed\n", __func__);
iounmap(reg_base);
@@ -789,8 +793,11 @@ static struct rockchip_clk_provider *__init rk3188_common_clk_init(struct device
static void __init rk3066a_clk_init(struct device_node *np)
{
struct rockchip_clk_provider *ctx;
+ unsigned long soc_nr_clks;
- ctx = rk3188_common_clk_init(np);
+ soc_nr_clks = rockchip_clk_find_max_clk_id(rk3066a_clk_branches,
+ ARRAY_SIZE(rk3066a_clk_branches)) + 1;
+ ctx = rk3188_common_clk_init(np, soc_nr_clks);
if (IS_ERR(ctx))
return;
@@ -812,11 +819,14 @@ CLK_OF_DECLARE(rk3066a_cru, "rockchip,rk3066a-cru", rk3066a_clk_init);
static void __init rk3188a_clk_init(struct device_node *np)
{
struct rockchip_clk_provider *ctx;
+ unsigned long soc_nr_clks;
struct clk *clk1, *clk2;
unsigned long rate;
int ret;
- ctx = rk3188_common_clk_init(np);
+ soc_nr_clks = rockchip_clk_find_max_clk_id(rk3188_clk_branches,
+ ARRAY_SIZE(rk3188_clk_branches)) + 1;
+ ctx = rk3188_common_clk_init(np, soc_nr_clks);
if (IS_ERR(ctx))
return;
--
2.39.2
Powered by blists - more mailing lists