[U-Boot] [PATCH 1/2] rockchip: clk: rv1108: remove duplicate reset init

Kever Yang kever.yang at rock-chips.com
Thu Nov 7 09:03:19 UTC 2019


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 <heiko at 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;
>   }




More information about the U-Boot mailing list