OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4555|回复: 5

关于操作GPIO相关函数的疑问

[复制链接]

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2018-12-26
在线时间
24 小时
发表于 2021-12-18 13:39:34 | 显示全部楼层 |阅读模式
1金钱
我看到内核里面有很多对于gpio操作的接口,比如gpio_request、gpiod_request、pinctrl_gpio_request这三个函数,作用都是一样的,是都在使用吗?是否有新旧之分?

最佳答案

查看完整内容[请看2#楼]

通常用的有这几个:gpio_request、gpiod_request、devm_gpio_request,这些函数都是用来申请GPIO的,至于pinctrl_gpio_request这个没见过, gpio_request和gpiod_request这两个函数的区别在于对GPIO的描述不同,gpio_request用一个int类型的编号来描述GPIO,gpiod_request则用struct gpio_desc数据结构来描述GPIO,那么操作 GPIO的函数也是不同的,譬如设置GPIO输出,int类型描述的GPIO使用gpio_direction_output函数,而struct ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

712

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2178
金钱
2178
注册时间
2018-8-27
在线时间
258 小时
发表于 2021-12-18 13:39:35 | 显示全部楼层
通常用的有这几个:gpio_request、gpiod_request、devm_gpio_request,这些函数都是用来申请GPIO的,至于pinctrl_gpio_request这个没见过,
gpio_request和gpiod_request这两个函数的区别在于对GPIO的描述不同,gpio_request用一个int类型的编号来描述GPIO,gpiod_request则用struct gpio_desc数据结构来描述GPIO,那么操作
GPIO的函数也是不同的,譬如设置GPIO输出,int类型描述的GPIO使用gpio_direction_output函数,而struct gpio_desc描述的GPIO则使用gpiod_direction_output函数。
当然int和struct gpio_desc数据结构之间是可以互转的,gpio_request函数内部其实也是通过gpiod_request来实现的,也就是说内核里边最终还是通过struct gpio_desc来描述GPIO。
至于devm_gpio_request跟gpio_request的区别在于,gpio_request函数申请GPIO之后需要调用gpio_free来释放GPIO,如果使用devm_gpio_request函数申请则无需自己释放,系统会帮你释放,譬如你注销驱动模块、或者是驱动模块加载报错退出时系统会帮你自动释放。
森罗万象
回复

使用道具 举报

2

主题

592

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1458
金钱
1458
注册时间
2019-7-28
在线时间
137 小时
发表于 2021-12-18 17:17:46 | 显示全部楼层
可以跟下去看函数封装
回复

使用道具 举报

9

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2020-1-26
在线时间
47 小时
发表于 2021-12-20 19:31:08 | 显示全部楼层
xiaotaotao 发表于 2021-12-20 10:57
通常用的有这几个:gpio_request、gpiod_request、devm_gpio_request,这些函数都是用来申请GPIO的,至于pi ...

厉害,学习了,GPIO我还没细看过
回复

使用道具 举报

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2018-12-26
在线时间
24 小时
 楼主| 发表于 2022-4-20 20:34:30 | 显示全部楼层
xiaotaotao 发表于 2021-12-20 10:57
通常用的有这几个:gpio_request、gpiod_request、devm_gpio_request,这些函数都是用来申请GPIO的,至于pi ...

感谢大佬的解答!
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2022-4-4
在线时间
1 小时
发表于 2022-4-30 22:09:12 | 显示全部楼层
谢谢细心的大佬
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 10:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表