Message ID | 20230301163257.49005-1-marex@denx.de (mailing list archive) |
---|---|
State | Awaiting Upstream, archived |
Headers | show |
Series | [v7,1/5] clk: Introduce devm_clk_hw_register_gate_parent_data() | expand |
On Wed, Mar 01, 2023 at 05:32:53PM +0100, Marek Vasut wrote: > Add an API for clock gate that uses parent_data for the parent instead of > a string parent_name. > > Reviewed-by: Peng Fan <peng.fan@nxp.com> > Reviewed-by: Fabio Estevam <festevam@gmail.com> > Tested-by: Adam Ford <aford173@gmail.com> #imx8mp-beacon-kit > Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com> > Signed-off-by: Marek Vasut <marex@denx.de> Hi Marek, I've successfully tested this patch on a custom i.MX8MP board. Therefore please feel free to add: Tested-by: Richard Leitner <richard.leitner@skidata.com>
Hi Stephen, seems like we all agreed on this series. Can you have a look on this as well? Thanks, Marco On 23-03-01, Marek Vasut wrote: > Add an API for clock gate that uses parent_data for the parent instead of > a string parent_name. > > Reviewed-by: Peng Fan <peng.fan@nxp.com> > Reviewed-by: Fabio Estevam <festevam@gmail.com> > Tested-by: Adam Ford <aford173@gmail.com> #imx8mp-beacon-kit > Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com> > Signed-off-by: Marek Vasut <marex@denx.de> > --- > Cc: Abel Vesa <abelvesa@kernel.org> > Cc: Alexander Stein <alexander.stein@ew.tq-group.com> > Cc: Fabio Estevam <festevam@gmail.com> > Cc: Jacky Bai <ping.bai@nxp.com> > Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org> > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Cc: Luca Ceresoli <luca.ceresoli@bootlin.com> > Cc: Lucas Stach <l.stach@pengutronix.de> > Cc: Marco Felsch <m.felsch@pengutronix.de> > Cc: Michael Turquette <mturquette@baylibre.com> > Cc: NXP Linux Team <linux-imx@nxp.com> > Cc: Peng Fan <peng.fan@nxp.com> > Cc: Pengutronix Kernel Team <kernel@pengutronix.de> > Cc: Richard Cochran <richardcochran@gmail.com> > Cc: Rob Herring <robh+dt@kernel.org> > Cc: Sascha Hauer <s.hauer@pengutronix.de> > Cc: Shawn Guo <shawnguo@kernel.org> > Cc: Stephen Boyd <sboyd@kernel.org> > Cc: devicetree@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-clk@vger.kernel.org > --- > V3: New patch > V4: - Rebase on next 20230223 > V5: Add TB from Adam and Alexander > V6: Add RB from Fabio > V7: Add RB from Peng > --- > include/linux/clk-provider.h | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h > index 842e72a5348fa..92b7c794c6272 100644 > --- a/include/linux/clk-provider.h > +++ b/include/linux/clk-provider.h > @@ -608,6 +608,25 @@ struct clk *clk_register_gate(struct device *dev, const char *name, > __devm_clk_hw_register_gate((dev), NULL, (name), (parent_name), NULL, \ > NULL, (flags), (reg), (bit_idx), \ > (clk_gate_flags), (lock)) > + > +/** > + * devm_clk_hw_register_gate - register a gate clock with the clock framework > + * @dev: device that is registering this clock > + * @name: name of this clock > + * @parent_data: parent clk data > + * @flags: framework-specific flags for this clock > + * @reg: register address to control gating of this clock > + * @bit_idx: which bit in the register controls gating of this clock > + * @clk_gate_flags: gate-specific flags for this clock > + * @lock: shared register lock for this clock > + */ > +#define devm_clk_hw_register_gate_parent_data(dev, name, parent_data, flags, \ > + reg, bit_idx, clk_gate_flags, \ > + lock) \ > + __devm_clk_hw_register_gate((dev), NULL, (name), NULL, NULL, \ > + (parent_data), (flags), (reg), (bit_idx), \ > + (clk_gate_flags), (lock)) > + > void clk_unregister_gate(struct clk *clk); > void clk_hw_unregister_gate(struct clk_hw *hw); > int clk_gate_is_enabled(struct clk_hw *hw); > -- > 2.39.2 > >
Quoting Marek Vasut (2023-03-01 08:32:53) > Add an API for clock gate that uses parent_data for the parent instead of > a string parent_name. > > Reviewed-by: Peng Fan <peng.fan@nxp.com> > Reviewed-by: Fabio Estevam <festevam@gmail.com> > Tested-by: Adam Ford <aford173@gmail.com> #imx8mp-beacon-kit > Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com> > Signed-off-by: Marek Vasut <marex@denx.de> > --- Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Hi Stephen, Abel Would you merge this patchset from Marek for next tree? Thanks, Peng. > Subject: [PATCH v7 1/5] clk: Introduce > devm_clk_hw_register_gate_parent_data() > > Add an API for clock gate that uses parent_data for the parent instead of a > string parent_name. > > Reviewed-by: Peng Fan <peng.fan@nxp.com> > Reviewed-by: Fabio Estevam <festevam@gmail.com> > Tested-by: Adam Ford <aford173@gmail.com> #imx8mp-beacon-kit > Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com> > Signed-off-by: Marek Vasut <marex@denx.de> > --- > Cc: Abel Vesa <abelvesa@kernel.org> > Cc: Alexander Stein <alexander.stein@ew.tq-group.com> > Cc: Fabio Estevam <festevam@gmail.com> > Cc: Jacky Bai <ping.bai@nxp.com> > Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org> > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Cc: Luca Ceresoli <luca.ceresoli@bootlin.com> > Cc: Lucas Stach <l.stach@pengutronix.de> > Cc: Marco Felsch <m.felsch@pengutronix.de> > Cc: Michael Turquette <mturquette@baylibre.com> > Cc: NXP Linux Team <linux-imx@nxp.com> > Cc: Peng Fan <peng.fan@nxp.com> > Cc: Pengutronix Kernel Team <kernel@pengutronix.de> > Cc: Richard Cochran <richardcochran@gmail.com> > Cc: Rob Herring <robh+dt@kernel.org> > Cc: Sascha Hauer <s.hauer@pengutronix.de> > Cc: Shawn Guo <shawnguo@kernel.org> > Cc: Stephen Boyd <sboyd@kernel.org> > Cc: devicetree@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-clk@vger.kernel.org > --- > V3: New patch > V4: - Rebase on next 20230223 > V5: Add TB from Adam and Alexander > V6: Add RB from Fabio > V7: Add RB from Peng > --- > include/linux/clk-provider.h | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h index > 842e72a5348fa..92b7c794c6272 100644 > --- a/include/linux/clk-provider.h > +++ b/include/linux/clk-provider.h > @@ -608,6 +608,25 @@ struct clk *clk_register_gate(struct device *dev, > const char *name, > __devm_clk_hw_register_gate((dev), NULL, (name), (parent_name), > NULL, \ > NULL, (flags), (reg), (bit_idx), \ > (clk_gate_flags), (lock)) > + > +/** > + * devm_clk_hw_register_gate - register a gate clock with the clock > +framework > + * @dev: device that is registering this clock > + * @name: name of this clock > + * @parent_data: parent clk data > + * @flags: framework-specific flags for this clock > + * @reg: register address to control gating of this clock > + * @bit_idx: which bit in the register controls gating of this clock > + * @clk_gate_flags: gate-specific flags for this clock > + * @lock: shared register lock for this clock */ #define > +devm_clk_hw_register_gate_parent_data(dev, name, parent_data, flags, \ > + reg, bit_idx, clk_gate_flags, \ > + lock) \ > + __devm_clk_hw_register_gate((dev), NULL, (name), NULL, NULL, > \ > + (parent_data), (flags), (reg), (bit_idx), \ > + (clk_gate_flags), (lock)) > + > void clk_unregister_gate(struct clk *clk); void > clk_hw_unregister_gate(struct clk_hw *hw); int clk_gate_is_enabled(struct > clk_hw *hw); > -- > 2.39.2
On 23-03-01 17:32:53, Marek Vasut wrote: > Add an API for clock gate that uses parent_data for the parent instead of > a string parent_name. > > Reviewed-by: Peng Fan <peng.fan@nxp.com> > Reviewed-by: Fabio Estevam <festevam@gmail.com> > Tested-by: Adam Ford <aford173@gmail.com> #imx8mp-beacon-kit > Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com> > Signed-off-by: Marek Vasut <marex@denx.de> > --- Applied, thanks! [1/5] clk: Introduce devm_clk_hw_register_gate_parent_data() commit: 27fc5ec673b527dbc2f44787246a39c5ecc01de5 [2/5] clk: imx: imx8mp: Add audiomix block control commit: 6cd95f7b151cdd7852ed9f212faeea8f98ecba10 [3/5] dt-bindings: clock: imx8mp: Add audiomix block control commit: 95a0aa7bb10e79cfbe8a1dc4b993d21dd58c253f Best regards, -- Abel Vesa <abel.vesa@linaro.org> > Cc: Abel Vesa <abelvesa@kernel.org> > Cc: Alexander Stein <alexander.stein@ew.tq-group.com> > Cc: Fabio Estevam <festevam@gmail.com> > Cc: Jacky Bai <ping.bai@nxp.com> > Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org> > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Cc: Luca Ceresoli <luca.ceresoli@bootlin.com> > Cc: Lucas Stach <l.stach@pengutronix.de> > Cc: Marco Felsch <m.felsch@pengutronix.de> > Cc: Michael Turquette <mturquette@baylibre.com> > Cc: NXP Linux Team <linux-imx@nxp.com> > Cc: Peng Fan <peng.fan@nxp.com> > Cc: Pengutronix Kernel Team <kernel@pengutronix.de> > Cc: Richard Cochran <richardcochran@gmail.com> > Cc: Rob Herring <robh+dt@kernel.org> > Cc: Sascha Hauer <s.hauer@pengutronix.de> > Cc: Shawn Guo <shawnguo@kernel.org> > Cc: Stephen Boyd <sboyd@kernel.org> > Cc: devicetree@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-clk@vger.kernel.org > --- > V3: New patch > V4: - Rebase on next 20230223 > V5: Add TB from Adam and Alexander > V6: Add RB from Fabio > V7: Add RB from Peng > --- > include/linux/clk-provider.h | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h > index 842e72a5348fa..92b7c794c6272 100644 > --- a/include/linux/clk-provider.h > +++ b/include/linux/clk-provider.h > @@ -608,6 +608,25 @@ struct clk *clk_register_gate(struct device *dev, const char *name, > __devm_clk_hw_register_gate((dev), NULL, (name), (parent_name), NULL, \ > NULL, (flags), (reg), (bit_idx), \ > (clk_gate_flags), (lock)) > + > +/** > + * devm_clk_hw_register_gate - register a gate clock with the clock framework > + * @dev: device that is registering this clock > + * @name: name of this clock > + * @parent_data: parent clk data > + * @flags: framework-specific flags for this clock > + * @reg: register address to control gating of this clock > + * @bit_idx: which bit in the register controls gating of this clock > + * @clk_gate_flags: gate-specific flags for this clock > + * @lock: shared register lock for this clock > + */ > +#define devm_clk_hw_register_gate_parent_data(dev, name, parent_data, flags, \ > + reg, bit_idx, clk_gate_flags, \ > + lock) \ > + __devm_clk_hw_register_gate((dev), NULL, (name), NULL, NULL, \ > + (parent_data), (flags), (reg), (bit_idx), \ > + (clk_gate_flags), (lock)) > + > void clk_unregister_gate(struct clk *clk); > void clk_hw_unregister_gate(struct clk_hw *hw); > int clk_gate_is_enabled(struct clk_hw *hw); > -- > 2.39.2 >
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h index 842e72a5348fa..92b7c794c6272 100644 --- a/include/linux/clk-provider.h +++ b/include/linux/clk-provider.h @@ -608,6 +608,25 @@ struct clk *clk_register_gate(struct device *dev, const char *name, __devm_clk_hw_register_gate((dev), NULL, (name), (parent_name), NULL, \ NULL, (flags), (reg), (bit_idx), \ (clk_gate_flags), (lock)) + +/** + * devm_clk_hw_register_gate - register a gate clock with the clock framework + * @dev: device that is registering this clock + * @name: name of this clock + * @parent_data: parent clk data + * @flags: framework-specific flags for this clock + * @reg: register address to control gating of this clock + * @bit_idx: which bit in the register controls gating of this clock + * @clk_gate_flags: gate-specific flags for this clock + * @lock: shared register lock for this clock + */ +#define devm_clk_hw_register_gate_parent_data(dev, name, parent_data, flags, \ + reg, bit_idx, clk_gate_flags, \ + lock) \ + __devm_clk_hw_register_gate((dev), NULL, (name), NULL, NULL, \ + (parent_data), (flags), (reg), (bit_idx), \ + (clk_gate_flags), (lock)) + void clk_unregister_gate(struct clk *clk); void clk_hw_unregister_gate(struct clk_hw *hw); int clk_gate_is_enabled(struct clk_hw *hw);