linux3.4.0 按键驱动程序分析(pandaboard omap4460)
在内核中,按键的驱动程序已经设计好了,要使自己板上的按键工作起来,需要做的是在相应的文件中添加硬件信息,然后对内核进行正确的配置。
以下先使按键工作起来,再对驱动进行分析。
按键属于输入设备,所以在分析按键驱动之前要先学习input子系统的相关知识
1、内核配置:
Device Drivers ->
input device support ->
[*] keyboards ->
[*] GPIO buttons ->
2、添加硬件信息:
修改文件 /arch/arm/mach-omap2/board-omap4panda.c
第一处:
#include <linux/gpio_keys.h>
第二处:
static struct gpio_keys_button pandaboard_exp_gpio_keys[] = {
{
.code = KEY_HOME, //按键码,需要预先定义
.gpio = 36, //使用的GPIO口
.active_low = 1,
.desc = "pandaboard_exp_power",
.type = EV_KEY, //类型
.wakeup = 1,
.debounce_interval = 10, //去抖
},
{
.code = KEY_PROG1,
.gpio = 32,
.active_low = 1,
.desc = "pandaboard_exp_menu",
.type = EV_KEY,
.wakeup = 1,
.debounce_interval = 10,
},
{
.code = KEY_PROG2,
.gpio