Skip to content

Commit 0c125f8

Browse files
Marek Vasutbebarino
authored andcommitted
clk: fixed-factor: Introduce devm_clk_hw_register_fixed_factor_index()
Add an API for a fixed factor clk that uses an index for the parent instead of a string name. This allows us to move drivers away from the string based method of describing parents and use the DT/firmware based method instead. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Michael Turquette <mturquette@baylibre.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: Stephen Boyd <sboyd@kernel.org> Cc: devicetree@vger.kernel.org Link: https://lore.kernel.org/r/20220226040723.143705-2-marex@denx.de [sboyd@kernel.org: Expose a new API instead of internal function] Signed-off-by: Stephen Boyd <sboyd@kernel.org>
1 parent 26c1bc6 commit 0c125f8

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

drivers/clk/clk-fixed-factor.c

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,28 @@ __clk_hw_register_fixed_factor(struct device *dev, struct device_node *np,
131131
return hw;
132132
}
133133

134+
/**
135+
* devm_clk_hw_register_fixed_factor_index - Register a fixed factor clock with
136+
* parent from DT index
137+
* @dev: device that is registering this clock
138+
* @name: name of this clock
139+
* @index: index of phandle in @dev 'clocks' property
140+
* @flags: fixed factor flags
141+
* @mult: multiplier
142+
* @div: divider
143+
*
144+
* Return: Pointer to fixed factor clk_hw structure that was registered or
145+
* an error pointer.
146+
*/
147+
struct clk_hw *devm_clk_hw_register_fixed_factor_index(struct device *dev,
148+
const char *name, unsigned int index, unsigned long flags,
149+
unsigned int mult, unsigned int div)
150+
{
151+
return __clk_hw_register_fixed_factor(dev, NULL, name, NULL, index,
152+
flags, mult, div, true);
153+
}
154+
EXPORT_SYMBOL_GPL(devm_clk_hw_register_fixed_factor_index);
155+
134156
struct clk_hw *clk_hw_register_fixed_factor(struct device *dev,
135157
const char *name, const char *parent_name, unsigned long flags,
136158
unsigned int mult, unsigned int div)

include/linux/clk-provider.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1003,6 +1003,9 @@ void clk_hw_unregister_fixed_factor(struct clk_hw *hw);
10031003
struct clk_hw *devm_clk_hw_register_fixed_factor(struct device *dev,
10041004
const char *name, const char *parent_name, unsigned long flags,
10051005
unsigned int mult, unsigned int div);
1006+
struct clk_hw *devm_clk_hw_register_fixed_factor_index(struct device *dev,
1007+
const char *name, unsigned int index, unsigned long flags,
1008+
unsigned int mult, unsigned int div);
10061009
/**
10071010
* struct clk_fractional_divider - adjustable fractional divider clock
10081011
*

0 commit comments

Comments
 (0)