(今天只是简单的整理了GPIO子系统的通用功能,其他有时间再整理)
1.GPIO子系统的基础概念
linux驱动要屏蔽硬件的差异性 方便开发人员进行驱动程序的开发,linux系统就给我们准备了一套系统 GPIO子系统,假如有了GPIO子系统 你可以不看原理图就能写出GPIO的驱动。
2.GPIO子系统相关的API
2.1:申请一个IO口使用
函数的头文件:
linux/gpio.h
函数的原型:
int gpio_request(unsigned gpio, const char *label);
函数的参数:
unsigned gpio, GPIO口的编号,宏定义在:/arch/arm/mach-exynos/include/mach/gpio.h
const char *label 标签 随便写 但是最好有意义
函数的返回值:
成功返回 0
失败返回 负数
2.2 释放一个io口
void gpio_free(unsigned gpio);
函数的参数:
unsigned gpio:gpio口的编号
2.3 设置IO口工作模式为输出
int gpio_direction_output(unsigned gpio, int value)
函数的参数:
unsigned gpio, gpio口
int value 默认值
2.4 设置IO口工作模式为输入
int gpio_direction_input(unsigned gpio)
函数的参数:
unsigned gpio:gpio引脚
2.5 设置IO口的值
void gpio_set_value(unsigned int gpio, int value)
函数的参数:
unsigned int gpio, GPIO引脚
int value 要设置的值
2.6 获取IO口的值
int gpio_get_value(unsigned int gpio)
函数的参数:
unsigned int gpio, GPIO引脚