> Subject: [PATCH v3 08/11] dm: clk: Define clk_get_by_id() for clk operations
> 
> This commit adds the clk_get_by_id() function, which is responsible for 
> getting
> the udevice with matching clk->id. Such approach allows re-usage of inherit
> DM list relationship for the same class (UCLASS_CLK).
> As a result - we don't need any other external list - it is just enough to 
> look for
> UCLASS_CLK related udevices.
> 
> Signed-off-by: Lukasz Majewski <lu...@denx.de>
> 
> ---
> 
> Changes in v3:
> - Replace -ENODEV with -ENOENT
> - Use **clkp instead of **c
> 
>  drivers/clk/clk-uclass.c | 22 ++++++++++++++++++++++
>  include/clk.h            | 11 +++++++++++
>  2 files changed, 33 insertions(+)
> 
> diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index
> da6624d4f2..85dae5321a 100644
> --- a/drivers/clk/clk-uclass.c
> +++ b/drivers/clk/clk-uclass.c
> @@ -451,6 +451,28 @@ int clk_disable_bulk(struct clk_bulk *bulk)
>       return 0;
>  }
> 
> +int clk_get_by_id(ulong id, struct clk **clkp) {
> +     struct udevice *dev;
> +     struct uclass *uc;
> +     int ret;
> +
> +     ret = uclass_get(UCLASS_CLK, &uc);
> +     if (ret)
> +             return ret;
> +
> +     uclass_foreach_dev(dev, uc) {
> +             struct clk *clk = (struct clk *)dev_get_driver_data(dev);
> +
> +             if (clk && clk->id == id) {
> +                     *clkp = clk;
> +                     return 0;
> +             }
> +     }
> +
> +     return -ENOENT;
> +}
> +
>  UCLASS_DRIVER(clk) = {
>       .id             = UCLASS_CLK,
>       .name           = "clk",
> diff --git a/include/clk.h b/include/clk.h index 98c3e12fb4..a4ecca9fbc
> 100644
> --- a/include/clk.h
> +++ b/include/clk.h
> @@ -326,4 +326,15 @@ static inline bool clk_valid(struct clk *clk)  {
>       return !!clk->dev;
>  }
> +
> +/**
> + * clk_get_by_id() - Get the clock by its ID
> + *
> + * @id:      The clock ID to search for
> + *
> + * @clkp:    A pointer to clock struct that has been found among added
> clocks
> + *              to UCLASS_CLK
> + * @return zero on success, or -ENOENT on error  */ int
> +clk_get_by_id(ulong id, struct clk **clkp);

Reviewed-by: Peng Fan <peng....@nxp.com>

>  #endif
> --
> 2.11.0

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to