Properly initialize cru address space reference when CONFIG_OF_PLATDATA is enabled.
Signed-off-by: Pavel Golikov <[email protected]> --- drivers/clk/rockchip/clk_rk3568.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/clk/rockchip/clk_rk3568.c b/drivers/clk/rockchip/clk_rk3568.c index 67bc04b81c0..199bb51fa6f 100644 --- a/drivers/clk/rockchip/clk_rk3568.c +++ b/drivers/clk/rockchip/clk_rk3568.c @@ -9,6 +9,7 @@ #include <dm.h> #include <dt-structs.h> #include <errno.h> +#include <mapmem.h> #include <syscon.h> #include <asm/arch-rockchip/cru_rk3568.h> #include <asm/arch-rockchip/clock.h> @@ -2906,8 +2907,14 @@ static void rk3568_clk_init(struct rk3568_clk_priv *priv) static int rk3568_clk_probe(struct udevice *dev) { struct rk3568_clk_priv *priv = dev_get_priv(dev); +#if CONFIG_IS_ENABLED(OF_PLATDATA) + struct rk3568_clk_plat *plat = dev_get_plat(dev); +#endif int ret; +#if CONFIG_IS_ENABLED(OF_PLATDATA) + priv->cru = map_sysmem(plat->dtd.reg[0], plat->dtd.reg[1]); +#endif priv->grf = syscon_get_first_range(ROCKCHIP_SYSCON_GRF); if (IS_ERR(priv->grf)) return PTR_ERR(priv->grf); @@ -2926,9 +2933,11 @@ static int rk3568_clk_probe(struct udevice *dev) static int rk3568_clk_ofdata_to_platdata(struct udevice *dev) { - struct rk3568_clk_priv *priv = dev_get_priv(dev); + if (CONFIG_IS_ENABLED(OF_REAL)) { + struct rk3568_clk_priv *priv = dev_get_priv(dev); - priv->cru = dev_read_addr_ptr(dev); + priv->cru = dev_read_addr_ptr(dev); + } return 0; } -- 2.25.1

