of_get_named_gpio_flags函数返回值
时间: 2023-10-30 16:05:17 浏览: 131
of_get_named_gpio_flags函数是用于获取设备树(DT)中GPIO节点的属性值的函数,其返回值表示是否成功获取了属性值。返回值为0表示成功获取属性值,否则返回负数错误码。
具体来说,返回值的含义如下:
- 0:成功获取属性值。
- -EINVAL:传入的节点或属性名为空,或者属性值不是一个整数。
- -ENODEV:传入的节点不存在或者没有GPIO属性。
- -ENOENT:传入的属性名在节点中不存在。
- -ENXIO:传入的GPIO编号不合法。
- 其他错误码:其他错误。
相关问题
of_get_gpio_flags和of_get_named_gpio_flags函数区别
of_get_gpio_flags函数用于获取设备树中某个GPIO引脚的flags属性值,该函数的参数是一个设备节点和GPIO编号。如果找到了指定GPIO,该函数会返回该GPIO的flags属性值;否则返回负数。这个函数在内核中定义在drivers/of/gpio.c文件中。
of_get_named_gpio_flags函数同样用于获取设备树中某个GPIO引脚的flags属性值,但是与of_get_gpio_flags函数不同的是,它可以接受一个默认值作为第三个参数,当没有找到指定GPIO时,会返回该默认值。该函数的参数包括设备节点、GPIO名称、以及默认值。这个函数在内核中定义在drivers/of/gpio.c文件中。
判断of_get_named_gpio_flags的返回值
函数of_get_named_gpio_flags的返回值是一个整数类型的GPIO号码,如果该函数返回负值,表示没有找到对应名称的GPIO或者该GPIO的属性信息不完整。因此可以通过判断该函数的返回值是否小于0来判断函数执行是否成功。例如,可以使用如下代码进行判断:
```c
int gpio = of_get_named_gpio_flags(node, "gpio-name", 0, NULL);
if (gpio < 0) {
printk(KERN_ERR "Failed to get GPIO\n");
return -ENODEV;
}
```
其中,node是指向设备节点的指针,"gpio-name"是需要查找的GPIO的名称,0表示查找第一个匹配的GPIO,NULL表示不需要获取GPIO属性信息。如果函数返回值小于0,则打印错误信息并返回对应的错误码。
阅读全文