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
					
				|  | @ -518,6 +518,19 @@ int clk_get_by_id(ulong id, struct clk **clkp) | |||
| 	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) = { | ||||
| 	.id		= UCLASS_CLK, | ||||
| 	.name		= "clk", | ||||
|  |  | |||
|  | @ -333,6 +333,18 @@ int clk_disable(struct clk *clk); | |||
|  */ | ||||
| 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); | ||||
| 
 | ||||
| /**
 | ||||
|  |  | |||
|  | @ -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 */ | ||||
| 	ut_assertok(clk_get_by_index(dev, 1, &clk_method1)); | ||||
| 	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); | ||||
| 
 | ||||
| 	return 0; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue