diff --git a/drivers/core/device.c b/drivers/core/device.c index 81ddecade28cc5fac1ee09a2792ea625193a212f..6793e1c4f944b9db600687669a222728f19feafd 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -381,6 +381,11 @@ int device_find_next_child(struct udevice **devp) return 0; } +struct udevice *dev_get_parent(struct udevice *child) +{ + return child->parent; +} + ulong dev_get_of_data(struct udevice *dev) { return dev->of_id->data; diff --git a/include/dm/device.h b/include/dm/device.h index 287504cb2707f7ae233e3bfcba2fa22b01cbb599..13598a15b68684ee81b023c30d8ec42e21941c2b 100644 --- a/include/dm/device.h +++ b/include/dm/device.h @@ -207,6 +207,14 @@ void *dev_get_parentdata(struct udevice *dev); */ void *dev_get_priv(struct udevice *dev); +/** + * struct dev_get_parent() - Get the parent of a device + * + * @child: Child to check + * @return parent of child, or NULL if this is the root device + */ +struct udevice *dev_get_parent(struct udevice *child); + /** * dev_get_of_data() - get the device tree data used to bind a device *