#include <linux/gpio.h>
int gpio_request(
unsigned gpio,
const char *label);
void gpio_free(
unsigned gpio);
int gpio_direction_input(
unsigned gpio);
int gpio_direction_output(
unsigned gpio,
int value);
int gpio_get_value(
unsigned gpio);
void gpio_set_value(
unsigned gpio,
int value);
int gpio_to_irq(
unsigned gpio);
在内核里用什么具体值来表示一个io口? 这是由芯片厂家来定义的.
一般情况下, io口的定义是在内核源码arch/arm/mach-xxxx/include/mach/gpio.h.
我们的板的io口定义是在: arch/arm/mach-sunxi/include/mach/gpio.h
49
50 #define GPIOA(n) (SUNXI_PA_BASE + (n)) //PA, n表示这组里的第几个IO口
51 #define GPIOB(n) (SUNXI_PB_BASE + (n))
52 #define GPIOC(n) (SUNXI_PC_BASE + (n))
53 #define GPIOD(n) (SUNXI_PD_BASE + (n))
54 #define GPIOE(n) (SUNXI_PE_BASE + (n))
55 #define GPIOF(n) (SUNXI_PF_BASE + (n))
56 #define GPIOG(n) (SUNXI_PG_BASE + (n))
57 #define GPIOH(n) (SUNXI_PH_BASE + (n))
58 #define GPIOI(n) (SUNXI_PI_BASE + (n))
59 #define GPIOJ(n) (SUNXI_PJ_BASE + (n))
60 #define GPIOK(n) (SUNXI_PK_BASE + (n))
61 #define GPIOL(n) (SUNXI_PL_BASE + (n))
62 #define GPIOM(n) (SUNXI_PM_BASE + (n))
63 #define GPION(n) (SUNXI_PN_BASE + (n))
64 #define GPIOO(n) (SUNXI_PO_BASE + (n))
65 #define GPIO_AXP(n) (AXP_PIN_BASE + (n))