diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-01-17 14:14:30 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-01-23 14:54:53 +0100 |
commit | 81fc57de35c529840c90028254d26766ec75b98e (patch) | |
tree | c775d2c22324836f1a82e285060ac626fa707c08 | |
parent | linux/of.h: Add of_read_number() (diff) | |
download | rtems-libbsd-81fc57de35c529840c90028254d26766ec75b98e.tar.bz2 |
linux/of.h: Add of_find_node_by_path()
Update #3277.
-rw-r--r-- | rtemsbsd/powerpc/include/linux/of.h | 3 | ||||
-rw-r--r-- | rtemsbsd/sys/powerpc/compat.c | 16 |
2 files changed, 19 insertions, 0 deletions
diff --git a/rtemsbsd/powerpc/include/linux/of.h b/rtemsbsd/powerpc/include/linux/of.h index 8ef04697..e91baaaf 100644 --- a/rtemsbsd/powerpc/include/linux/of.h +++ b/rtemsbsd/powerpc/include/linux/of.h @@ -88,6 +88,9 @@ bool of_device_is_available(const struct device_node *dn); int of_device_is_compatible(const struct device_node *dn, const char *name); +struct device_node *of_find_node_by_path(struct device_node *dns, + const char *path); + struct device_node *of_find_compatible_node(struct device_node *dns, const struct device_node *dn, const char *type, const char *compatible); diff --git a/rtemsbsd/sys/powerpc/compat.c b/rtemsbsd/sys/powerpc/compat.c index 400eac57..c0fdebbd 100644 --- a/rtemsbsd/sys/powerpc/compat.c +++ b/rtemsbsd/sys/powerpc/compat.c @@ -90,6 +90,22 @@ of_device_is_compatible(const struct device_node *dn, const char *name) } struct device_node * +of_find_node_by_path(struct device_node *dns, const char *path) +{ + const void *fdt = bsp_fdt_get(); + int node; + + memset(dns, 0, sizeof(*dns)); + + node = fdt_path_offset(fdt, path); + if (node < 0) + return (NULL); + + dns->offset = node; + return (dns); +} + +struct device_node * of_find_compatible_node(struct device_node *dns, const struct device_node *dn, const char *type, const char *compatible) { |