Convert to use the rockchip_sysreset_bind() helper to bind the
rockchip_sysreset driver. Also add and use CRU base address constants
based on the clock-controller addresses used in the SoC device tree.

Signed-off-by: Jonas Karlman <[email protected]>
---
 .../arm/include/asm/arch-rockchip/cru_rv1126.h |  2 ++
 drivers/clk/rockchip/clk_rv1126.c              | 18 +++++-------------
 2 files changed, 7 insertions(+), 13 deletions(-)

diff --git a/arch/arm/include/asm/arch-rockchip/cru_rv1126.h 
b/arch/arm/include/asm/arch-rockchip/cru_rv1126.h
index ae273de31442..8f7bd1c544f9 100644
--- a/arch/arm/include/asm/arch-rockchip/cru_rv1126.h
+++ b/arch/arm/include/asm/arch-rockchip/cru_rv1126.h
@@ -150,8 +150,10 @@ struct cpu_rate_table {
        unsigned int pclk_div;
 };
 
+#define RV1126_PMU_CRU_BASE            0xff480000
 #define RV1126_PMU_MODE                        0x0
 #define RV1126_PMU_PLL_CON(x)          ((x) * 0x4 + 0x10)
+#define RV1126_CRU_BASE                        0xff490000
 #define RV1126_PLL_CON(x)              ((x) * 0x4)
 #define RV1126_MODE_CON                        0x90
 
diff --git a/drivers/clk/rockchip/clk_rv1126.c 
b/drivers/clk/rockchip/clk_rv1126.c
index 39920d34b75a..7c71d0b64ce4 100644
--- a/drivers/clk/rockchip/clk_rv1126.c
+++ b/drivers/clk/rockchip/clk_rv1126.c
@@ -1842,22 +1842,14 @@ static int rv1126_clk_of_to_plat(struct udevice *dev)
 static int rv1126_clk_bind(struct udevice *dev)
 {
        int ret;
-       struct udevice *sys_child;
-       struct sysreset_reg *priv;
 
        /* The reset driver does not have a device node, so bind it here */
-       ret = device_bind_driver(dev, "rockchip_sysreset", "sysreset",
-                                &sys_child);
-       if (ret) {
+       ret = rockchip_sysreset_bind(dev, RV1126_CRU_BASE,
+                                    offsetof(struct rv1126_cru, glb_rst_st),
+                                    offsetof(struct rv1126_cru, glb_srst_fst),
+                                    offsetof(struct rv1126_cru, glb_srst_snd));
+       if (ret)
                debug("Warning: No sysreset driver: ret=%d\n", ret);
-       } else {
-               priv = malloc(sizeof(struct sysreset_reg));
-               priv->glb_srst_fst_value = offsetof(struct rv1126_cru,
-                                                   glb_srst_fst);
-               priv->glb_srst_snd_value = offsetof(struct rv1126_cru,
-                                                   glb_srst_snd);
-               dev_set_priv(sys_child, priv);
-       }
 
 #if CONFIG_IS_ENABLED(RESET_ROCKCHIP)
        ret = offsetof(struct rv1126_cru, softrst_con[0]);
-- 
2.54.0

Reply via email to