正文

8.4 MSM中的实现

Android系统级深入开发:移植与调试 作者:韩超


MSM的mahimahi平台具有触摸屏,轨迹球和简易的按键,这些功能在Android中的

8.4.1  触摸屏,轨迹球和按键驱动程序

MSM的Mahimahi平台的用户输入设备包括了以下几个Event设备。

  /dev/input/event4:几个按键

  /dev/input/event2:触摸屏

  /dev/input/event5:轨迹球

MSM触摸屏的驱动程序在drivers/input/touchscreen目录中的synaptics_i2c_rmi.c,这是一个i2c触摸屏的驱动程序。

MSM系统包含了按键和轨迹球的功能,具体的驱动程序在arch/arm/mach-msm/目录board-mahimahi-keypad.c文件中实现。

board-mahimahi-keypad.c中的全局定义如下所示:

实现包括了驱动程序和用户空间的内容。

按键和轨迹球是通过GPIO系统来实现的,因此定义了gpio_event_info类型的数组。"mahimahi-keypad"和"mahimahi-nav"分别是两个设备的名称。gpio_event_info 指针各式的数组mahimahi_input_info中包含了mahimahi_keypad_matrix_info.info,mahimahi_keypad_key_ info.info,jogball_x_axis.info.info和jogball_y_axis.info.info。

按键驱动是一个利用GPIO矩阵的驱动,由gpio_event_matrix_info矩阵定义,定义还需要包含按键的GPIO矩阵和input设备的信息,内容如下所示:

mahimahi_keypad_key_matrix _info和mahimahi_keypad _info是gpio_event_matrix_info类型的结构体,分别负责两个和一个按键的处理,实际上,MSM的Mahimahi平台基本上只有三个按键:Power,音量增加按键和音量减少按键。音量增加和音量减少的扫描码分别是KEY_VOLUMEUP(=115)和KEY_VOLUMEDOWN(=114)。

提示:音量控制的两个按键在全键盘的qwerty.kl有所定义,同时符合Linux的input设备和Android的按键标准。

轨迹球部分也是由GPIO实现的,由X方向和Y方向两部分组成,内容如下所示:

 

这里的轨迹球是用jog_axis_info类型的结构体进行定义的,这种设备的类型(type)是相对设备EV_REL。

 


上一章目录下一章

Copyright © 读书网 www.dushu.com 2005-2020, All Rights Reserved.
鄂ICP备15019699号 鄂公网安备 42010302001612号