On Thu, Feb 23, 2023 at 11:12 AM Marek Vasut <marex@xxxxxxx> wrote: > > Add an API for clock gate that uses parent_data for the parent instead of > a string parent_name. > For the series: Tested-by: Adam Ford <aford173@xxxxxxxxx> #imx8mp-beacon-kit adam > Signed-off-by: Marek Vasut <marex@xxxxxxx> > --- > Cc: Abel Vesa <abelvesa@xxxxxxxxxx> > Cc: Fabio Estevam <festevam@xxxxxxxxx> > Cc: Jacky Bai <ping.bai@xxxxxxx> > Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@xxxxxxxxxx> > Cc: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > Cc: Lucas Stach <l.stach@xxxxxxxxxxxxxx> > Cc: Marco Felsch <m.felsch@xxxxxxxxxxxxxx> > Cc: Michael Turquette <mturquette@xxxxxxxxxxxx> > Cc: NXP Linux Team <linux-imx@xxxxxxx> > Cc: Peng Fan <peng.fan@xxxxxxx> > Cc: Pengutronix Kernel Team <kernel@xxxxxxxxxxxxxx> > Cc: Richard Cochran <richardcochran@xxxxxxxxx> > Cc: Rob Herring <robh+dt@xxxxxxxxxx> > Cc: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> > Cc: Shawn Guo <shawnguo@xxxxxxxxxx> > Cc: Stephen Boyd <sboyd@xxxxxxxxxx> > Cc: devicetree@xxxxxxxxxxxxxxx > Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > Cc: linux-clk@xxxxxxxxxxxxxxx > --- > V3: New patch > V4: - Rebase on next 20230223 > --- > 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.1 >