From: Simon Glass Date: Sat, 23 Oct 2021 23:26:09 +0000 (-0600) Subject: dm: core: Add a way to count the devices in a uclass X-Git-Tag: v2022.07~227^2~25^2~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=29fe555dec4c18096ab1ddd51398317160359ba1;p=platform%2Fkernel%2Fu-boot.git dm: core: Add a way to count the devices in a uclass Add a function that returns the number of devices in a uclass. This can be helpful in sizing an array that needs to hold a list of them. Signed-off-by: Simon Glass --- diff --git a/drivers/core/uclass.c b/drivers/core/uclass.c index 3de5f27..2aa2143 100644 --- a/drivers/core/uclass.c +++ b/drivers/core/uclass.c @@ -794,6 +794,18 @@ int uclass_probe_all(enum uclass_id id) return 0; } +int uclass_id_count(enum uclass_id id) +{ + struct udevice *dev; + struct uclass *uc; + int count = 0; + + uclass_id_foreach_dev(id, dev, uc) + count++; + + return count; +} + UCLASS_DRIVER(nop) = { .id = UCLASS_NOP, .name = "nop", diff --git a/include/dm/uclass.h b/include/dm/uclass.h index aea2f34f..f1fd2ba 100644 --- a/include/dm/uclass.h +++ b/include/dm/uclass.h @@ -426,6 +426,14 @@ int uclass_first_device_drvdata(enum uclass_id id, ulong driver_data, int uclass_probe_all(enum uclass_id id); /** + * uclass_id_count() - Count the number of devices in a uclass + * + * @id: uclass ID to look up + * @return number of devices in that uclass (0 if none) + */ +int uclass_id_count(enum uclass_id id); + +/** * uclass_id_foreach_dev() - Helper function to iteration through devices * * This creates a for() loop which works through the available devices in