驱动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 函数










浙公网安备 33010602011771号