devm_gpiod_get_optional原型
时间: 2023-09-30 15:08:58 浏览: 134
devm_gpiod_get_optional的原型如下:
```
struct gpio_desc *devm_gpiod_get_optional(struct device *dev,
const char *con_id,
enum gpiod_flags flags);
```
该函数用于获取一个GPIO描述符(gpio_desc)指针,该GPIO可能是可选的,因此如果该GPIO不存在则不会出错并返回NULL。函数使用设备模型(device model),因此在设备释放时会释放所获取的GPIO描述符。
参数说明:
- dev:指向设备结构体的指针。
- con_id:GPIO连接器ID的字符串。
- flags:GPIO描述符的标志位,如输入、输出、上拉等。
返回值:
- 成功:返回GPIO描述符的指针。
- 失败:返回NULL,并且不会设置errno。
相关问题
devm_gpiod_get_optional和devm_gpiod_get_optional区别
请注意,您提供的两个函数名称是相同的,我假设您想问的是以下两个函数的区别:
1. `devm_gpiod_get_optional()`:此函数是Linux内核提供的一个帮助程序,用于获取GPIO设备的可选引脚句柄(handle)。如果GPIO设备存在,则返回引脚句柄,否则返回NULL。此函数使用devres机制进行内存管理,因此如果使用devm_gpiod_get_optional()获取引脚句柄,则无需在使用完成后手动释放该句柄。
2. `devm_gpiod_get_optional()`:这是一个错误的函数名称,我猜测您想说的是`devm_gpio_get_optional()`。与`devm_gpiod_get_optional()`类似,此函数也是用于获取GPIO设备的可选GPIO句柄。但是,这个函数是用于旧版GPIO子系统,而不是新版GPIO子系统(gpiolib)。如果您的平台使用的是旧版GPIO子系统,则可以使用此函数来获取GPIO句柄,否则请使用`devm_gpiod_get_optional()`函数。
因此,这两个函数的区别在于它们所针对的GPIO子系统不同。`devm_gpiod_get_optional()`适用于新版GPIO子系统,而`devm_gpio_get_optional()`适用于旧版GPIO子系统。
devm_gpiod_get_optional
devm_gpiod_get_optional是一个函数,用于获取可选的GPIO设备。它是Linux内核中的一个函数,用于在设备树中查找GPIO设备,并返回一个GPIO描述符。如果找不到GPIO设备,则返回NULL。该函数使用devm_前缀,表示它是一个设备管理函数,可以自动释放资源。
阅读全文