[PATCH RFC 02/18] clk: rockchip: rk3568: Fix probe with OF_PLATDATA enabled
Pavel Golikov
paullo612 at ya.ru
Sun May 17 21:24:28 CEST 2026
Properly initialize cru address space reference when CONFIG_OF_PLATDATA
is enabled.
Signed-off-by: Pavel Golikov <paullo612 at ya.ru>
---
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
More information about the U-Boot
mailing list