[ARM] 5536/1: Move clk_add_alias() to arch/arm/common/clkdev.c
This can be used for other arm platforms too as discussed on the linux-arm-kernel list. Also check the return value with IS_ERR and return PTR_ERR as suggested by Russell King. Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
5926a295bb
commit
c068303920
3 changed files with 31 additions and 17 deletions
|
@ -135,6 +135,24 @@ struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id,
|
|||
}
|
||||
EXPORT_SYMBOL(clkdev_alloc);
|
||||
|
||||
int clk_add_alias(const char *alias, const char *alias_dev_name, char *id,
|
||||
struct device *dev)
|
||||
{
|
||||
struct clk *r = clk_get(dev, id);
|
||||
struct clk_lookup *l;
|
||||
|
||||
if (IS_ERR(r))
|
||||
return PTR_ERR(r);
|
||||
|
||||
l = clkdev_alloc(r, alias, alias_dev_name);
|
||||
clk_put(r);
|
||||
if (!l)
|
||||
return -ENODEV;
|
||||
clkdev_add(l);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(clk_add_alias);
|
||||
|
||||
/*
|
||||
* clkdev_drop - remove a clock dynamically allocated
|
||||
*/
|
||||
|
|
|
@ -86,20 +86,3 @@ void clks_register(struct clk_lookup *clks, size_t num)
|
|||
for (i = 0; i < num; i++)
|
||||
clkdev_add(&clks[i]);
|
||||
}
|
||||
|
||||
int clk_add_alias(const char *alias, const char *alias_dev_name, char *id,
|
||||
struct device *dev)
|
||||
{
|
||||
struct clk *r = clk_get(dev, id);
|
||||
struct clk_lookup *l;
|
||||
|
||||
if (!r)
|
||||
return -ENODEV;
|
||||
|
||||
l = clkdev_alloc(r, alias, alias_dev_name);
|
||||
clk_put(r);
|
||||
if (!l)
|
||||
return -ENODEV;
|
||||
clkdev_add(l);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -142,4 +142,17 @@ struct clk *clk_get_parent(struct clk *clk);
|
|||
*/
|
||||
struct clk *clk_get_sys(const char *dev_id, const char *con_id);
|
||||
|
||||
/**
|
||||
* clk_add_alias - add a new clock alias
|
||||
* @alias: name for clock alias
|
||||
* @alias_dev_name: device name
|
||||
* @id: platform specific clock name
|
||||
* @dev: device
|
||||
*
|
||||
* Allows using generic clock names for drivers by adding a new alias.
|
||||
* Assumes clkdev, see clkdev.h for more info.
|
||||
*/
|
||||
int clk_add_alias(const char *alias, const char *alias_dev_name, char *id,
|
||||
struct device *dev);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue