Hi Mario, On 28 March 2018 at 20:37, Mario Six <mario....@gdsys.cc> wrote: > It's sometimes useful to get the device associated with a given ofnode. > Implement a function to implement this lookup operation.
Where would you use this? Can you not use phandles to find the device? Or uclass_get_device_by_ofnode() ? > > Signed-off-by: Mario Six <mario....@gdsys.cc> > --- > drivers/core/ofnode.c | 15 +++++++++++++++ > include/dm/ofnode.h | 8 ++++++++ > 2 files changed, 23 insertions(+) > > diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c > index 4e4532651f..ca002063b3 100644 > --- a/drivers/core/ofnode.c > +++ b/drivers/core/ofnode.c > @@ -16,6 +16,21 @@ > #include <linux/err.h> > #include <linux/ioport.h> > > +struct udevice *ofnode_dev(ofnode node) Can you please add a test for this? This seems like an internal function since it does not probe the device. So how about putting it in device.h: device_get_by_ofnode() - does probe the device it returns device_find_by_ofnode() - doesn't probe > +{ > + struct uclass *uc; > + struct udevice *dev; > + > + list_for_each_entry(uc, &gd->uclass_root, sibling_node) { > + list_for_each_entry(dev, &uc->dev_head, uclass_node) { > + if (ofnode_equal(dev_ofnode(dev), node)) > + return dev; > + } > + } > + > + return NULL; > +} > + > int ofnode_read_u32(ofnode node, const char *propname, u32 *outp) > { > assert(ofnode_valid(node)); > diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h > index 0d008404f9..aec205eb80 100644 > --- a/include/dm/ofnode.h > +++ b/include/dm/ofnode.h > @@ -193,6 +193,14 @@ static inline ofnode ofnode_null(void) > return node; > } > > +/** > + * ofnode_dev() - Get the device associated with a given ofnode > + * > + * @node: valid node reference to get the corresponding device for > + * @return a pointer to the udevice if OK, NULL on error > + */ > +struct udevice *ofnode_dev(ofnode node); > + > /** > * ofnode_read_u32() - Read a 32-bit integer from a property > * > -- > 2.16.1 > Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot