Heiko,

On 2019/10/24 上午1:45, Heiko Stuebner wrote:
rockchip_reset_bind() already does the needed init for the reset
registers, only referenced the wrong cru structure.

So we can get rid of the open-coded reset init and just fix
the correct cru reference.

Signed-off-by: Heiko Stuebner <he...@sntech.de>
---
  drivers/clk/rockchip/clk_rv1108.c | 13 +------------
  1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/drivers/clk/rockchip/clk_rv1108.c 
b/drivers/clk/rockchip/clk_rv1108.c
index 3ebb007fab..5dc31e1eb0 100644
--- a/drivers/clk/rockchip/clk_rv1108.c
+++ b/drivers/clk/rockchip/clk_rv1108.c
@@ -698,22 +698,11 @@ static int rv1108_clk_bind(struct udevice *dev)
        }
#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP)
-       ret = offsetof(struct rk3368_cru, softrst_con[0]);
+       ret = offsetof(struct rv1108_cru, softrst_con[0]);
        ret = rockchip_reset_bind(dev, ret, 13);
        if (ret)
                debug("Warning: software reset driver bind faile\n");
  #endif
-       ret = device_bind_driver_to_node(dev, "rockchip_reset", "reset",
-                                        dev_ofnode(dev), &sf_child);

You can't just remove this blob of code, for there is a 'sysreset' driver and a 'reset' driver, they are

different, so you should fix this part to be available 'sysreset' driver so that the software can reset the SoC.


Thanks,

- Kever

-       if (ret) {
-               debug("Warning: No rockchip reset driver: ret=%d\n", ret);
-       } else {
-               sf_priv = malloc(sizeof(struct softreset_reg));
-               sf_priv->sf_reset_offset = offsetof(struct rv1108_cru,
-                                                   softrst_con[0]);
-               sf_priv->sf_reset_num = 13;
-               sf_child->priv = sf_priv;
-       }
return 0;
  }


_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to