Message ID | 1524107644-28849-3-git-send-email-yamada.masahiro@socionext.com |
---|---|
State | Accepted |
Commit | 5ccc2c21307e186722ca9966bad0e03189c237c5 |
Headers | show |
Series | Add Linux-compatible syscon_to_regmap API | expand |
Hi Masahiro, On 18 April 2018 at 21:14, Masahiro Yamada <yamada.masahiro@socionext.com> wrote: > device_is_compatible() takes udevice, but there is no such a helper > that takes ofnode. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> > --- > > Changes in v2: None > > drivers/core/device.c | 8 +------- > drivers/core/ofnode.c | 11 +++++++++++ > include/dm/ofnode.h | 11 +++++++++++ > 3 files changed, 23 insertions(+), 7 deletions(-) > Please can you add a simple test for this? Regards, Simon
Hi Simon, 2018-04-26 23:40 GMT+09:00 Simon Glass <sjg@chromium.org>: > Hi Masahiro, > > On 18 April 2018 at 21:14, Masahiro Yamada > <yamada.masahiro@socionext.com> wrote: >> device_is_compatible() takes udevice, but there is no such a helper >> that takes ofnode. >> >> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> >> --- >> >> Changes in v2: None >> >> drivers/core/device.c | 8 +------- >> drivers/core/ofnode.c | 11 +++++++++++ >> include/dm/ofnode.h | 11 +++++++++++ >> 3 files changed, 23 insertions(+), 7 deletions(-) >> > > Please can you add a simple test for this? I wrote a simple test: http://patchwork.ozlabs.org/patch/905181/
On 26 April 2018 at 10:03, Masahiro Yamada <yamada.masahiro@socionext.com> wrote: > Hi Simon, > > > 2018-04-26 23:40 GMT+09:00 Simon Glass <sjg@chromium.org>: >> Hi Masahiro, >> >> On 18 April 2018 at 21:14, Masahiro Yamada >> <yamada.masahiro@socionext.com> wrote: >>> device_is_compatible() takes udevice, but there is no such a helper >>> that takes ofnode. >>> >>> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> >>> --- >>> >>> Changes in v2: None >>> >>> drivers/core/device.c | 8 +------- >>> drivers/core/ofnode.c | 11 +++++++++++ >>> include/dm/ofnode.h | 11 +++++++++++ >>> 3 files changed, 23 insertions(+), 7 deletions(-) >>> >> >> Please can you add a simple test for this? > > I wrote a simple test: > > http://patchwork.ozlabs.org/patch/905181/ Thanks! Reviewed-by: Simon Glass <sjg@chromium.org>
On Thu, Apr 19, 2018 at 12:14:02PM +0900, Masahiro Yamada wrote: > device_is_compatible() takes udevice, but there is no such a helper > that takes ofnode. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> > Reviewed-by: Simon Glass <sjg@chromium.org> Applied to u-boot/master, thanks! -- Tom
diff --git a/drivers/core/device.c b/drivers/core/device.c index 940a153..8d95787 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -709,13 +709,7 @@ int device_set_name(struct udevice *dev, const char *name) bool device_is_compatible(struct udevice *dev, const char *compat) { - const void *fdt = gd->fdt_blob; - ofnode node = dev_ofnode(dev); - - if (ofnode_is_np(node)) - return of_device_is_compatible(ofnode_to_np(node), compat, NULL, NULL); - else - return !fdt_node_check_compatible(fdt, ofnode_to_offset(node), compat); + return ofnode_device_is_compatible(dev_ofnode(dev), compat); } bool of_machine_is_compatible(const char *compat) diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c index 5909a25..ee2109b 100644 --- a/drivers/core/ofnode.c +++ b/drivers/core/ofnode.c @@ -687,3 +687,14 @@ u64 ofnode_translate_address(ofnode node, const fdt32_t *in_addr) else return fdt_translate_address(gd->fdt_blob, ofnode_to_offset(node), in_addr); } + +int ofnode_device_is_compatible(ofnode node, const char *compat) +{ + if (ofnode_is_np(node)) + return of_device_is_compatible(ofnode_to_np(node), compat, + NULL, NULL); + else + return !fdt_node_check_compatible(gd->fdt_blob, + ofnode_to_offset(node), + compat); +} diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h index 0d00840..a2c6a50 100644 --- a/include/dm/ofnode.h +++ b/include/dm/ofnode.h @@ -681,4 +681,15 @@ int ofnode_read_resource_byname(ofnode node, const char *name, * @return the translated address; OF_BAD_ADDR on error */ u64 ofnode_translate_address(ofnode node, const fdt32_t *in_addr); + +/** + * ofnode_device_is_compatible() - check if the node is compatible with compat + * + * This allows to check whether the node is comaptible with the compat. + * + * @node: Device tree node for which compatible needs to be verified. + * @compat: Compatible string which needs to verified in the given node. + * @return true if OK, false if the compatible is not found + */ +int ofnode_device_is_compatible(ofnode node, const char *compat); #endif
device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> --- Changes in v2: None drivers/core/device.c | 8 +------- drivers/core/ofnode.c | 11 +++++++++++ include/dm/ofnode.h | 11 +++++++++++ 3 files changed, 23 insertions(+), 7 deletions(-)