* [U-Boot] [PATCH 1/2] rockchip: clk: rv1108: remove duplicate reset init @ 2019-10-23 17:45 Heiko Stuebner 2019-10-23 17:45 ` [U-Boot] [PATCH 2/2] rockchip: clk: fix wrong CONFIG_IS_ENABLED handling Heiko Stuebner 2019-11-07 9:03 ` [U-Boot] [PATCH 1/2] rockchip: clk: rv1108: remove duplicate reset init Kever Yang 0 siblings, 2 replies; 6+ messages in thread From: Heiko Stuebner @ 2019-10-23 17:45 UTC (permalink / raw) To: u-boot 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@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); - 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; } -- 2.23.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH 2/2] rockchip: clk: fix wrong CONFIG_IS_ENABLED handling 2019-10-23 17:45 [U-Boot] [PATCH 1/2] rockchip: clk: rv1108: remove duplicate reset init Heiko Stuebner @ 2019-10-23 17:45 ` Heiko Stuebner 2019-11-07 9:04 ` Kever Yang 2019-11-07 9:03 ` [U-Boot] [PATCH 1/2] rockchip: clk: rv1108: remove duplicate reset init Kever Yang 1 sibling, 1 reply; 6+ messages in thread From: Heiko Stuebner @ 2019-10-23 17:45 UTC (permalink / raw) To: u-boot CONFIG_IS_ENABLED() needs the config name like used in Kconfig, so without the leading CONFIG_. The clock drivers all wrongly check for CONFIG_RESET_ROCKCHIP, fix that Signed-off-by: Heiko Stuebner <heiko@sntech.de> --- drivers/clk/rockchip/clk_rk3036.c | 2 +- drivers/clk/rockchip/clk_rk3188.c | 2 +- drivers/clk/rockchip/clk_rk322x.c | 2 +- drivers/clk/rockchip/clk_rk3288.c | 2 +- drivers/clk/rockchip/clk_rk3328.c | 2 +- drivers/clk/rockchip/clk_rk3368.c | 2 +- drivers/clk/rockchip/clk_rk3399.c | 2 +- drivers/clk/rockchip/clk_rv1108.c | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/clk/rockchip/clk_rk3036.c b/drivers/clk/rockchip/clk_rk3036.c index 9bf9cedaf8..6d5ae3d003 100644 --- a/drivers/clk/rockchip/clk_rk3036.c +++ b/drivers/clk/rockchip/clk_rk3036.c @@ -352,7 +352,7 @@ static int rk3036_clk_bind(struct udevice *dev) sys_child->priv = priv; } -#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP) +#if CONFIG_IS_ENABLED(RESET_ROCKCHIP) ret = offsetof(struct rk3036_cru, cru_softrst_con[0]); ret = rockchip_reset_bind(dev, ret, 9); if (ret) diff --git a/drivers/clk/rockchip/clk_rk3188.c b/drivers/clk/rockchip/clk_rk3188.c index dda686cfb3..3ea9a81b32 100644 --- a/drivers/clk/rockchip/clk_rk3188.c +++ b/drivers/clk/rockchip/clk_rk3188.c @@ -590,7 +590,7 @@ static int rk3188_clk_bind(struct udevice *dev) sys_child->priv = priv; } -#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP) +#if CONFIG_IS_ENABLED(RESET_ROCKCHIP) ret = offsetof(struct rk3188_cru, cru_softrst_con[0]); ret = rockchip_reset_bind(dev, ret, 9); if (ret) diff --git a/drivers/clk/rockchip/clk_rk322x.c b/drivers/clk/rockchip/clk_rk322x.c index f09730c91b..6e8a164d62 100644 --- a/drivers/clk/rockchip/clk_rk322x.c +++ b/drivers/clk/rockchip/clk_rk322x.c @@ -508,7 +508,7 @@ static int rk322x_clk_bind(struct udevice *dev) sys_child->priv = priv; } -#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP) +#if CONFIG_IS_ENABLED(RESET_ROCKCHIP) ret = offsetof(struct rk322x_cru, cru_softrst_con[0]); ret = rockchip_reset_bind(dev, ret, 9); if (ret) diff --git a/drivers/clk/rockchip/clk_rk3288.c b/drivers/clk/rockchip/clk_rk3288.c index 0122381633..85d1b67e43 100644 --- a/drivers/clk/rockchip/clk_rk3288.c +++ b/drivers/clk/rockchip/clk_rk3288.c @@ -1015,7 +1015,7 @@ static int rk3288_clk_bind(struct udevice *dev) sys_child->priv = priv; } -#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP) +#if CONFIG_IS_ENABLED(RESET_ROCKCHIP) ret = offsetof(struct rk3288_cru, cru_softrst_con[0]); ret = rockchip_reset_bind(dev, ret, 12); if (ret) diff --git a/drivers/clk/rockchip/clk_rk3328.c b/drivers/clk/rockchip/clk_rk3328.c index 4331048a87..e700a1bc25 100644 --- a/drivers/clk/rockchip/clk_rk3328.c +++ b/drivers/clk/rockchip/clk_rk3328.c @@ -791,7 +791,7 @@ static int rk3328_clk_bind(struct udevice *dev) sys_child->priv = priv; } -#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP) +#if CONFIG_IS_ENABLED(RESET_ROCKCHIP) ret = offsetof(struct rk3328_cru, softrst_con[0]); ret = rockchip_reset_bind(dev, ret, 12); if (ret) diff --git a/drivers/clk/rockchip/clk_rk3368.c b/drivers/clk/rockchip/clk_rk3368.c index c1a867b2ed..b51d529ade 100644 --- a/drivers/clk/rockchip/clk_rk3368.c +++ b/drivers/clk/rockchip/clk_rk3368.c @@ -620,7 +620,7 @@ static int rk3368_clk_bind(struct udevice *dev) sys_child->priv = priv; } -#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP) +#if CONFIG_IS_ENABLED(RESET_ROCKCHIP) ret = offsetof(struct rk3368_cru, softrst_con[0]); ret = rockchip_reset_bind(dev, ret, 15); if (ret) diff --git a/drivers/clk/rockchip/clk_rk3399.c b/drivers/clk/rockchip/clk_rk3399.c index a273bd1beb..9020a9f202 100644 --- a/drivers/clk/rockchip/clk_rk3399.c +++ b/drivers/clk/rockchip/clk_rk3399.c @@ -1195,7 +1195,7 @@ static int rk3399_clk_bind(struct udevice *dev) sys_child->priv = priv; } -#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP) +#if CONFIG_IS_ENABLED(RESET_ROCKCHIP) ret = offsetof(struct rk3399_cru, softrst_con[0]); ret = rockchip_reset_bind(dev, ret, 21); if (ret) diff --git a/drivers/clk/rockchip/clk_rv1108.c b/drivers/clk/rockchip/clk_rv1108.c index 5dc31e1eb0..ca2e25a580 100644 --- a/drivers/clk/rockchip/clk_rv1108.c +++ b/drivers/clk/rockchip/clk_rv1108.c @@ -697,7 +697,7 @@ static int rv1108_clk_bind(struct udevice *dev) sys_child->priv = priv; } -#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP) +#if CONFIG_IS_ENABLED(RESET_ROCKCHIP) ret = offsetof(struct rv1108_cru, softrst_con[0]); ret = rockchip_reset_bind(dev, ret, 13); if (ret) -- 2.23.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH 2/2] rockchip: clk: fix wrong CONFIG_IS_ENABLED handling 2019-10-23 17:45 ` [U-Boot] [PATCH 2/2] rockchip: clk: fix wrong CONFIG_IS_ENABLED handling Heiko Stuebner @ 2019-11-07 9:04 ` Kever Yang 0 siblings, 0 replies; 6+ messages in thread From: Kever Yang @ 2019-11-07 9:04 UTC (permalink / raw) To: u-boot On 2019/10/24 上午1:45, Heiko Stuebner wrote: > CONFIG_IS_ENABLED() needs the config name like used in Kconfig, so > without the leading CONFIG_. The clock drivers all wrongly check for > CONFIG_RESET_ROCKCHIP, fix that > > Signed-off-by: Heiko Stuebner <heiko@sntech.de> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Thanks, - Kever > --- > drivers/clk/rockchip/clk_rk3036.c | 2 +- > drivers/clk/rockchip/clk_rk3188.c | 2 +- > drivers/clk/rockchip/clk_rk322x.c | 2 +- > drivers/clk/rockchip/clk_rk3288.c | 2 +- > drivers/clk/rockchip/clk_rk3328.c | 2 +- > drivers/clk/rockchip/clk_rk3368.c | 2 +- > drivers/clk/rockchip/clk_rk3399.c | 2 +- > drivers/clk/rockchip/clk_rv1108.c | 2 +- > 8 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/drivers/clk/rockchip/clk_rk3036.c b/drivers/clk/rockchip/clk_rk3036.c > index 9bf9cedaf8..6d5ae3d003 100644 > --- a/drivers/clk/rockchip/clk_rk3036.c > +++ b/drivers/clk/rockchip/clk_rk3036.c > @@ -352,7 +352,7 @@ static int rk3036_clk_bind(struct udevice *dev) > sys_child->priv = priv; > } > > -#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP) > +#if CONFIG_IS_ENABLED(RESET_ROCKCHIP) > ret = offsetof(struct rk3036_cru, cru_softrst_con[0]); > ret = rockchip_reset_bind(dev, ret, 9); > if (ret) > diff --git a/drivers/clk/rockchip/clk_rk3188.c b/drivers/clk/rockchip/clk_rk3188.c > index dda686cfb3..3ea9a81b32 100644 > --- a/drivers/clk/rockchip/clk_rk3188.c > +++ b/drivers/clk/rockchip/clk_rk3188.c > @@ -590,7 +590,7 @@ static int rk3188_clk_bind(struct udevice *dev) > sys_child->priv = priv; > } > > -#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP) > +#if CONFIG_IS_ENABLED(RESET_ROCKCHIP) > ret = offsetof(struct rk3188_cru, cru_softrst_con[0]); > ret = rockchip_reset_bind(dev, ret, 9); > if (ret) > diff --git a/drivers/clk/rockchip/clk_rk322x.c b/drivers/clk/rockchip/clk_rk322x.c > index f09730c91b..6e8a164d62 100644 > --- a/drivers/clk/rockchip/clk_rk322x.c > +++ b/drivers/clk/rockchip/clk_rk322x.c > @@ -508,7 +508,7 @@ static int rk322x_clk_bind(struct udevice *dev) > sys_child->priv = priv; > } > > -#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP) > +#if CONFIG_IS_ENABLED(RESET_ROCKCHIP) > ret = offsetof(struct rk322x_cru, cru_softrst_con[0]); > ret = rockchip_reset_bind(dev, ret, 9); > if (ret) > diff --git a/drivers/clk/rockchip/clk_rk3288.c b/drivers/clk/rockchip/clk_rk3288.c > index 0122381633..85d1b67e43 100644 > --- a/drivers/clk/rockchip/clk_rk3288.c > +++ b/drivers/clk/rockchip/clk_rk3288.c > @@ -1015,7 +1015,7 @@ static int rk3288_clk_bind(struct udevice *dev) > sys_child->priv = priv; > } > > -#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP) > +#if CONFIG_IS_ENABLED(RESET_ROCKCHIP) > ret = offsetof(struct rk3288_cru, cru_softrst_con[0]); > ret = rockchip_reset_bind(dev, ret, 12); > if (ret) > diff --git a/drivers/clk/rockchip/clk_rk3328.c b/drivers/clk/rockchip/clk_rk3328.c > index 4331048a87..e700a1bc25 100644 > --- a/drivers/clk/rockchip/clk_rk3328.c > +++ b/drivers/clk/rockchip/clk_rk3328.c > @@ -791,7 +791,7 @@ static int rk3328_clk_bind(struct udevice *dev) > sys_child->priv = priv; > } > > -#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP) > +#if CONFIG_IS_ENABLED(RESET_ROCKCHIP) > ret = offsetof(struct rk3328_cru, softrst_con[0]); > ret = rockchip_reset_bind(dev, ret, 12); > if (ret) > diff --git a/drivers/clk/rockchip/clk_rk3368.c b/drivers/clk/rockchip/clk_rk3368.c > index c1a867b2ed..b51d529ade 100644 > --- a/drivers/clk/rockchip/clk_rk3368.c > +++ b/drivers/clk/rockchip/clk_rk3368.c > @@ -620,7 +620,7 @@ static int rk3368_clk_bind(struct udevice *dev) > sys_child->priv = priv; > } > > -#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP) > +#if CONFIG_IS_ENABLED(RESET_ROCKCHIP) > ret = offsetof(struct rk3368_cru, softrst_con[0]); > ret = rockchip_reset_bind(dev, ret, 15); > if (ret) > diff --git a/drivers/clk/rockchip/clk_rk3399.c b/drivers/clk/rockchip/clk_rk3399.c > index a273bd1beb..9020a9f202 100644 > --- a/drivers/clk/rockchip/clk_rk3399.c > +++ b/drivers/clk/rockchip/clk_rk3399.c > @@ -1195,7 +1195,7 @@ static int rk3399_clk_bind(struct udevice *dev) > sys_child->priv = priv; > } > > -#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP) > +#if CONFIG_IS_ENABLED(RESET_ROCKCHIP) > ret = offsetof(struct rk3399_cru, softrst_con[0]); > ret = rockchip_reset_bind(dev, ret, 21); > if (ret) > diff --git a/drivers/clk/rockchip/clk_rv1108.c b/drivers/clk/rockchip/clk_rv1108.c > index 5dc31e1eb0..ca2e25a580 100644 > --- a/drivers/clk/rockchip/clk_rv1108.c > +++ b/drivers/clk/rockchip/clk_rv1108.c > @@ -697,7 +697,7 @@ static int rv1108_clk_bind(struct udevice *dev) > sys_child->priv = priv; > } > > -#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP) > +#if CONFIG_IS_ENABLED(RESET_ROCKCHIP) > ret = offsetof(struct rv1108_cru, softrst_con[0]); > ret = rockchip_reset_bind(dev, ret, 13); > if (ret) ^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH 1/2] rockchip: clk: rv1108: remove duplicate reset init 2019-10-23 17:45 [U-Boot] [PATCH 1/2] rockchip: clk: rv1108: remove duplicate reset init Heiko Stuebner 2019-10-23 17:45 ` [U-Boot] [PATCH 2/2] rockchip: clk: fix wrong CONFIG_IS_ENABLED handling Heiko Stuebner @ 2019-11-07 9:03 ` Kever Yang 2019-11-07 9:13 ` Heiko Stübner 1 sibling, 1 reply; 6+ messages in thread From: Kever Yang @ 2019-11-07 9:03 UTC (permalink / raw) To: u-boot 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@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; > } ^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH 1/2] rockchip: clk: rv1108: remove duplicate reset init 2019-11-07 9:03 ` [U-Boot] [PATCH 1/2] rockchip: clk: rv1108: remove duplicate reset init Kever Yang @ 2019-11-07 9:13 ` Heiko Stübner 2019-11-08 23:11 ` Heiko Stuebner 0 siblings, 1 reply; 6+ messages in thread From: Heiko Stübner @ 2019-11-07 9:13 UTC (permalink / raw) To: u-boot Hi Kever, Am Donnerstag, 7. November 2019, 10:03:19 CET schrieb Kever Yang: > 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@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. While there is a sysreset driver, it seems the rv1108 only did init the softrst code here and not the sysreset at all. So rockchip_reset_bind really only does the same as the remove part of code. What I did see was that struct softreset_reg still is defined in the rockchip clock.h and after this patch no-one is using at all anymore. The rockchip_reset driver uses a different struct altogether it seems. Adding an appropriate sysreset driver for rv1108 should likely be a separate patch though. Heiko > > - 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; > > } > > > ^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH 1/2] rockchip: clk: rv1108: remove duplicate reset init 2019-11-07 9:13 ` Heiko Stübner @ 2019-11-08 23:11 ` Heiko Stuebner 0 siblings, 0 replies; 6+ messages in thread From: Heiko Stuebner @ 2019-11-08 23:11 UTC (permalink / raw) To: u-boot Hi Kever, Am Donnerstag, 7. November 2019, 10:13:02 CET schrieb Heiko Stübner: > Am Donnerstag, 7. November 2019, 10:03:19 CET schrieb Kever Yang: > > 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@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. > > While there is a sysreset driver, it seems the rv1108 only did init > the softrst code here and not the sysreset at all. > > So rockchip_reset_bind really only does the same as the remove > part of code. What I did see was that struct softreset_reg > still is defined in the rockchip clock.h and after this patch no-one > is using at all anymore. The rockchip_reset driver uses a different > struct altogether it seems. > > Adding an appropriate sysreset driver for rv1108 > should likely be a separate patch though. I just sent a v2, dropping the unused softreset_reg struct as well. When reviewing please take into account, the rv1108 had the following situation before: -registration of sysreset - registration of old softreset - broken because that driver code is gone - registration of new softreset - broken because of the CONFIG_* from patch2 and also because it was using the wrong struct (rk3368 instead of rv1108) now after the patch (in v2), we have the expected - registration of sysreset - registration of new softreset with correct cru struct Heiko ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-11-08 23:11 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-10-23 17:45 [U-Boot] [PATCH 1/2] rockchip: clk: rv1108: remove duplicate reset init Heiko Stuebner 2019-10-23 17:45 ` [U-Boot] [PATCH 2/2] rockchip: clk: fix wrong CONFIG_IS_ENABLED handling Heiko Stuebner 2019-11-07 9:04 ` Kever Yang 2019-11-07 9:03 ` [U-Boot] [PATCH 1/2] rockchip: clk: rv1108: remove duplicate reset init Kever Yang 2019-11-07 9:13 ` Heiko Stübner 2019-11-08 23:11 ` Heiko Stuebner
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox