[dm][core] add new API for DM

1. rt_dm_dev_is_big_endian
2. rt_dm_dev_get_prop_fuzzy_name

Signed-off-by: GuEe-GUI <2991707448@qq.com>
This commit is contained in:
GuEe-GUI
2025-12-09 17:23:24 +08:00
committed by R b b666
parent c857e03544
commit 056ae364cb
2 changed files with 35 additions and 0 deletions
+31
View File
@@ -306,6 +306,23 @@ const char *rt_dm_dev_get_name(rt_device_t dev)
#define ofw_api_call_ptr(name, ...) RT_NULL
#endif
rt_bool_t rt_dm_dev_is_big_endian(rt_device_t dev)
{
if (rt_dm_dev_prop_read_bool(dev, "big-endian"))
{
return RT_TRUE;
}
#ifdef ARCH_CPU_BIG_ENDIAN
if (rt_dm_dev_prop_read_bool(dev, "native-endian"))
{
return RT_TRUE;
}
#endif /* ARCH_CPU_BIG_ENDIAN */
return RT_FALSE;
}
int rt_dm_dev_get_address_count(rt_device_t dev)
{
RT_ASSERT(dev != RT_NULL);
@@ -480,6 +497,20 @@ void rt_dm_dev_unbind_fwdata(rt_device_t dev, void *fw_np)
#endif
}
const char *rt_dm_dev_get_prop_fuzzy_name(rt_device_t dev, const char *name)
{
RT_ASSERT(dev != RT_NULL);
#ifdef RT_USING_OFW
if (dev->ofw_node)
{
return ofw_api_call_ptr(get_prop_fuzzy_name, dev->ofw_node, name);
}
#endif
return RT_NULL;
}
int rt_dm_dev_prop_read_u8_array_index(rt_device_t dev, const char *propname,
int index, int nr, rt_uint8_t *out_values)
{
@@ -70,6 +70,8 @@ int rt_dm_dev_get_name_id(rt_device_t dev);
int rt_dm_dev_set_name(rt_device_t dev, const char *format, ...);
const char *rt_dm_dev_get_name(rt_device_t dev);
rt_bool_t rt_dm_dev_is_big_endian(rt_device_t dev);
int rt_dm_dev_get_address_count(rt_device_t dev);
rt_err_t rt_dm_dev_get_address(rt_device_t dev, int index,
rt_uint64_t *out_address, rt_uint64_t *out_size);
@@ -87,6 +89,8 @@ int rt_dm_dev_get_irq_by_name(rt_device_t dev, const char *name);
void rt_dm_dev_bind_fwdata(rt_device_t dev, void *fw_np, void *data);
void rt_dm_dev_unbind_fwdata(rt_device_t dev, void *fw_np);
const char *rt_dm_dev_get_prop_fuzzy_name(rt_device_t dev, const char *name);
int rt_dm_dev_prop_read_u8_array_index(rt_device_t dev, const char *propname,
int index, int nr, rt_uint8_t *out_values);
int rt_dm_dev_prop_read_u16_array_index(rt_device_t dev, const char *propname,