提交 c877ef3a 编写于 作者: K Kever Yang 提交者: Philipp Tomsich

rockchip: rv1108: add ofdata_to_platdata() method for driver

Parse of data in dedicated api instead of in probe().

The clk_set_rate() may be called before the clk driver is probed,
after core support set default clock.
This patch fix system abort issue since:
f4fcba5c clk: implement clk_set_defaults()
Signed-off-by: NKever Yang <kever.yang@rock-chips.com>
Acked-by: NPhilipp Tomsich <philipp.tomsich@theobroma-sytems.com>
Reviewed-by: NPhilipp Tomsich <philipp.tomsich@theobroma-sytems.com>
上级 d2e938d9
...@@ -209,12 +209,19 @@ static void rkclk_init(struct rv1108_cru *cru) ...@@ -209,12 +209,19 @@ static void rkclk_init(struct rv1108_cru *cru)
printf("APLL: %d DPLL:%d GPLL:%d\n", apll, dpll, gpll); printf("APLL: %d DPLL:%d GPLL:%d\n", apll, dpll, gpll);
} }
static int rv1108_clk_probe(struct udevice *dev) static int rv1108_clk_ofdata_to_platdata(struct udevice *dev)
{ {
struct rv1108_clk_priv *priv = dev_get_priv(dev); struct rv1108_clk_priv *priv = dev_get_priv(dev);
priv->cru = dev_read_addr_ptr(dev); priv->cru = dev_read_addr_ptr(dev);
return 0;
}
static int rv1108_clk_probe(struct udevice *dev)
{
struct rv1108_clk_priv *priv = dev_get_priv(dev);
rkclk_init(priv->cru); rkclk_init(priv->cru);
return 0; return 0;
...@@ -260,6 +267,7 @@ U_BOOT_DRIVER(clk_rv1108) = { ...@@ -260,6 +267,7 @@ U_BOOT_DRIVER(clk_rv1108) = {
.id = UCLASS_CLK, .id = UCLASS_CLK,
.of_match = rv1108_clk_ids, .of_match = rv1108_clk_ids,
.priv_auto_alloc_size = sizeof(struct rv1108_clk_priv), .priv_auto_alloc_size = sizeof(struct rv1108_clk_priv),
.ofdata_to_platdata = rv1108_clk_ofdata_to_platdata,
.ops = &rv1108_clk_ops, .ops = &rv1108_clk_ops,
.bind = rv1108_clk_bind, .bind = rv1108_clk_bind,
.probe = rv1108_clk_probe, .probe = rv1108_clk_probe,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册