mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-06-21 14:11:36 +00:00
clk: add support for clk_is_match()
Add support for clk_is_match() which is required to know if two clock pointers point to the same exact physical clock. Also add a unit test for the new API. Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
This commit is contained in:
parent
71cd80af86
commit
acbb7cd4d3
3 changed files with 26 additions and 0 deletions
|
@ -518,6 +518,19 @@ int clk_get_by_id(ulong id, struct clk **clkp)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool clk_is_match(const struct clk *p, const struct clk *q)
|
||||||
|
{
|
||||||
|
/* trivial case: identical struct clk's or both NULL */
|
||||||
|
if (p == q)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
/* same device, id and data */
|
||||||
|
if (p->dev == q->dev && p->id == q->id && p->data == q->data)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
UCLASS_DRIVER(clk) = {
|
UCLASS_DRIVER(clk) = {
|
||||||
.id = UCLASS_CLK,
|
.id = UCLASS_CLK,
|
||||||
.name = "clk",
|
.name = "clk",
|
||||||
|
|
|
@ -333,6 +333,18 @@ int clk_disable(struct clk *clk);
|
||||||
*/
|
*/
|
||||||
int clk_disable_bulk(struct clk_bulk *bulk);
|
int clk_disable_bulk(struct clk_bulk *bulk);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* clk_is_match - check if two clk's point to the same hardware clock
|
||||||
|
* @p: clk compared against q
|
||||||
|
* @q: clk compared against p
|
||||||
|
*
|
||||||
|
* Returns true if the two struct clk pointers both point to the same hardware
|
||||||
|
* clock node.
|
||||||
|
*
|
||||||
|
* Returns false otherwise. Note that two NULL clks are treated as matching.
|
||||||
|
*/
|
||||||
|
bool clk_is_match(const struct clk *p, const struct clk *q);
|
||||||
|
|
||||||
int soc_clk_dump(void);
|
int soc_clk_dump(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -24,6 +24,7 @@ static int dm_test_clk_base(struct unit_test_state *uts)
|
||||||
/* Get the same clk port in 2 different ways and compare */
|
/* Get the same clk port in 2 different ways and compare */
|
||||||
ut_assertok(clk_get_by_index(dev, 1, &clk_method1));
|
ut_assertok(clk_get_by_index(dev, 1, &clk_method1));
|
||||||
ut_assertok(clk_get_by_index_nodev(dev_ofnode(dev), 1, &clk_method2));
|
ut_assertok(clk_get_by_index_nodev(dev_ofnode(dev), 1, &clk_method2));
|
||||||
|
ut_asserteq(clk_is_match(&clk_method1, &clk_method2), true);
|
||||||
ut_asserteq(clk_method1.id, clk_method2.id);
|
ut_asserteq(clk_method1.id, clk_method2.id);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue