jorjin ap module增加tsc2007触摸屏支持
2012-09-26 16:24
134 查看
有了之前的real210增加tsc2007支持的经验,这个就简单多了。
1.直接修改board支持文件如下:
41 #ifdef CONFIG_TOUCHSCREEN_TSC2007
42 #include <linux/i2c/tsc2007.h>
43 #endif
1048 /* tsc2007 platform data
1049 */
1050 #define TSC2007_IRQ_GPIO (38)
1051 #define TSC2007_IRQ (OMAP_GPIO_IRQ(TSC2007_IRQ_GPIO))
1052
1053 static int tsc2007_hw_init(void)
1054 {
1055 int err;
1056 omap_cfg_reg(TSC2007_IRQ_GPIO);
1057 err=gpio_request(TSC2007_IRQ_GPIO,"tsc2007 irq");
1058 if(err){
1059 pr_err("tsc2007 irq gpio request err\n");
1060 return err;
1061 }
1062
1063 err=gpio_direction_input(TSC2007_IRQ_GPIO);
1064 if(err){
1065 pr_err("tsc2007 irq gpio init input err %d\n",err);
1066 gpio_free(TSC2007_IRQ_GPIO);
1067 return err;
1068 }
1069 //set_irq_type(TSC2007_IRQ,IRQTYPE_EDGE_FALLING);
1070 enable_irq(gpio_to_irq(TSC2007_IRQ_GPIO));
1071 printk("tsc2007 gpio init ok\n");
1072 return 0;
1073 }
1074
1075 static void tsc2007_hw_remove(void)
1076 {
1077 omap_cfg_reg(TSC2007_IRQ_GPIO);
1078 gpio_free(TSC2007_IRQ_GPIO);
1079 }
1080
1081 static int tsc2007_get_pandown_state(void)
1082 {
1083 int dat;
1084 //s3c_gpio_cfgpin(TSC2007_INT)
1085 dat=gpio_get_value(TSC2007_IRQ_GPIO);
1086 return (dat==0)?1:0;
1087 }
1088 static struct tsc2007_platform_data tsc2007_data={
1089 .model=2007,
1090 .x_plate_ohms=180,
1091 .init_platform_hw=tsc2007_hw_init,
1092 .exit_platform_hw=tsc2007_hw_remove,
1093 .get_pendown_state=tsc2007_get_pandown_state,
1094 };
将如下代码加入到一个i2c_board_info的结构体变量里面
1114 {
1115 I2C_BOARD_INFO("tsc2007",(0x90>>1)),
1116 .platform_data=&tsc2007_data,
1117 .irq=TSC2007_IRQ,
1118 },
调用omap_register_i2c_bus()函数注册i2c设备。
2.修改tsc2007.c
316 err = request_irq(ts->irq, tsc2007_irq,IRQF_TRIGGER_FALLING ,
317 client->dev.driver->name, ts);
好了,大功告成。
1.直接修改board支持文件如下:
41 #ifdef CONFIG_TOUCHSCREEN_TSC2007
42 #include <linux/i2c/tsc2007.h>
43 #endif
1048 /* tsc2007 platform data
1049 */
1050 #define TSC2007_IRQ_GPIO (38)
1051 #define TSC2007_IRQ (OMAP_GPIO_IRQ(TSC2007_IRQ_GPIO))
1052
1053 static int tsc2007_hw_init(void)
1054 {
1055 int err;
1056 omap_cfg_reg(TSC2007_IRQ_GPIO);
1057 err=gpio_request(TSC2007_IRQ_GPIO,"tsc2007 irq");
1058 if(err){
1059 pr_err("tsc2007 irq gpio request err\n");
1060 return err;
1061 }
1062
1063 err=gpio_direction_input(TSC2007_IRQ_GPIO);
1064 if(err){
1065 pr_err("tsc2007 irq gpio init input err %d\n",err);
1066 gpio_free(TSC2007_IRQ_GPIO);
1067 return err;
1068 }
1069 //set_irq_type(TSC2007_IRQ,IRQTYPE_EDGE_FALLING);
1070 enable_irq(gpio_to_irq(TSC2007_IRQ_GPIO));
1071 printk("tsc2007 gpio init ok\n");
1072 return 0;
1073 }
1074
1075 static void tsc2007_hw_remove(void)
1076 {
1077 omap_cfg_reg(TSC2007_IRQ_GPIO);
1078 gpio_free(TSC2007_IRQ_GPIO);
1079 }
1080
1081 static int tsc2007_get_pandown_state(void)
1082 {
1083 int dat;
1084 //s3c_gpio_cfgpin(TSC2007_INT)
1085 dat=gpio_get_value(TSC2007_IRQ_GPIO);
1086 return (dat==0)?1:0;
1087 }
1088 static struct tsc2007_platform_data tsc2007_data={
1089 .model=2007,
1090 .x_plate_ohms=180,
1091 .init_platform_hw=tsc2007_hw_init,
1092 .exit_platform_hw=tsc2007_hw_remove,
1093 .get_pendown_state=tsc2007_get_pandown_state,
1094 };
将如下代码加入到一个i2c_board_info的结构体变量里面
1114 {
1115 I2C_BOARD_INFO("tsc2007",(0x90>>1)),
1116 .platform_data=&tsc2007_data,
1117 .irq=TSC2007_IRQ,
1118 },
调用omap_register_i2c_bus()函数注册i2c设备。
2.修改tsc2007.c
316 err = request_irq(ts->irq, tsc2007_irq,IRQF_TRIGGER_FALLING ,
317 client->dev.driver->name, ts);
好了,大功告成。
相关文章推荐
- Android增加Happy Touch触摸屏支持
- ijkPlayer支持https和增加沉浸式带有so文件,EXOplayer升级到r.2.5.4
- 在内核中增加对yaffs文件系统的支持
- Openwrt增加对 sd card 支持
- nginx增加lua支持
- ubuntu下virtual box运行windows增加usb支持
- 使用JOTM为Servlets增加事务支持(4)
- 为OLED屏增加GUI支持
- 支持所有浏览器,通过JS为 Table表增加、删除一行
- Git@OSC 增加 SVN 支持
- vs2010 vs2012中增加JSon的支持
- Spring MVC 4.2 增加 CORS 支持
- 在WAMPSERVER下增加多版本的PHP(PHP5.4,PHP5.6)支持
- 3. Android2.3为MediaScanner增加其它格式的支持
- 在附件管理模块中增加对FTP 上传和预览的支持
- 给 Cocos2d 增加对 4 英寸屏幕的支持 (iPhone 5, iPod touch 5 代)
- Angular增加国际化支持
- TextMate里增加Erlang支持
- DISCUZ论坛的UBB编辑器(增加灵活调用,支持ASP)