@ -114,9 +114,8 @@ int gpio_lookup_name(const char *name, struct udevice **devp,
return 0 ;
}
int gpio_xlate_offs_flags ( struct udevice * dev ,
struct gpio_desc * desc ,
struct fdtdec_phandle_args * args )
int gpio_xlate_offs_flags ( struct udevice * dev , struct gpio_desc * desc ,
struct ofnode_phandle_args * args )
{
if ( args - > args_count < 1 )
return - EINVAL ;
@ -133,7 +132,7 @@ int gpio_xlate_offs_flags(struct udevice *dev,
}
static int gpio_find_and_xlate ( struct gpio_desc * desc ,
struct fdtdec _phandle_args * args )
struct ofnode _phandle_args * args )
{
struct dm_gpio_ops * ops = gpio_get_ops ( desc - > dev ) ;
@ -642,37 +641,30 @@ int dm_gpio_get_values_as_int(const struct gpio_desc *desc_list, int count)
return vector ;
}
static int _gpio_request_by_name_nodev ( const void * blob , int node ,
const char * list_name , int index ,
struct gpio_desc * desc , int flags ,
bool add_index )
static int gpio_request_tail ( int ret , ofnode node ,
struct ofnode_phandle_args * args ,
const char * list_name , int index ,
struct gpio_desc * desc , int flags , bool add_index )
{
struct fdtdec_phandle_args args ;
int ret ;
desc - > dev = NULL ;
desc - > offset = 0 ;
desc - > flags = 0 ;
ret = fdtdec_parse_phandle_with_args ( blob , node , list_name ,
" #gpio-cells " , 0 , index , & args ) ;
if ( ret ) {
debug ( " %s: fdtdec_parse_phandle_with_args failed \n " , __func__ ) ;
if ( ret )
goto err ;
}
ret = uclass_get_device_by_of_offset ( UCLASS_GPIO , args . node ,
& desc - > dev ) ;
ret = uclass_get_device_by_ofnode ( UCLASS_GPIO , args - > node ,
& desc - > dev ) ;
if ( ret ) {
debug ( " %s: uclass_get_device_by_of_offset failed \n " , __func__ ) ;
goto err ;
}
ret = gpio_find_and_xlate ( desc , & args ) ;
ret = gpio_find_and_xlate ( desc , args ) ;
if ( ret ) {
debug ( " %s: gpio_find_and_xlate failed \n " , __func__ ) ;
goto err ;
}
ret = dm_gpio_requestf ( desc , add_index ? " %s.%s%d " : " %s.%s " ,
fdt _get_name( blob , node , NULL ) ,
ofnode _get_name( node ) ,
list_name , index ) ;
if ( ret ) {
debug ( " %s: dm_gpio_requestf failed \n " , __func__ ) ;
@ -687,10 +679,27 @@ static int _gpio_request_by_name_nodev(const void *blob, int node,
return 0 ;
err :
debug ( " %s: Node '%s', property '%s', failed to request GPIO index %d: %d \n " ,
__func__ , fdt _get_name( blob , node , NULL ) , list_name , index , ret ) ;
__func__ , ofnode _get_name( node ) , list_name , index , ret ) ;
return ret ;
}
static int _gpio_request_by_name_nodev ( const void * blob , int node ,
const char * list_name , int index ,
struct gpio_desc * desc , int flags ,
bool add_index )
{
struct ofnode_phandle_args args ;
int ret ;
ret = ofnode_parse_phandle_with_args ( offset_to_ofnode ( node ) , list_name ,
" #gpio-cells " , 0 , index , & args ) ;
if ( ret )
debug ( " %s: fdtdec_parse_phandle_with_args failed \n " , __func__ ) ;
return gpio_request_tail ( ret , offset_to_ofnode ( node ) , & args , list_name ,
index , desc , flags , add_index ) ;
}
int gpio_request_by_name_nodev ( const void * blob , int node ,
const char * list_name , int index ,
struct gpio_desc * desc , int flags )