驱动Driver-GPIO子系统
GPIO子系统介绍
- gpio 子系统顾名思义,就是用于初始化 GPIO 并且提供相应的 API 函数,比如设置 GPIO为输入输出,读取 GPIO 的值等。gpio 子系统的主要目的就是方便驱动开发者使用 gpio,驱动
开发者在设备树中添加 gpio 相关信息,然后就可以在驱动程序中使用 gpio 子系统提供的 API函数来操作 GPIO,Linux 内核向驱动开发者屏蔽掉了 GPIO 的设置过程,极大的方便了驱动开发者使用 GPIO。
使用前提
- 在配置GPIO引脚之前,需要配置好引脚的电器属性,也就是pinctrl子系统
设备树中GPIO信息
设备树中的 gpio 信息
- 先设置引脚的电器属性,也就是pinctrl节点
- 设置GPIO节点
- gpio1组
- 数据手册GPIO寄存器组
gpio 子系统 API 函数
1.gpio_request 函数
2.gpio_free 函数
3.gpio_direction_input 函数
4.gpio_direction_output 函数
5.gpio_get_value 函数
6.gpio_set_value 函数
设备树中添加 gpio 节点模板
1.创建 test 设备节点
2.添加 pinctrl 信息
3.添加GPIO属性信息
与GPIO相关的OF函数
of_gpio_named_count 函数
of_gpio_count 函数
of_get_named_gpio 函数