[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