devm_gpio_request_one用法示例
时间: 2023-05-16 16:05:38 浏览: 443
Pinctrl配置-sofia机器调试指导
devm_gpio_request_one是一个Linux内核中的函数,用于请求一个GPIO引脚。以下是一个使用devm_gpio_request_one的示例代码:
```
#include <linux/gpio.h>
static int my_driver_probe(struct platform_device *pdev)
{
int ret;
struct device *dev = &pdev->dev;
struct gpio_desc *gpio;
gpio = devm_gpiod_get(dev, "my-gpio", GPIOD_OUT_LOW);
if (IS_ERR(gpio)) {
dev_err(dev, "Failed to get GPIO: %ld\n", PTR_ERR(gpio));
return PTR_ERR(gpio);
}
ret = devm_gpio_request_one(dev, gpio_get_number(gpio), GPIOF_OUT_INIT_LOW, "my-gpio");
if (ret) {
dev_err(dev, "Failed to request GPIO: %d\n", ret);
return ret;
}
/* Do something with the GPIO */
return 0;
}
```
在这个示例中,我们首先使用devm_gpiod_get函数获取一个GPIO描述符,然后使用gpio_get_number函数获取该GPIO的编号。接下来,我们使用devm_gpio_request_one函数请求该GPIO,并设置其初始状态为低电平。如果请求成功,该函数将返回0,否则返回一个负数错误代码。最后,我们可以在驱动程序中使用该GPIO。
阅读全文