免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 9244 | 回复: 10
打印 上一主题 下一主题

[内核入门] linux下写驱动控制gpio的方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-05-16 21:29 |只看该作者 |倒序浏览
本帖最后由 牡丹岩 于 2015-05-16 21:30 编辑

linux下写驱动控制gpio时,见过两种方法:

1. 用request_mem_region函数和ioremap等得到控制寄存器的地址,然后用iowrite32函数控制该gpio

2. 用gpio_request 和 gpio_set_value函数来控制gpio引脚

请问:这两种方法有什么区别,分别适用什么场合?知道的大哥请回啊,小弟心急,在此谢过!

论坛徽章:
1
拜羊年徽章
日期:2015-03-03 16:15:43
2 [报告]
发表于 2015-05-22 11:08 |只看该作者
第二个是内核提供的gpio 子系统,一般就用它。
第一个就是你自己实现一个和第二个相似的东西,

论坛徽章:
0
3 [报告]
发表于 2015-05-22 22:32 |只看该作者
回复 2# linuxfellow

非常感谢你的回复,那么请问在platform总线里面都是把设备和驱动分开,而且都是用的第一种方法。
按你的意思也可以用第二种方法吗?我就特想知道什么场合下用什么方法啊,大神继续解答啊
   

论坛徽章:
2
寅虎
日期:2014-11-25 21:47:342015小元宵徽章
日期:2015-03-06 15:58:18
4 [报告]
发表于 2015-05-23 06:48 |只看该作者
本帖最后由 镇水铁牛 于 2015-05-23 06:59 编辑

request_mem_region,ioremap一般多用于MMIO的处理。
如果只是想控制器GPIO,不一定必须把你的驱动注册到某个总线中吧。

论坛徽章:
0
5 [报告]
发表于 2015-05-23 21:29 |只看该作者
回复 4# 镇水铁牛

呃 确实第一种方法多用于处理I/O内存,但如果想利用平台总线写驱动,是不是只能用这种方法呢?
还有linux里面写驱动是不是要尽量利用平台总线,以求将设备和驱动分开方便移植?还是说平台总线用的少?
   

论坛徽章:
2
寅虎
日期:2014-11-25 21:47:342015小元宵徽章
日期:2015-03-06 15:58:18
6 [报告]
发表于 2015-05-24 09:40 |只看该作者
回复 5# 牡丹岩
呃 确实第一种方法多用于处理I/O内存,但如果想利用平台总线写驱动,是不是只能用这种方法呢?
话说总线驱动只是为了规范某些复杂驱动的编写,降低其复杂度,并且系统便于管理,平台驱动理论上意义不大,它不像pci总线等。

还有linux里面写驱动是不是要尽量利用平台总线,以求将设备和驱动分开方便移植?还是说平台总线用的少?
你明白设备链和驱动链,平台总线上,理论上是没有设备链的概念吧,平台驱动就是为表示那些不在标准系统总线而抽象出来的特殊总线,当然是可以用的,一般意义不大。
   

论坛徽章:
0
7 [报告]
发表于 2015-05-25 22:12 |只看该作者
回复 6# 镇水铁牛
我的理解平台总线上就是有设备链表和驱动链表啊,当设备链表上的设备和驱动链表上的驱动匹配时就可以执行驱动探测函数(probe())
然后就可以开始真正的驱动调用了。不知我是否理解错了呢?
还有按照你所说的平台总线在实际项目中应该用的很少吗?

   

论坛徽章:
2
寅虎
日期:2014-11-25 21:47:342015小元宵徽章
日期:2015-03-06 15:58:18
8 [报告]
发表于 2015-05-25 23:54 |只看该作者
回复 7# 牡丹岩


然后就可以开始真正的驱动调用了。不知我是否理解错了呢?
你的理解是正确的。

还有按照你所说的平台总线在实际项目中应该用的很少吗?
我接触平台总线比较少哈,弱弱的问下:平台总线上都有哪些物理设备?

论坛徽章:
0
9 [报告]
发表于 2015-05-30 00:52 |只看该作者
本帖最后由 牡丹岩 于 2015-05-30 00:54 编辑

回复 8# 镇水铁牛

1、平台总线是个虚拟的总线,是为那些linux系统没有专门为某些设备设计总线的设备提供的一种总线。就好比linux有了usb总线,那么U盘就可以用usb总线,linux有了IIC总线,IIC设备就能用IIC总线,但还是有好多设备在linux中找不到自己对应的总线,那么这种设备就可以使用平台总线!

2、请问你对linux下的哪些总线比较熟悉呢?
   

论坛徽章:
2
寅虎
日期:2014-11-25 21:47:342015小元宵徽章
日期:2015-03-06 15:58:18
10 [报告]
发表于 2015-05-30 06:49 |只看该作者
回复 9# 牡丹岩

pci和scsi
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP