在写显示屏驱动的时候,参考例程里面利用的devm_gpiod_get_optional()函数来获取引脚信息
在driver/gpio/gpiolib-devres.c里面有该函数的定义
可以看到该函数会调用devm_gpiod_get_index_optional()函数,函数原型如下:
该函数调用devm_gpiod_get_index(),函数原型如下:
可以看到该函数会调用gpiod_get_index()函数
所以
devm_gpiod_get_optional(dev,con_id,flags)实际上为gpiod_get_index(dev, con_id, idx, flags);
对使用方法举个例子
假设设备树里面的有使用GPIO子系统,则
dc-gpios = <gpio 17 GPIO_ACTIVE_HIGH>;
rst-gpios = <gpio 18 GPIO_ACTIVE_HIGH>;
在驱动里面获取其引脚的方法为
devm_gpiod_get_optional(dev,“dc”,GPIOD_OUT_HIGH);
devm_gpiod_get_optional(dev,“rst”,GPIOD_OUT_HIGH);
有关gpiod的使用方法,可参考链接: link
https://blog.csdn.net/weiqifa0/article/details/105085365/