Message ID | 20230117061453.3723649-15-o.rempel@pengutronix.de (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | ARM: imx: make Ethernet refclock configurable | expand |
On 23-01-17 07:14:48, Oleksij Rempel wrote: > Add imx_obtain_fixed_of_clock() to optionally add clock not configured in > the devicetree. > > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Reviewed-by: Abel Vesa <abel.vesa@linaro.org> > --- > drivers/clk/imx/clk.c | 14 ++++++++++++++ > drivers/clk/imx/clk.h | 3 +++ > 2 files changed, 17 insertions(+) > > diff --git a/drivers/clk/imx/clk.c b/drivers/clk/imx/clk.c > index b636cc099d96..5f1f729008ee 100644 > --- a/drivers/clk/imx/clk.c > +++ b/drivers/clk/imx/clk.c > @@ -110,6 +110,20 @@ struct clk_hw *imx_obtain_fixed_clock_hw( > return __clk_get_hw(clk); > } > > +struct clk_hw *imx_obtain_fixed_of_clock(struct device_node *np, > + const char *name, unsigned long rate) > +{ > + struct clk *clk = of_clk_get_by_name(np, name); > + struct clk_hw *hw; > + > + if (IS_ERR(clk)) > + hw = imx_obtain_fixed_clock_hw(name, rate); > + else > + hw = __clk_get_hw(clk); > + > + return hw; > +} > + > struct clk_hw *imx_get_clk_hw_by_name(struct device_node *np, const char *name) > { > struct clk *clk; > diff --git a/drivers/clk/imx/clk.h b/drivers/clk/imx/clk.h > index 801213109697..f0a24cd54d1c 100644 > --- a/drivers/clk/imx/clk.h > +++ b/drivers/clk/imx/clk.h > @@ -288,6 +288,9 @@ struct clk * imx_obtain_fixed_clock( > struct clk_hw *imx_obtain_fixed_clock_hw( > const char *name, unsigned long rate); > > +struct clk_hw *imx_obtain_fixed_of_clock(struct device_node *np, > + const char *name, unsigned long rate); > + > struct clk_hw *imx_get_clk_hw_by_name(struct device_node *np, const char *name); > > struct clk_hw *imx_clk_hw_gate_exclusive(const char *name, const char *parent, > -- > 2.30.2 >
diff --git a/drivers/clk/imx/clk.c b/drivers/clk/imx/clk.c index b636cc099d96..5f1f729008ee 100644 --- a/drivers/clk/imx/clk.c +++ b/drivers/clk/imx/clk.c @@ -110,6 +110,20 @@ struct clk_hw *imx_obtain_fixed_clock_hw( return __clk_get_hw(clk); } +struct clk_hw *imx_obtain_fixed_of_clock(struct device_node *np, + const char *name, unsigned long rate) +{ + struct clk *clk = of_clk_get_by_name(np, name); + struct clk_hw *hw; + + if (IS_ERR(clk)) + hw = imx_obtain_fixed_clock_hw(name, rate); + else + hw = __clk_get_hw(clk); + + return hw; +} + struct clk_hw *imx_get_clk_hw_by_name(struct device_node *np, const char *name) { struct clk *clk; diff --git a/drivers/clk/imx/clk.h b/drivers/clk/imx/clk.h index 801213109697..f0a24cd54d1c 100644 --- a/drivers/clk/imx/clk.h +++ b/drivers/clk/imx/clk.h @@ -288,6 +288,9 @@ struct clk * imx_obtain_fixed_clock( struct clk_hw *imx_obtain_fixed_clock_hw( const char *name, unsigned long rate); +struct clk_hw *imx_obtain_fixed_of_clock(struct device_node *np, + const char *name, unsigned long rate); + struct clk_hw *imx_get_clk_hw_by_name(struct device_node *np, const char *name); struct clk_hw *imx_clk_hw_gate_exclusive(const char *name, const char *parent,
Add imx_obtain_fixed_of_clock() to optionally add clock not configured in the devicetree. Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> --- drivers/clk/imx/clk.c | 14 ++++++++++++++ drivers/clk/imx/clk.h | 3 +++ 2 files changed, 17 insertions(+)