下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于DragonBoard410c开发板的按键和轨迹球驱动实现代码前言:在上一篇博客《基于DragonBoard410c开发板的触摸屏驱动编写》中,我已经描述了触摸屏驱动编写过程,以及其架构,这篇博客我会跟大家讲述一下按键和轨迹球驱动。一、按键和轨迹球驱动MSM具有按键和轨迹球的功能,对应的驱动程序在文件arch/arm/mach-msm/board-mahimahi-keypad.c中,接下来开始介绍此文件的实现流程。(1)文件board-mahimahi-keypad.c中的全局定义代码如下所示:staticstructgpio_event_info*mahimahi_input_info[]={
&mahimahi_keypad_matrix_,
//键盘矩阵
&mahimahi_keypad_key_,
//键盘信息
&jogball_x_,
//轨迹球X方向信息
&jogball_y_,
//轨迹球Y方向信息
};
staticstructgpio_event_platform_datamahimahi_input_data={
.names={
"mahimahi-keypad",
//按键设备
"mahimahi-nav",
//轨迹球设备
NULL,
},
.info=mahimahi_input_info,
.info_count=ARRAY_SIZE(mahimahi_input_info),
.power=jogball_power,
};
staticstructplatform_devicemahimahi_input_device={
.name=GPIO_EVENT_DEV_NAME,
.id=0,
.dev={
.platform_data=&mahimahi_input_data,
},
};
按键和轨迹球是通过GPIO系统来实现的,因此定义了gpio_event_info类型的数组。“mahimahi-keypad”和“mahimahi-nav”分别是两个设备的名称。gpio_event_info指针各式的数组mahimahi_input_info中包含了mahimahi_keypad_matrix_,mahimahi_keypad_key_,jogball_x_和jogball_y_。按键驱动是一个利用GPIO矩阵的驱动,由gpio_event_matrix_info矩阵定义,定义还需要包含按键的GPIO矩阵和input设备的信息,内容如下所示:staticunsignedintmahimahi_col_gpios[]={33,32,31};staticunsignedintmahimahi_row_gpios[]={42,41,40};#defineKEYMAP_INDEX(col,row)
((col)*ARRAY_
SIZE(mahimahi_row_gpios)+(row))
#defineKEYMAP_SIZE
(ARRAY_SIZE(mahimahi_col_gpios)*\
ARRAY_SIZE(mahimahi_row_gpios))
staticconstunsignedshortmahimahi_keymap
[KEYMAP_SIZE]={
//按键映射关系
[KEYMAP_INDEX(0,0)]=KEY_VOLUMEUP,/*115*/
[KEYMAP_INDEX(0,1)]=KEY_VOLUMEDOWN,/*114*/
[KEYMAP_INDEX(1,1)]=MATRIX_KEY(1,BTN_MOUSE),
};
staticstructgpio_event_matrix_infomahimahi
_keypad_matrix_info={
.info.func=gpio_event_matrix_func,
//关键函数实现
.keymap=mahimahi_keymap,
.output_gpios=mahimahi_col_gpios,
.input_gpios=mahimahi_row_gpios,
.noutputs=ARRAY_SIZE(mahimahi_col_gpios),
.ninputs=ARRAY_SIZE(mahimahi_row_gpios),
.settle_time.tv.nsec=40*NSEC_PER_USEC,
.poll_time.tv.nsec=20*NSEC_PER_MSEC,
.flags=(GPIOKPF_LEVEL_TRIGGERED_IRQ|
GPIOKPF_REMOVE_PHANTOM_KEYS|
GPIOKPF_PRINT_UNMAPPED_KEYS),
};
staticstructgpio_event_direct_entrymahimahi_
keypad_key_map[]={//Power按键
{
.gpio
=MAHIMAHI_GPIO_POWER_KEY,
.code
=KEY_POWER,
},
};
staticstructgpio_event_input_infomahimahi_
keypad_key_info={
.info.func=gpio_event_input_func,
//关键函数实现
.info.no_suspend=true,
.flags=0,
.type=EV_KEY,
.keymap=mahimahi_keypad_key_map,
.keymap_size=ARRAY_SIZE(mahimahi_keypad_key_map)
};
keypad_key_matrix_info和keypad_info是gpio_event_matrix_info类型的结构体,分别负责两个和一个按键的处理,实际上,MSM平台基本上只有三个按键:Power,音量增加按键和音量减少按键。音量增加和音量减少的扫描码分别是KEY_VOLUMEUP(=115)和KEY_VOLUMEDOWN(=114)。提示:音量控制的两个按键在全键盘的qwerty.kl有所定义,同时符合Linux的input设备和Android的按键标准。轨迹球部分也是由GPIO实现的,由X方向和Y方向两部分组成,内容如下所示:staticuint32_tjogball_x_gpios[]={
MAHIMAHI_GPIO_BALL_LEFT,MAHIMAHI_GPIO_BALL_RIGHT,
};
staticuint32_tjogball_y_gpios[]={
MAHIMAHI_GPIO_BALL_UP,MAHIMAHI_GPIO_BALL_DOWN,
};
staticstructjog_axis_infojogball_x_axis={
//X轴的内容
.info={
.info.func=gpio_event_axis_func,
//关键函数实现
.count=ARRAY_SIZE(jogball_x_gpios),
.dev=1,
.type=EV_REL,
.code=REL_X,
.decoded_size=1U<<ARRAY_SIZE(jogball_x_gpios),
.map=jogball_axis_map,
.gpio=jogball_x_gpios,
.flags=GPIOEAF_PRINT_UNKNOWN_DIRECTION,
}
};
staticstructjog_axis_infojogball_y_axis={
//Y轴的内容
.info={
.info.func=gpio_event_axis_func,
//关键函数实现
.count=ARRAY_SIZE(jogball_y_gpios)
.dev=1,
.type=EV_REL,
.code=REL_Y,
.decoded_size=1U<<ARRAY_SIZE(jogball_y_gpios),
.map=jogball_axis_map,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中外合资企业合同书模板2024年
- 商标转让协议
- 房屋租赁合同补充协议案例
- 司机的劳动合同协议范本2024年
- 二手车转让协议书的范本
- 电子商务加盟合同范本2024年
- 6.20条例条令学习
- 2024年学校物品采购合同
- 2024年美容院用工合同
- 专业劳动合同模板
- GB 21258-2024燃煤发电机组单位产品能源消耗限额
- 1.1公有制为主体多种所有制经济共同发展课件-高中政治统编版必修二经济与社会
- 研发投入核算管理制度
- 新疆哈密地区(2024年-2025年小学四年级语文)人教版期中考试(上学期)试卷及答案
- 2024-2030年中国SUV行业市场深度调研及发展前景与投资前景研究报告
- 2023年广州市教育系统招聘优才计划笔试真题
- 24.1.2 垂直于弦的直径(1) 人教版数学九年级上册课件
- 新教材适用高中物理第一章动量守恒定律测评新人教版选择性必修第一册
- 完整2024年国有企业管理人员处分条例专题课件
- 机器视觉课件
- 江苏金茂源年产10万吨乙醛项目监测报告(定稿)
评论
0/150
提交评论