[PATCH 1/2] clk: rockchip: rk3588: add hardcoded assigned clocks values
Kever Yang
kever.yang at rock-chips.com
Mon Apr 17 03:01:15 CEST 2023
On 2023/4/13 19:36, Eugen Hristev wrote:
> The CRU is being probed with a default set of assigned clocks, which
> are not implemented in the driver at all.
> Hence, when clk_set_defaults is called, it fails with ENOENT.
> This would not be a problem, as the CRU still handles all the required
> clocks, and the assigned clocks are default configs which are preprogrammed
> or not required for Uboot operations.
> However, the rockchip reset driver is being bound by the same DT node
> as CRU, as the reset driver has no DT node.
> But, when probing the reset node, it will call again the clk_set_defaults
> for the CRU node, and failing because of missing those specific clocks
> in the rk3588 clock driver.
> To avoid this, simply implement a basic set/get that will just return
> success and the default corresponding rate for the required assigned clocks.
> As those clocks were not supported in Uboot, not required for Uboot
> operations, there is no need to do any different kind of initialization.
>
> Signed-off-by: Eugen Hristev <eugen.hristev at collabora.com>
Reviewed-by: Kever Yang <kever.yang at rock-chips.com>
Thanks,
- Kever
> ---
> drivers/clk/rockchip/clk_rk3588.c | 22 ++++++++++++++++++++++
> 1 file changed, 22 insertions(+)
>
> diff --git a/drivers/clk/rockchip/clk_rk3588.c b/drivers/clk/rockchip/clk_rk3588.c
> index 41e31b61a55b..c93c9c304d40 100644
> --- a/drivers/clk/rockchip/clk_rk3588.c
> +++ b/drivers/clk/rockchip/clk_rk3588.c
> @@ -1556,6 +1556,21 @@ static ulong rk3588_clk_get_rate(struct clk *clk)
> case TCLK_WDT0:
> rate = OSC_HZ;
> break;
> + case PCLK_PMU0_ROOT:
> + rate = 100000000;
> + break;
> + case HCLK_PMU_CM0_ROOT:
> + rate = 200000000;
> + break;
> + case ACLK_BUS_ROOT:
> + rate = 375000000;
> + break;
> + case CLK_150M_SRC:
> + rate = 150000000;
> + break;
> + case CLK_GPU:
> + rate = 200000000;
> + break;
> #ifndef CONFIG_SPL_BUILD
> case CLK_AUX16M_0:
> case CLK_AUX16M_1:
> @@ -1705,6 +1720,13 @@ static ulong rk3588_clk_set_rate(struct clk *clk, ulong rate)
> case TCLK_WDT0:
> ret = OSC_HZ;
> break;
> + case PCLK_PMU0_ROOT:
> + case CLK_GPU:
> + case HCLK_PMU_CM0_ROOT:
> + case ACLK_BUS_ROOT:
> + case CLK_150M_SRC:
> + ret = 0;
> + break;
> #ifndef CONFIG_SPL_BUILD
> case CLK_AUX16M_0:
> case CLK_AUX16M_1:
More information about the U-Boot
mailing list