mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-19 05:31:32 +00:00
rockchip: clk: bind reset driver
Bind rockchip reset to clock-controller with rockchip_reset_bind(). Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com> Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
This commit is contained in:
parent
760188c1aa
commit
538f67c332
9 changed files with 80 additions and 0 deletions
|
@ -85,4 +85,14 @@ void rk3288_clk_configure_cpu(struct rk3288_cru *cru, struct rk3288_grf *grf);
|
||||||
|
|
||||||
int rockchip_get_clk(struct udevice **devp);
|
int rockchip_get_clk(struct udevice **devp);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* rockchip_reset_bind() - Bind soft reset device as child of clock device
|
||||||
|
*
|
||||||
|
* @pdev: clock udevice
|
||||||
|
* @reg_offset: the first offset in cru for softreset registers
|
||||||
|
* @reg_number: the reg numbers of softreset registers
|
||||||
|
* @return 0 success, or error value
|
||||||
|
*/
|
||||||
|
int rockchip_reset_bind(struct udevice *pdev, u32 reg_offset, u32 reg_number);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -347,6 +347,13 @@ static int rk3036_clk_bind(struct udevice *dev)
|
||||||
sys_child->priv = priv;
|
sys_child->priv = priv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP)
|
||||||
|
ret = offsetof(struct rk3036_cru, cru_softrst_con[0]);
|
||||||
|
ret = rockchip_reset_bind(dev, ret, 9);
|
||||||
|
if (ret)
|
||||||
|
debug("Warning: software reset driver bind faile\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -590,6 +590,13 @@ static int rk3188_clk_bind(struct udevice *dev)
|
||||||
sys_child->priv = priv;
|
sys_child->priv = priv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP)
|
||||||
|
ret = offsetof(struct rk3188_cru, cru_softrst_con[0]);
|
||||||
|
ret = rockchip_reset_bind(dev, ret, 9);
|
||||||
|
if (ret)
|
||||||
|
debug("Warning: software reset driver bind faile\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -402,6 +402,13 @@ static int rk322x_clk_bind(struct udevice *dev)
|
||||||
sys_child->priv = priv;
|
sys_child->priv = priv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP)
|
||||||
|
ret = offsetof(struct rk322x_cru, cru_softrst_con[0]);
|
||||||
|
ret = rockchip_reset_bind(dev, ret, 9);
|
||||||
|
if (ret)
|
||||||
|
debug("Warning: software reset driver bind faile\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -876,6 +876,13 @@ static int rk3288_clk_bind(struct udevice *dev)
|
||||||
sys_child->priv = priv;
|
sys_child->priv = priv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP)
|
||||||
|
ret = offsetof(struct rk3288_cru, cru_softrst_con[0]);
|
||||||
|
ret = rockchip_reset_bind(dev, ret, 12);
|
||||||
|
if (ret)
|
||||||
|
debug("Warning: software reset driver bind faile\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -614,6 +614,13 @@ static int rk3328_clk_bind(struct udevice *dev)
|
||||||
sys_child->priv = priv;
|
sys_child->priv = priv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP)
|
||||||
|
ret = offsetof(struct rk3328_cru, softrst_con[0]);
|
||||||
|
ret = rockchip_reset_bind(dev, ret, 12);
|
||||||
|
if (ret)
|
||||||
|
debug("Warning: software reset driver bind faile\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -543,6 +543,13 @@ static int rk3368_clk_bind(struct udevice *dev)
|
||||||
sys_child->priv = priv;
|
sys_child->priv = priv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP)
|
||||||
|
ret = offsetof(struct rk3368_cru, softrst_con[0]);
|
||||||
|
ret = rockchip_reset_bind(dev, ret, 15);
|
||||||
|
if (ret)
|
||||||
|
debug("Warning: software reset driver bind faile\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1046,6 +1046,13 @@ static int rk3399_clk_bind(struct udevice *dev)
|
||||||
sys_child->priv = priv;
|
sys_child->priv = priv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP)
|
||||||
|
ret = offsetof(struct rk3399_cru, softrst_con[0]);
|
||||||
|
ret = rockchip_reset_bind(dev, ret, 21);
|
||||||
|
if (ret)
|
||||||
|
debug("Warning: software reset driver bind faile\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1221,6 +1228,19 @@ static int rk3399_pmuclk_ofdata_to_platdata(struct udevice *dev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int rk3399_pmuclk_bind(struct udevice *dev)
|
||||||
|
{
|
||||||
|
#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP)
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = offsetof(struct rk3399_pmucru, pmucru_softrst_con[0]);
|
||||||
|
ret = rockchip_reset_bind(dev, ret, 2);
|
||||||
|
if (ret)
|
||||||
|
debug("Warning: software reset driver bind faile\n");
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static const struct udevice_id rk3399_pmuclk_ids[] = {
|
static const struct udevice_id rk3399_pmuclk_ids[] = {
|
||||||
{ .compatible = "rockchip,rk3399-pmucru" },
|
{ .compatible = "rockchip,rk3399-pmucru" },
|
||||||
{ }
|
{ }
|
||||||
|
@ -1234,6 +1254,7 @@ U_BOOT_DRIVER(rockchip_rk3399_pmuclk) = {
|
||||||
.ofdata_to_platdata = rk3399_pmuclk_ofdata_to_platdata,
|
.ofdata_to_platdata = rk3399_pmuclk_ofdata_to_platdata,
|
||||||
.ops = &rk3399_pmuclk_ops,
|
.ops = &rk3399_pmuclk_ops,
|
||||||
.probe = rk3399_pmuclk_probe,
|
.probe = rk3399_pmuclk_probe,
|
||||||
|
.bind = rk3399_pmuclk_bind,
|
||||||
#if CONFIG_IS_ENABLED(OF_PLATDATA)
|
#if CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||||
.platdata_auto_alloc_size = sizeof(struct rk3399_pmuclk_plat),
|
.platdata_auto_alloc_size = sizeof(struct rk3399_pmuclk_plat),
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -240,6 +240,13 @@ static int rv1108_clk_bind(struct udevice *dev)
|
||||||
sys_child->priv = priv;
|
sys_child->priv = priv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if CONFIG_IS_ENABLED(CONFIG_RESET_ROCKCHIP)
|
||||||
|
ret = offsetof(struct rk3368_cru, softrst_con[0]);
|
||||||
|
ret = rockchip_reset_bind(dev, ret, 13);
|
||||||
|
if (ret)
|
||||||
|
debug("Warning: software reset driver bind faile\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue