On 17/05/19 00:10, Lukasz Majewski wrote: > This commit adds the clk_get_parent() function, which is responsible > for getting the parent's struct clock pointer. > > U-boot's DM support for getting parent is different (the parent > relationship is in udevice) than the one in common clock framework (CCF) > in Linux. To obtain the pointer to struct clk of parent the > pdev->driver_data field is read. > > Signed-off-by: Lukasz Majewski <lu...@denx.de> > > --- > > Changes in v4: None > Changes in v3: > - New patch > > drivers/clk/clk-uclass.c | 15 +++++++++++++++ > include/clk.h | 9 +++++++++ > 2 files changed, 24 insertions(+) > > diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c > index 79b3b0494c..1a726dafaa 100644 > --- a/drivers/clk/clk-uclass.c > +++ b/drivers/clk/clk-uclass.c > @@ -379,6 +379,21 @@ ulong clk_get_rate(struct clk *clk) > return ops->get_rate(clk); > } > > +struct clk *clk_get_parent(struct clk *clk) > +{ > + struct udevice *pdev; > + struct clk *pclk; > + > + debug("%s(clk=%p)\n", __func__, clk); > + > + pdev = dev_get_parent(clk->dev); > + pclk = (struct clk *)dev_get_driver_data(pdev); > + if (!pclk) > + return ERR_PTR(-ENODEV); > + > + return pclk; > +} > + > ulong clk_set_rate(struct clk *clk, ulong rate) > { > const struct clk_ops *ops = clk_dev_ops(clk->dev); > diff --git a/include/clk.h b/include/clk.h > index 89dc64bfaf..0873b1e507 100644 > --- a/include/clk.h > +++ b/include/clk.h > @@ -259,6 +259,15 @@ int clk_free(struct clk *clk); > ulong clk_get_rate(struct clk *clk); > > /** > + * clk_get_parent() - Get current clock's parent. > + * > + * @clk: A clock struct that was previously successfully requested by > + * clk_request/get_by_*(). > + * @return pointer to parent's struct clk, or error code passed as pointer > + */ > +struct clk *clk_get_parent(struct clk *clk); > + > +/** > * clk_set_rate() - Set current clock rate. > * > * @clk: A clock struct that was previously successfully requested by >
Reviewed-by: Stefano Babic <sba...@denx.de> Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de ===================================================================== _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot