Hi Mugunthan, On 28 April 2016 at 04:06, Mugunthan V N <mugunthan...@ti.com> wrote: > Provide an api to check whether the given device or machine is > compatible with the given compat string which helps in making > decisions in drivers based on device or machine compatible. > > Idea taken from Linux. > > Signed-off-by: Mugunthan V N <mugunthan...@ti.com> > Reviewed-by: Joe Hershberger <joe.hershber...@ni.com> > --- > drivers/core/device.c | 14 ++++++++++++++ > include/dm/device.h | 23 +++++++++++++++++++++++ > 2 files changed, 37 insertions(+) > > diff --git a/drivers/core/device.c b/drivers/core/device.c > index 1322991..8fdd193 100644 > --- a/drivers/core/device.c > +++ b/drivers/core/device.c > @@ -715,3 +715,17 @@ int device_set_name(struct udevice *dev, const char > *name) > > return 0; > } > + > +bool of_device_is_compatible(struct udevice *dev, const char *compat)
This function is in device.h, so I think device_is_compatible() is a better name. Where does compat come from? Is it another device, or something else entirely? > +{ > + const void *fdt = gd->fdt_blob; > + > + return !fdt_node_check_compatible(fdt, dev->of_offset, compat); > +} > + > +bool of_machine_is_compatible(const char *compat) This should go in fdtdec.h I think. It doesn't have anything to do with devices. So fdtdec_machine_is_compatible(). > +{ > + const void *fdt = gd->fdt_blob; > + > + return !fdt_node_check_compatible(fdt, 0, compat); > +} > diff --git a/include/dm/device.h b/include/dm/device.h > index 8970fc0..cd18e82 100644 > --- a/include/dm/device.h > +++ b/include/dm/device.h > @@ -532,6 +532,29 @@ bool device_is_last_sibling(struct udevice *dev); > int device_set_name(struct udevice *dev, const char *name); > > /** > + * of_device_is_compatible() - check if the device is compatible with the > compat > + * > + * This allows to check whether the device is comaptible with the compat. > + * > + * @dev: udevice pointer for which compatible needs to be verified. > + * @compat: Compatible string which needs to verified in the given > + * device > + * @return true if OK, false if the compatible is not found Does this mean false if @compat is not found in the device's compatible string list? Can you beef up the comment a bit to be specific? > + */ > +bool of_device_is_compatible(struct udevice *dev, const char *compat); > + > +/** > + * of_machine_is_compatible() - check if the machine is compatible with > + * the compat > + * > + * This allows to check whether the machine is comaptible with the compat. Again can you beef up the comment? What is machine? Where does it actually look? > + * > + * @compat: Compatible string which needs to verified > + * @return true if OK, false if the compatible is not found > + */ > +bool of_machine_is_compatible(const char *compat); > + > +/** > * device_is_on_pci_bus - Test if a device is on a PCI bus > * > * @dev: device to test > -- > 2.8.1.339.g3ad15fd > Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot