RE: [RFC 05/11] clk: imx: pll14xx: Add the device as argument when registering
From: Peng Fan
Date: Fri Mar 13 2020 - 03:50:30 EST
> Subject: [RFC 05/11] clk: imx: pll14xx: Add the device as argument when
> registering
>
> In order to allow runtime PM, the device needs to be passed on to the register
> function. Audiomix clock controller, used on i.MX8MP and future platforms,
> registers a pll14xx and has runtime PM support.
>
> Signed-off-by: Abel Vesa <abel.vesa@xxxxxxx>
> ---
> drivers/clk/imx/clk-pll14xx.c | 6 +++---
> drivers/clk/imx/clk.h | 13 ++++++++++---
> 2 files changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/clk/imx/clk-pll14xx.c b/drivers/clk/imx/clk-pll14xx.c index
> a83bbbe..2fbc28c 100644
> --- a/drivers/clk/imx/clk-pll14xx.c
> +++ b/drivers/clk/imx/clk-pll14xx.c
> @@ -378,9 +378,9 @@ static const struct clk_ops clk_pll1443x_ops = {
> .set_rate = clk_pll1443x_set_rate,
> };
>
> -struct clk_hw *imx_clk_hw_pll14xx(const char *name, const char
> *parent_name,
> - void __iomem *base,
> - const struct imx_pll14xx_clk *pll_clk)
> +struct clk_hw *imx_dev_clk_hw_pll14xx(struct device *dev, const char
> *name,
> + const char *parent_name, void __iomem
> *base,
> + const struct imx_pll14xx_clk *pll_clk)
> {
Should the pointer dev be passed to clk_hw_register?
Thanks,
Peng.
> struct clk_pll14xx *pll;
> struct clk_hw *hw;
> diff --git a/drivers/clk/imx/clk.h b/drivers/clk/imx/clk.h index
> 51d6c26..cb28f06 100644
> --- a/drivers/clk/imx/clk.h
> +++ b/drivers/clk/imx/clk.h
> @@ -131,9 +131,9 @@ struct clk *imx_clk_pll14xx(const char *name, const
> char *parent_name, #define imx_clk_pll14xx(name, parent_name, base,
> pll_clk) \
> to_clk(imx_clk_hw_pll14xx(name, parent_name, base, pll_clk))
>
> -struct clk_hw *imx_clk_hw_pll14xx(const char *name, const char
> *parent_name,
> - void __iomem *base,
> - const struct imx_pll14xx_clk *pll_clk);
> +struct clk_hw *imx_dev_clk_hw_pll14xx(struct device *dev, const char
> *name,
> + const char *parent_name, void __iomem
> *base,
> + const struct imx_pll14xx_clk *pll_clk);
>
> struct clk_hw *imx_clk_hw_pllv1(enum imx_pllv1_type type, const char
> *name,
> const char *parent, void __iomem *base); @@ -244,6 +244,13 @@
> static inline struct clk *to_clk(struct clk_hw *hw)
> return hw->clk;
> }
>
> +static inline struct clk_hw *imx_clk_hw_pll14xx(const char *name, const
> char *parent_name,
> + void __iomem *base,
> + const struct imx_pll14xx_clk *pll_clk) {
> + return imx_dev_clk_hw_pll14xx(NULL, name, parent_name, base,
> pll_clk);
> +}
> +
> static inline struct clk_hw *imx_clk_hw_fixed(const char *name, int rate) {
> return clk_hw_register_fixed_rate(NULL, name, NULL, 0, rate);
> --
> 2.7.4