mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-09-18 23:09:29 +02:00
clk: fixed-factor: Export __clk_hw_register_fixed_factor()
Make the base registration function for fixed-factor clocks public and re-implement the various registration functions that are a direct call to __clk_hw_register_fixed_factor() as macros. This is similar to how the registration functions of divider, mux and other clocks are implemented. Add a new macro clk_hw_register_fixed_factor_pdata() to register a fixed-factor clock with its parent clock passed as a struct clk_parent_data. Reviewed-by: Brian Masney <bmasney@redhat.com> Signed-off-by: Benoît Monin <benoit.monin@bootlin.com>
This commit is contained in:
@@ -94,7 +94,7 @@ static void devm_clk_hw_register_fixed_factor_release(struct device *dev, void *
|
||||
clk_hw_unregister(&fix->hw);
|
||||
}
|
||||
|
||||
static struct clk_hw *
|
||||
struct clk_hw *
|
||||
__clk_hw_register_fixed_factor(struct device *dev, struct device_node *np,
|
||||
const char *name, const char *parent_name,
|
||||
const struct clk_hw *parent_hw, const struct clk_parent_data *pdata,
|
||||
@@ -152,6 +152,7 @@ __clk_hw_register_fixed_factor(struct device *dev, struct device_node *np,
|
||||
|
||||
return hw;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(__clk_hw_register_fixed_factor);
|
||||
|
||||
/**
|
||||
* devm_clk_hw_register_fixed_factor_index - Register a fixed factor clock with
|
||||
@@ -177,46 +178,6 @@ struct clk_hw *devm_clk_hw_register_fixed_factor_index(struct device *dev,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(devm_clk_hw_register_fixed_factor_index);
|
||||
|
||||
/**
|
||||
* devm_clk_hw_register_fixed_factor_parent_hw - Register a fixed factor clock with
|
||||
* pointer to parent clock
|
||||
* @dev: device that is registering this clock
|
||||
* @name: name of this clock
|
||||
* @parent_hw: pointer to parent clk
|
||||
* @flags: fixed factor flags
|
||||
* @mult: multiplier
|
||||
* @div: divider
|
||||
*
|
||||
* Return: Pointer to fixed factor clk_hw structure that was registered or
|
||||
* an error pointer.
|
||||
*/
|
||||
struct clk_hw *devm_clk_hw_register_fixed_factor_parent_hw(struct device *dev,
|
||||
const char *name, const struct clk_hw *parent_hw,
|
||||
unsigned long flags, unsigned int mult, unsigned int div)
|
||||
{
|
||||
return __clk_hw_register_fixed_factor(dev, NULL, name, NULL, parent_hw,
|
||||
NULL, flags, mult, div, 0, 0, true);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(devm_clk_hw_register_fixed_factor_parent_hw);
|
||||
|
||||
struct clk_hw *clk_hw_register_fixed_factor_parent_hw(struct device *dev,
|
||||
const char *name, const struct clk_hw *parent_hw,
|
||||
unsigned long flags, unsigned int mult, unsigned int div)
|
||||
{
|
||||
return __clk_hw_register_fixed_factor(dev, NULL, name, NULL, parent_hw,
|
||||
NULL, flags, mult, div, 0, 0, false);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(clk_hw_register_fixed_factor_parent_hw);
|
||||
|
||||
struct clk_hw *clk_hw_register_fixed_factor(struct device *dev,
|
||||
const char *name, const char *parent_name, unsigned long flags,
|
||||
unsigned int mult, unsigned int div)
|
||||
{
|
||||
return __clk_hw_register_fixed_factor(dev, NULL, name, parent_name, NULL,
|
||||
NULL, flags, mult, div, 0, 0, false);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(clk_hw_register_fixed_factor);
|
||||
|
||||
struct clk_hw *clk_hw_register_fixed_factor_fwname(struct device *dev,
|
||||
struct device_node *np, const char *name, const char *fw_name,
|
||||
unsigned long flags, unsigned int mult, unsigned int div)
|
||||
@@ -290,15 +251,6 @@ void clk_hw_unregister_fixed_factor(struct clk_hw *hw)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(clk_hw_unregister_fixed_factor);
|
||||
|
||||
struct clk_hw *devm_clk_hw_register_fixed_factor(struct device *dev,
|
||||
const char *name, const char *parent_name, unsigned long flags,
|
||||
unsigned int mult, unsigned int div)
|
||||
{
|
||||
return __clk_hw_register_fixed_factor(dev, NULL, name, parent_name, NULL,
|
||||
NULL, flags, mult, div, 0, 0, true);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(devm_clk_hw_register_fixed_factor);
|
||||
|
||||
struct clk_hw *devm_clk_hw_register_fixed_factor_fwname(struct device *dev,
|
||||
struct device_node *np, const char *name, const char *fw_name,
|
||||
unsigned long flags, unsigned int mult, unsigned int div)
|
||||
|
||||
@@ -1152,13 +1152,16 @@ struct clk_fixed_factor {
|
||||
#define to_clk_fixed_factor(_hw) container_of(_hw, struct clk_fixed_factor, hw)
|
||||
|
||||
extern const struct clk_ops clk_fixed_factor_ops;
|
||||
struct clk_hw *
|
||||
__clk_hw_register_fixed_factor(struct device *dev, struct device_node *np,
|
||||
const char *name, const char *parent_name,
|
||||
const struct clk_hw *parent_hw, const struct clk_parent_data *pdata,
|
||||
unsigned long flags, unsigned int mult, unsigned int div,
|
||||
unsigned long acc, unsigned int fixflags, bool devm);
|
||||
struct clk *clk_register_fixed_factor(struct device *dev, const char *name,
|
||||
const char *parent_name, unsigned long flags,
|
||||
unsigned int mult, unsigned int div);
|
||||
void clk_unregister_fixed_factor(struct clk *clk);
|
||||
struct clk_hw *clk_hw_register_fixed_factor(struct device *dev,
|
||||
const char *name, const char *parent_name, unsigned long flags,
|
||||
unsigned int mult, unsigned int div);
|
||||
struct clk_hw *clk_hw_register_fixed_factor_fwname(struct device *dev,
|
||||
struct device_node *np, const char *name, const char *fw_name,
|
||||
unsigned long flags, unsigned int mult, unsigned int div);
|
||||
@@ -1170,9 +1173,6 @@ struct clk_hw *clk_hw_register_fixed_factor_index(struct device *dev,
|
||||
const char *name, unsigned int index, unsigned long flags,
|
||||
unsigned int mult, unsigned int div);
|
||||
void clk_hw_unregister_fixed_factor(struct clk_hw *hw);
|
||||
struct clk_hw *devm_clk_hw_register_fixed_factor(struct device *dev,
|
||||
const char *name, const char *parent_name, unsigned long flags,
|
||||
unsigned int mult, unsigned int div);
|
||||
struct clk_hw *devm_clk_hw_register_fixed_factor_fwname(struct device *dev,
|
||||
struct device_node *np, const char *name, const char *fw_name,
|
||||
unsigned long flags, unsigned int mult, unsigned int div);
|
||||
@@ -1184,13 +1184,45 @@ struct clk_hw *devm_clk_hw_register_fixed_factor_index(struct device *dev,
|
||||
const char *name, unsigned int index, unsigned long flags,
|
||||
unsigned int mult, unsigned int div);
|
||||
|
||||
struct clk_hw *devm_clk_hw_register_fixed_factor_parent_hw(struct device *dev,
|
||||
const char *name, const struct clk_hw *parent_hw,
|
||||
unsigned long flags, unsigned int mult, unsigned int div);
|
||||
#define clk_hw_register_fixed_factor(dev, name, parent_name, \
|
||||
flags, mult, div) \
|
||||
__clk_hw_register_fixed_factor((dev), NULL, (name), (parent_name), \
|
||||
NULL, NULL, (flags), (mult), (div), \
|
||||
0, 0, false)
|
||||
#define clk_hw_register_fixed_factor_pdata(dev, np, name, pdata, \
|
||||
flags, mult, div, acc, fixflags) \
|
||||
__clk_hw_register_fixed_factor((dev), (np), (name), NULL, NULL, \
|
||||
(pdata), (flags), (mult), (div), \
|
||||
(acc), (fixflags), false)
|
||||
#define devm_clk_hw_register_fixed_factor(dev, name, parent_name, flags, \
|
||||
mult, div) \
|
||||
__clk_hw_register_fixed_factor((dev), NULL, (name), (parent_name), \
|
||||
NULL, NULL, (flags), (mult), (div), 0, \
|
||||
0, true)
|
||||
/**
|
||||
* devm_clk_hw_register_fixed_factor_parent_hw - Register a fixed factor clock with
|
||||
* pointer to parent clock
|
||||
* @dev: device that is registering this clock
|
||||
* @name: name of this clock
|
||||
* @parent_hw: pointer to parent clk
|
||||
* @flags: fixed factor flags
|
||||
* @mult: multiplier
|
||||
* @div: divider
|
||||
*
|
||||
* Return: Pointer to fixed factor clk_hw structure that was registered or
|
||||
* an error pointer.
|
||||
*/
|
||||
#define devm_clk_hw_register_fixed_factor_parent_hw(dev, name, parent_hw, \
|
||||
flags, mult, div) \
|
||||
__clk_hw_register_fixed_factor((dev), NULL, (name), NULL, \
|
||||
(parent_hw), NULL, (flags), (mult), \
|
||||
(div), 0, 0, true)
|
||||
|
||||
struct clk_hw *clk_hw_register_fixed_factor_parent_hw(struct device *dev,
|
||||
const char *name, const struct clk_hw *parent_hw,
|
||||
unsigned long flags, unsigned int mult, unsigned int div);
|
||||
#define clk_hw_register_fixed_factor_parent_hw(dev, name, parent_hw, flags, \
|
||||
mult, div) \
|
||||
__clk_hw_register_fixed_factor((dev), NULL, (name), NULL, \
|
||||
(parent_hw), NULL, (flags), (mult), \
|
||||
(div), 0, 0, false)
|
||||
/**
|
||||
* struct clk_fractional_divider - adjustable fractional divider clock
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user