Linux内核 GPIO操作部分API

内核中关于GPIO的操作API主要集中在<linux/of_gpio.h>和<linux/gpio.h>中,前者主要是GPIO直接与设备树相关的操作,在Linux 设备树操作API中已经记录过,后者主要是针对GPIO本身的操作,常用的有下面几个。

//linux/gpio.h
/**
 * gpio_request_one - request a single GPIO with initial configuration
 * @gpio:       the GPIO number
 * @flags:      GPIO configuration as specified by GPIOF_*
 * @label:      a literal description string of this GPIO
 */
int gpio_request_one(unsigned gpio, unsigned long flags, const char *label)

/* 判断gpio是否有效 */
bool gpio_is_valid(int number)

/**
 * 功能:设置指定gpio的工作模式为输入模式
 * @gpio - 编号(要找的是那个cell)
 * 失败:负数,绝对值错误码,成功:0
 */
int gpio_direction_input(unsigned gpio)

/**
 * 功能:设置指定gpio的工作模式为输出模式
 * gpio - 编号(要找的是那个cell)
 * 失败:负数,绝对值错误码,成功:0
 */
int gpio_direction_output(unsigned gpio, int value)

/* 设置GPIO的值 */
void gpio_set_value(unsigned gpio, int value)

/* 获取GPIO的值 */
int gpio_get_value(unsigned gpio)

/* 申请软中断到GPIO引脚 */
int gpio_to_irq(unsigned int gpio)

/* 释放GPIO */
gpio_free(unsigned gpio)
原文地址:https://www.cnblogs.com/xiaojiang1025/p/6388607.html