mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-18 21:21:37 +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);
|
||||
|
||||
/*
|
||||
* 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
|
||||
|
|
|
@ -347,6 +347,13 @@ static int rk3036_clk_bind(struct udevice *dev)
|
|||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -590,6 +590,13 @@ static int rk3188_clk_bind(struct udevice *dev)
|
|||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -402,6 +402,13 @@ static int rk322x_clk_bind(struct udevice *dev)
|
|||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -876,6 +876,13 @@ static int rk3288_clk_bind(struct udevice *dev)
|
|||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -614,6 +614,13 @@ static int rk3328_clk_bind(struct udevice *dev)
|
|||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -543,6 +543,13 @@ static int rk3368_clk_bind(struct udevice *dev)
|
|||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -1046,6 +1046,13 @@ static int rk3399_clk_bind(struct udevice *dev)
|
|||
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;
|
||||
}
|
||||
|
||||
|
@ -1221,6 +1228,19 @@ static int rk3399_pmuclk_ofdata_to_platdata(struct udevice *dev)
|
|||
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[] = {
|
||||
{ .compatible = "rockchip,rk3399-pmucru" },
|
||||
{ }
|
||||
|
@ -1234,6 +1254,7 @@ U_BOOT_DRIVER(rockchip_rk3399_pmuclk) = {
|
|||
.ofdata_to_platdata = rk3399_pmuclk_ofdata_to_platdata,
|
||||
.ops = &rk3399_pmuclk_ops,
|
||||
.probe = rk3399_pmuclk_probe,
|
||||
.bind = rk3399_pmuclk_bind,
|
||||
#if CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
.platdata_auto_alloc_size = sizeof(struct rk3399_pmuclk_plat),
|
||||
#endif
|
||||
|
|
|
@ -240,6 +240,13 @@ static int rv1108_clk_bind(struct udevice *dev)
|
|||
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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue