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+rene...@sang-engineering.com> > Acked-by: Rob Herring <r...@kernel.org> > Signed-off-by: Wolfram Sang <w...@the-dreams.de> > " > > Add it also to U-Boot for DM I2C support. > > Signed-off-by: Michal Simek <michal.si...@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
signature.asc
Description: OpenPGP digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot