@@ -83,6 +83,21 @@ enum device_class device_get_class(const struct dt_device_node *dev)
return DEVICE_UNKNOWN;
}
+const struct device_desc *device_get_desc(const struct dt_device_node *dev)
+{
+ const struct device_desc *desc;
+
+ ASSERT(dev != NULL);
+
+ for ( desc = _sdevice; desc != _edevice; desc++ )
+ {
+ if ( dt_match_node(desc->dt_match, dev) )
+ return desc;
+ }
+
+ return NULL;
+}
+
/*
* Local variables:
* mode: C
@@ -89,6 +89,7 @@ int __init device_init(struct dt_device_node *dev, enum device_class class,
* Return the device type on success or DEVICE_ANY on failure
*/
enum device_class device_get_class(const struct dt_device_node *dev);
+const struct device_desc *device_get_desc(const struct dt_device_node *dev);
#define DT_DEVICE_START(_name, _namestr, _class) \
static const struct device_desc __dev_desc_##_name __used \