@ -457,6 +457,32 @@ int uclass_get_device_by_ofnode(enum uclass_id id, ofnode node,
}
}
# if CONFIG_IS_ENABLED(OF_CONTROL)
# if CONFIG_IS_ENABLED(OF_CONTROL)
int uclass_get_device_by_phandle_id ( enum uclass_id id , uint phandle_id ,
struct udevice * * devp )
{
struct udevice * dev ;
struct uclass * uc ;
int ret ;
* devp = NULL ;
ret = uclass_get ( id , & uc ) ;
if ( ret )
return ret ;
list_for_each_entry ( dev , & uc - > dev_head , uclass_node ) {
uint phandle ;
phandle = dev_read_phandle ( dev ) ;
if ( phandle = = phandle_id ) {
* devp = dev ;
return uclass_get_device_tail ( dev , ret , devp ) ;
}
}
return - ENODEV ;
}
int uclass_get_device_by_phandle ( enum uclass_id id , struct udevice * parent ,
int uclass_get_device_by_phandle ( enum uclass_id id , struct udevice * parent ,
const char * name , struct udevice * * devp )
const char * name , struct udevice * * devp )
{
{