Linux 驱动开发 / gpio子系统 / 快速入门
扫描二维码
随时随地手机看文章
一、gpio 与 pinctrl
二、内核里如何引用 gpio
三、gpio 子系统框架
四、应用层如何访问 gpio
一、gpio 与 pinctrl
本文主要关注 gpio 子系统,但是老吴认为必要先说明一下 pinctrl 子系统和 gpio 子系统的之间关系。pinctrl 的作用:- 引脚复用,例如某个引脚即可用作为普通的gpio,也可以作为UART的TX;
- 引脚配置,一般包括上下拉、驱动能力等;
- 作为输入功能时,支持读引脚值;
- 作为输出功能时,支持输出高低电平;
- 部分 gpio 还负责接收中断;
文档 | 简介 |
---|---|
index.rst | 文档目录和源码清单 |
intro.rst | gpio 简介 |
driver.rst | 描述如何编写 gpio controller driver |
consumer.rst | 描述 gpio consumer 如何使用 gpio |
board.rst | 描述设备如何申请 gpio |
drivers-on-gpio.rst | 列举一些使用了gpio子系统的常见驱动,例如 leds-gpio.c、gpio_keys.c 等 |
legacy.rst | 描述 legacy gpio 接口 |
二、内核里如何引用 gpio
2 个步骤:
1) 设备树里添加 gpio mappings
示例:foo_device {
compatible = "packt,gpio-descriptor-sample";
led-gpios = <