[U-Boot] [PATCH 1/4] dm: core: Add of_alias_get_highest_id()

Michal Simek monstr at monstr.eu
Mon Jan 28 12:35:36 UTC 2019


Hi Simon,

On 18. 01. 19 16:13, Michal Simek wrote:
> The same functionality was added to Linux for i2c bus registration with this
> commit message:
> 
> "
> of: base: add function to get highest id of an alias stem
> 
> I2C supports adding adapters using either a dynamic or fixed id. The
> latter is provided by aliases in the DT case. To prevent id collisions
> of those two types, install this function which gives us the highest
> fixed id, so we can then let the dynamically created ones come after
> this highest number.
> 
> Signed-off-by: Wolfram Sang <wsa+renesas at sang-engineering.com>
> Acked-by: Rob Herring <robh at kernel.org>
> Signed-off-by: Wolfram Sang <wsa at the-dreams.de>
> "
> 
> Add it also to U-Boot for DM I2C support.
> 
> Signed-off-by: Michal Simek <michal.simek at xilinx.com>
> ---
> 
>  drivers/core/of_access.c | 18 ++++++++++++++++++
>  include/dm/of_access.h   |  9 +++++++++
>  2 files changed, 27 insertions(+)
> 
> diff --git a/drivers/core/of_access.c b/drivers/core/of_access.c
> index 14c020a687b7..7c2df2354109 100644
> --- a/drivers/core/of_access.c
> +++ b/drivers/core/of_access.c
> @@ -812,6 +812,24 @@ int of_alias_get_id(const struct device_node *np, const char *stem)
>  	return id;
>  }
>  
> +int of_alias_get_highest_id(const char *stem)
> +{
> +	struct alias_prop *app;
> +	int id = -ENODEV;
> +
> +	mutex_lock(&of_mutex);
> +	list_for_each_entry(app, &aliases_lookup, link) {
> +		if (strcmp(app->stem, stem) != 0)
> +			continue;
> +
> +		if (app->id > id)
> +			id = app->id;
> +	}
> +	mutex_unlock(&of_mutex);
> +
> +	return id;
> +}
> +
>  struct device_node *of_get_stdout(void)
>  {
>  	return of_stdout;
> diff --git a/include/dm/of_access.h b/include/dm/of_access.h
> index 5ed1a0cdb427..5cbfd220bfd4 100644
> --- a/include/dm/of_access.h
> +++ b/include/dm/of_access.h
> @@ -425,6 +425,15 @@ int of_alias_scan(void);
>  int of_alias_get_id(const struct device_node *np, const char *stem);
>  
>  /**
> + * of_alias_get_highest_id - Get highest alias id for the given stem
> + * @stem:	Alias stem to be examined
> + *
> + * The function travels the lookup table to get the highest alias id for the
> + * given alias stem. It returns the alias id if found.
> + */
> +int of_alias_get_highest_id(const char *stem);
> +
> +/**
>   * of_get_stdout() - Get node to use for stdout
>   *
>   * @return node referred to by stdout-path alias, or NULL if none
> 

Can you please review 1/4 and 2/4 patches?

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal SoCs


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190128/b9f01382/attachment.sig>


More information about the U-Boot mailing list