原文链接:https://blog.csdn.net/haigand/article/details/89539739
1.对于特定的目标板来说 我们GPIO有两种 一种是片内的 一种是拓展的
2.他们的主要的区别:
(1)访问方式:GPIO驱动映射的IOMEM,这个映射的空间就是GPIO的寄存器地址,那么这个地址里边有一个就是控制寄存器,不同的目标板,对GPIO的控制策略是不一样的,如有些拉高写1 而有些则是写0
(2)配置方式上的区别:有些配置为输入(四种) 有些配置为输出(四种)
①推挽输出 开漏输出 高低电平有效等
(3)GPIO特性不同:
一个是中断 一个是触发唤醒 一个是上(下)拉
3.硬件功能分类
(1)GPIO从整个linux驱动来说 也是和其他的模块是一样的东西,就是一样的通过寄存器来配置相应的GPIO的功能,这些所有的功能也是通过arm的数据手册的GPIO章节来获得的
(2)主要分为功能和特性两大类
①功能:普通IO还是诸如片选功能的IO
②主要是上下拉电阻的特性 驱动能力特性 GPIO方向的特性
③如果是输入的方向 驱动里边可以去获取GPIO的电平的状态
如果是输出的方向 驱动里边可以配置高低有效状态电平
(3)GPIO的中断功能:
①其实就是有一类中断控制器的中断源是设置为GPIO引脚的信号变化作为了中断源
②可以通过中断控制器的驱动去使能和失能中断 设定中断的触发方式 以及中断状态的清零
Note:发现没有,其实所谓的驱动是定义两个或者多个模块之间为达成某件事而进行的交互的一个流程
4.软件抽象表示屏蔽硬件的差异
1pin ctrl subsystem:一般是为了实现对一组或者多组特定功能的pin组合,如GPIO1-4作为SPI的引脚,让后就有设置这些GPIO的需求 所以就需要设计这么一个pin ctrl的子系统去管理这些任务或者事情
2GPIO子系统:这个子系统主要任务就是管理管理GPIO控制器,提供该模块纵向和横向的接口
3GPIO中断芯片驱动:在中断子系统里边 有一部分内容是GPIO引脚的中断 这个时候 中断控制器有一部分就是连着支持中断的GPIO的, 这个部分的需求就诞生了这个所谓的GPIO interupt chip driver
linux_驱动_GPIO_基础全面介绍_操作思路_人个学习拓展笔记
最新推荐文章于 2023-02-19 20:22:54 发布