获取设备树中GPIO的第三个参数

Posted -tbd-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取设备树中GPIO的第三个参数相关的知识,希望对你有一定的参考价值。

1. xxx.dts 中有如下驱动的资源描述:

1 imx6-led{
2         compatible = "imx6,led";
3         led-green = <&gpio1 8 GPIO_ACTIVE_LOW>;
4         status = "okay";
5     };

GPIO_ACTIVE_LOW 表示低电平,与之相反的是GPIO_ACTIVE_HIGH 。

2. 获取第三个参数的代码如下:

 1 #include <linux/of.h>
 2 #include <linux/of_gpio.h>
 3
4
5 6 static int imx6_led_probe(struct platform_device *pdev) 7 { int gpio, flag; 8 struct device_node *led_node = pdev->dev.of_node; 9 10 gpio = of_get_named_gpio_flags(led_node, "led-green", 0, &flag); 11 if (!gpio_is_valid(gpio)){ 12 printk("invalid led-green: %d ",gpio); 13 return -1; 14 } 15 if (gpio_request(gpio, "led_green")) { 16 printk("gpio %d request failed! ",gpio); 17 return ret; 18 } 19 gpio_direction_output(gpio, flag);//flag 即第三个参数“GPIO_ACTIVE_LOW” 20   ////////xxxxxxxxxx
21   ////////xxxxxxxxxx
22 23 }

of_get_named_gpio_flags 从设备树中读取 led-green 的 GPIO 配置编号和标志,

标致即第三个参数“GPIO_ACTIVE_LOW”

以上是关于获取设备树中GPIO的第三个参数的主要内容,如果未能解决你的问题,请参考以下文章

Linux——Linux驱动之设备树中pinctrl和gpio子系统应用实践(如何使用其在设备树中配置GPIO,驱动中如何调用?)

Linux——Linux驱动之设备树中pinctrl和gpio子系统应用实践(如何使用其在设备树中配置GPIO,驱动中如何调用?)

pinctrl 和gpio 子系统实验

Linux驱动开发pinctrl子系统和gpio子系统

Linux驱动开发pinctrl子系统和gpio子系统

嵌入式Linux开发21——pinctrl 和 gpio 子系统