[PATCH 1/4] bsps/shared/ofw: Add rtems_ofw_is_node_compatible

G S Niteesh Babu niteesh.gs at gmail.com
Sat Mar 13 11:02:00 UTC 2021


This patch extends the RTEMS OFW API by adding
rtems_ofw_find_device_by_compat

This function checks if a node has the expected compatible
property.
---
 bsps/include/ofw/ofw.h | 17 +++++++++++++++++
 bsps/shared/ofw/ofw.c  | 12 ++++++++++++
 2 files changed, 29 insertions(+)

diff --git a/bsps/include/ofw/ofw.h b/bsps/include/ofw/ofw.h
index 411010be89..bfd91d20ea 100644
--- a/bsps/include/ofw/ofw.h
+++ b/bsps/include/ofw/ofw.h
@@ -541,6 +541,23 @@ bool rtems_ofw_node_status( phandle_t node );
  */
 phandle_t rtems_ofw_find_device_by_compat( const char *compat );
 
+/**
+ * @brief check a nodes compatible property.
+ *
+ * This routine is local to RTEMS OFW and does not have an corresponding
+ * FreeBSD OFW pair.
+ *
+ * Return true if @a compat equals @a node compatible property
+ *
+ * @param[in] node phandle of node
+ * @param[in] compat Compatible string
+ *
+ * @retval 1 If node contains the @a compat as a element in compatible
+ * property.
+ * @retval 0 Otherwise.
+ */
+bool rtems_ofw_is_node_compatible( phandle_t node, const char *compat );
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/bsps/shared/ofw/ofw.c b/bsps/shared/ofw/ofw.c
index 1c3a81785d..f4b8b63931 100644
--- a/bsps/shared/ofw/ofw.c
+++ b/bsps/shared/ofw/ofw.c
@@ -690,3 +690,15 @@ phandle_t rtems_ofw_find_device_by_compat( const char *compat )
   offset = fdt_node_offset_by_compatible(fdtp, -1, compat);
   return rtems_fdt_offset_to_phandle(offset);
 }
+
+bool rtems_ofw_is_node_compatible(
+  phandle_t node,
+  const char *compat
+)
+{
+  int offset;
+
+  offset = rtems_fdt_phandle_to_offset(node);
+
+  return fdt_node_check_compatible(fdtp, offset, compat) == 0;
+}
-- 
2.17.1



More information about the devel mailing list