bsps/shared/ofw: Add rtems_ofw_is_node_compatible

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.
This commit is contained in:
G S Niteesh Babu
2021-03-13 16:32:00 +05:30
committed by Christian Mauderer
parent 65ab1cda10
commit fc7129067d
2 changed files with 29 additions and 0 deletions

View File

@@ -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

View File

@@ -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;
}