Message ID | 1524540428-6650-3-git-send-email-kever.yang@rock-chips.com |
---|---|
State | Accepted |
Delegated to: | Philipp Tomsich |
Headers | show |
Series | [U-Boot,v2,1/3] rockchip: rk3036: add ofdata_to_platdata() method for driver | expand |
> On 24 Apr 2018, at 05:27, Kever Yang <kever.yang@rock-chips.com> wrote: > > 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: > f4fcba5 clk: implement clk_set_defaults() > > Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-sytems.com> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-sytems.com>
> 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: > f4fcba5 clk: implement clk_set_defaults() > > Signed-off-by: Kever Yang <kever.yang@rock-chips.com> > Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-sytems.com> > Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-sytems.com> > --- > > Changes in v2: > - Address comments from Simon > > drivers/clk/rockchip/clk_rv1108.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > Applied to u-boot-rockchip, thanks!
diff --git a/drivers/clk/rockchip/clk_rv1108.c b/drivers/clk/rockchip/clk_rv1108.c index 958fc78..42341a8 100644 --- a/drivers/clk/rockchip/clk_rv1108.c +++ b/drivers/clk/rockchip/clk_rv1108.c @@ -209,12 +209,19 @@ static void rkclk_init(struct rv1108_cru *cru) 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); 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); return 0; @@ -260,6 +267,7 @@ U_BOOT_DRIVER(clk_rv1108) = { .id = UCLASS_CLK, .of_match = rv1108_clk_ids, .priv_auto_alloc_size = sizeof(struct rv1108_clk_priv), + .ofdata_to_platdata = rv1108_clk_ofdata_to_platdata, .ops = &rv1108_clk_ops, .bind = rv1108_clk_bind, .probe = rv1108_clk_probe,
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: f4fcba5 clk: implement clk_set_defaults() Signed-off-by: Kever Yang <kever.yang@rock-chips.com> --- Changes in v2: - Address comments from Simon drivers/clk/rockchip/clk_rv1108.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)