一.gpio 子系统简介
gpio 子系统顾名思义,就是用于初始化 GPIO 并且提供相应的 API 函数,比如设置 GPIO为输入输出,读取 GPIO 的值等。gpio 子系统的主要目的就是方便驱动开发者使用 gpio,驱动 开发者在设备树中添加 gpio 相关信息,然后就可以在驱动程序中使用 gpio 子系统提供的 API函数来操作 GPIO,Linux 内核向驱动开发者屏蔽掉了 GPIO 的设置过程,极大的方便了驱动开 发者使用 GPIO。
二.GPIO子系统的架构图
gpiolib为驱动程序提供的服务包括:
-> 系统中GPIO信息的管理,比如有多少个GPIO,每个GPIO的编号是什么等;
-> GPIO的申请、释放;
-> IO的输入、输出方向的设置;IO电平的输出或者输入设置;以及GPIO与中断号的相互转换;
-> DTS中关于GPIO相关的配置信息的解析;
-> gpio系统与sysfs文件系统的交互;
-> gpio系统与debugfs文件系统的交互等。
三.架构实现
gpio_chip接口: