mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-27 07:15:20 +00:00
Merge changes from topic "add_clk_callbacks" into integration
* changes: feat(clk): add set_rate callback feat(clk): add set_parent callback
This commit is contained in:
commit
0567eca0b9
2 changed files with 26 additions and 0 deletions
|
@ -34,6 +34,20 @@ unsigned long clk_get_rate(unsigned long id)
|
||||||
return ops->get_rate(id);
|
return ops->get_rate(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int clk_set_rate(unsigned long id, unsigned long rate, unsigned long *orate)
|
||||||
|
{
|
||||||
|
unsigned long lrate;
|
||||||
|
|
||||||
|
assert((ops != NULL) && (ops->set_rate != NULL));
|
||||||
|
|
||||||
|
if (orate != NULL) {
|
||||||
|
return ops->set_rate(id, rate, orate);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* In case the caller is not interested in the output rate */
|
||||||
|
return ops->set_rate(id, rate, &lrate);
|
||||||
|
}
|
||||||
|
|
||||||
int clk_get_parent(unsigned long id)
|
int clk_get_parent(unsigned long id)
|
||||||
{
|
{
|
||||||
assert((ops != NULL) && (ops->get_parent != NULL));
|
assert((ops != NULL) && (ops->get_parent != NULL));
|
||||||
|
@ -41,6 +55,13 @@ int clk_get_parent(unsigned long id)
|
||||||
return ops->get_parent(id);
|
return ops->get_parent(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int clk_set_parent(unsigned long id, unsigned long parent_id)
|
||||||
|
{
|
||||||
|
assert((ops != NULL) && (ops->set_parent != NULL));
|
||||||
|
|
||||||
|
return ops->set_parent(id, parent_id);
|
||||||
|
}
|
||||||
|
|
||||||
bool clk_is_enabled(unsigned long id)
|
bool clk_is_enabled(unsigned long id)
|
||||||
{
|
{
|
||||||
assert((ops != NULL) && (ops->is_enabled != NULL));
|
assert((ops != NULL) && (ops->is_enabled != NULL));
|
||||||
|
|
|
@ -13,15 +13,20 @@ struct clk_ops {
|
||||||
int (*enable)(unsigned long id);
|
int (*enable)(unsigned long id);
|
||||||
void (*disable)(unsigned long id);
|
void (*disable)(unsigned long id);
|
||||||
unsigned long (*get_rate)(unsigned long id);
|
unsigned long (*get_rate)(unsigned long id);
|
||||||
|
int (*set_rate)(unsigned long id, unsigned long rate,
|
||||||
|
unsigned long *orate);
|
||||||
int (*get_parent)(unsigned long id);
|
int (*get_parent)(unsigned long id);
|
||||||
|
int (*set_parent)(unsigned long id, unsigned long parent_id);
|
||||||
bool (*is_enabled)(unsigned long id);
|
bool (*is_enabled)(unsigned long id);
|
||||||
};
|
};
|
||||||
|
|
||||||
int clk_enable(unsigned long id);
|
int clk_enable(unsigned long id);
|
||||||
void clk_disable(unsigned long id);
|
void clk_disable(unsigned long id);
|
||||||
unsigned long clk_get_rate(unsigned long id);
|
unsigned long clk_get_rate(unsigned long id);
|
||||||
|
int clk_set_rate(unsigned long id, unsigned long rate, unsigned long *orate);
|
||||||
bool clk_is_enabled(unsigned long id);
|
bool clk_is_enabled(unsigned long id);
|
||||||
int clk_get_parent(unsigned long id);
|
int clk_get_parent(unsigned long id);
|
||||||
|
int clk_set_parent(unsigned long id, unsigned long parent_id);
|
||||||
|
|
||||||
void clk_register(const struct clk_ops *ops);
|
void clk_register(const struct clk_ops *ops);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue