__devm_clk_hw_register_divider((dev), NULL, (name), (parent_name), NULL, \
NULL, (flags), (reg), (shift), (width), \
(clk_divider_flags), NULL, (lock))
+ +++/**
+ +++ * devm_clk_hw_register_divider_parent_hw - register a divider clock with the clock framework
+ +++ * @dev: device registering this clock
+ +++ * @name: name of this clock
+ +++ * @parent_hw: pointer to parent clk
+ +++ * @flags: framework-specific flags
+ +++ * @reg: register address to adjust divider
+ +++ * @shift: number of bits to shift the bitfield
+ +++ * @width: width of the bitfield
+ +++ * @clk_divider_flags: divider-specific flags for this clock
+ +++ * @lock: shared register lock for this clock
+ +++ */
+ +++#define devm_clk_hw_register_divider_parent_hw(dev, name, parent_hw, flags, \
+ +++ reg, shift, width, \
+ +++ clk_divider_flags, lock) \
+ +++ __devm_clk_hw_register_divider((dev), NULL, (name), NULL, \
+ +++ (parent_hw), NULL, (flags), (reg), \
+ +++ (shift), (width), (clk_divider_flags), \
+ +++ NULL, (lock))
/**
* devm_clk_hw_register_divider_table - register a table based divider clock
* with the clock framework (devres variant)
(parent_names), NULL, NULL, (flags), (reg), \
(shift), BIT((width)) - 1, (clk_mux_flags), \
NULL, (lock))
+ +++#define devm_clk_hw_register_mux_parent_hws(dev, name, parent_hws, \
+ +++ num_parents, flags, reg, shift, \
+ +++ width, clk_mux_flags, lock) \
+ +++ __devm_clk_hw_register_mux((dev), NULL, (name), (num_parents), NULL, \
+ +++ (parent_hws), NULL, (flags), (reg), \
+ +++ (shift), BIT((width)) - 1, \
+ +++ (clk_mux_flags), NULL, (lock))
int clk_mux_val_to_index(struct clk_hw *hw, const u32 *table, unsigned int flags,
unsigned int val);
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);
+ +++
+ +++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);
/**
* struct clk_fractional_divider - adjustable fractional divider clock
*
int __must_check of_clk_hw_register(struct device_node *node, struct clk_hw *hw);
void clk_unregister(struct clk *clk);
--- -void devm_clk_unregister(struct device *dev, struct clk *clk);
void clk_hw_unregister(struct clk_hw *hw);
--- -void devm_clk_hw_unregister(struct device *dev, struct clk_hw *hw);
/* helper functions */
const char *__clk_get_name(const struct clk *clk);