The RK3568 PMU PLL helpers lookup the PMU CRU udevice before accessing PMU PLL regs. This may trigger a full PMU clock driver probe to get the PMU CRU base address from the clock driver private data, something that can take several ms.
Change to use the RK3568 specific PMU CRU base address consant directly to simplify and remove the unneeded complexity of using runtime lookup in SoC specific code. Signed-off-by: Jonas Karlman <[email protected]> --- drivers/clk/rockchip/clk_rk3568.c | 34 +++++-------------------------- 1 file changed, 5 insertions(+), 29 deletions(-) diff --git a/drivers/clk/rockchip/clk_rk3568.c b/drivers/clk/rockchip/clk_rk3568.c index 5a05f1b4de00..eaf51728520a 100644 --- a/drivers/clk/rockchip/clk_rk3568.c +++ b/drivers/clk/rockchip/clk_rk3568.c @@ -94,44 +94,20 @@ static ulong rk3568_pmu_pll_set_rate(struct rk3568_clk_priv *priv, ulong pll_id, ulong rate) { - struct udevice *pmucru_dev; - struct rk3568_pmuclk_priv *pmu_priv; - int ret; - - ret = uclass_get_device_by_driver(UCLASS_CLK, - DM_DRIVER_GET(rockchip_rk3568_pmucru), - &pmucru_dev); - if (ret) { - printf("%s: could not find pmucru device\n", __func__); - return ret; - } - pmu_priv = dev_get_priv(pmucru_dev); - - rockchip_pll_set_rate(&rk3568_pll_clks[pll_id], - pmu_priv->pmucru, pll_id, rate); + static void * const pmu_cru_base = (void *)RK3568_PMU_CRU_BASE; - return 0; + return rockchip_pll_set_rate(&rk3568_pll_clks[pll_id], + pmu_cru_base, pll_id, rate); } #endif static ulong rk3568_pmu_pll_get_rate(struct rk3568_clk_priv *priv, ulong pll_id) { - struct udevice *pmucru_dev; - struct rk3568_pmuclk_priv *pmu_priv; - int ret; - - ret = uclass_get_device_by_driver(UCLASS_CLK, - DM_DRIVER_GET(rockchip_rk3568_pmucru), - &pmucru_dev); - if (ret) { - printf("%s: could not find pmucru device\n", __func__); - return ret; - } - pmu_priv = dev_get_priv(pmucru_dev); + static void * const pmu_cru_base = (void *)RK3568_PMU_CRU_BASE; return rockchip_pll_get_rate(&rk3568_pll_clks[pll_id], - pmu_priv->pmucru, pll_id); + pmu_cru_base, pll_id); } /* -- 2.54.0
