* [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 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 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-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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.