mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-05-25 05:05:35 +08:00
[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:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user