基于S3C2440的Linux-3.6.6移植——按键驱动.doc
文本预览下载声明
?基于S3C2440的Linux-3.6.6移植——按键驱动
分类:?arm-linux驱动2013-04-13 20:54?2784人阅读?评论(2)?收藏?举报
对于s3c2440开发板上的几个按键功能,linux系统提供了很好的支持,只要把按键对应的IO端口配置好,按键就可以工作了。
针对我的开发板,为了配置按键的IO端口,需要修改arch/arm/mach-s3c24xx目录下的mach-zhaocj2440.c文件中的zhaocj2440_buttons结构为:
static struct gpio_keys_button zhaocj2440_buttons[] = {
?????? {
????????????? .gpio????????????? = S3C2410_GPF(0),???????????? /* K4 */
????????????? .code????????????? = KEY_F1,
????????????? .desc????????????? = Button 4,
????????????? .active_low???? = 1,
?????? },
?????? {
????????????? .gpio????????????? = S3C2410_GPF(1),???????????? /* K1 */
????????????? .code????????????? = KEY_F2,
????????????? .desc????????????? = Button 1,
????????????? .active_low???? = 1,
?????? },
?????? {
????????????? .gpio????????????? = S3C2410_GPF(2),???????????? /* K3 */
????????????? .code????????????? = KEY_F3,
????????????? .desc????????????? = Button 3,
????????????? .active_low???? = 1,
?????? },
?????? {
????????????? .gpio????????????? = S3C2410_GPF(4),???????????? /* K2*/
????????????? .code????????????? = KEY_POWER,
????????????? .desc????????????? = Button 2,
????????????? .active_low???? = 1,
?????? },
};
?
修改好后使用默认的menuconfig直接编译即可。把编译好的系统下载到开发板上,系统运行后,在dev目录有一个event0文件,这个就是按键设备。也可以通过下列命令查看一下设备信息:
[root@zhaocj /]#ls -l /proc/bus/input
-r--r--r--??? 1 0???????0?????????????? 0 Jan? 1 00:05 devices
-r--r--r--??? 1 0???????0?????????????? 0 Jan? 1 00:05 handlers
?
[root@zhaocj /]#cat /proc/bus/input/devices
I: Bus=0019 Vendor=0001 Product=0001Version=0100
N: Name=gpio-keys
P: Phys=gpio-keys/input0
S:Sysfs=/devices/platform/gpio-keys/input/input0
U: Uniq=
H: Handlers=kbd event0
B: PROP=0
B: EV=3
B: KEY=100000 00
?
下面我们就来具体测试一下按键功能:
[root@zhaocj/]#hexdump /dev/event0
0000000 44e4 386d 3190000f 0001 003d 0001 0000
0000010 44e4 386d 31c0000f 0000 0000 0000 0000
0000020 44e5 386d 3b9a0003 0001 003d 0000 0000
0000030 44e5 386d 3bbd0003 0000 0000 0000 0000
0000040 44ea 386d a2750008 0001 003c 0001 0000
0000050 44ea 386d a2a30008 000
显示全部