tsc2007电阻触摸屏调试

本文详细介绍了在Ubuntu 12.04环境下,针对Samsung 6818核心板上的tsc2007电阻触摸屏进行驱动修改与调试的过程。内容涵盖修改触摸屏分辨率、注册I2C设备、校准坐标以及解决Android系统中的触鼠问题。调试涉及内核层、设备节点和Android Frameworks层,提供了解决触摸响应不正常问题的思路与方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#触摸屏调试

开发环境:ubuntu12.04LTS
Android核心板型号:Samsung6818
电阻触摸屏型号:tsc2007
作者:@happyguy96 && @ccxx0914

本篇文章以移植电阻触摸屏tsc2007为例,记录触摸屏驱动程序如何修改,以及调试触摸屏的思路和经验,希望对有需要的朋友所有帮助。

##修改触摸屏驱动

1. 修改触摸屏分辨率(\kernel\drivers\input\touchscreen\tsc2007.c)
保证触摸屏与显示屏分辨率相同,本例中为1024*768,修改如下:

 #define LCD_SCREEN_X_PIXEL	1024 
 #define LCD_SCREEN_Y_PIXEL	768 

2. 定义并注册I2c设备
触摸屏属于I2C设备,开机时需要注册到系统中。
首先在文件\kernel\arch\arm\plat-s5p6818\drone\device.c,添加tsc2007设备驱动的相关结构体。

#if defined(CONFIG_TOUCHSCREEN_TSC2007)
#include <linux/i2c/tsc2007.h>
static struct tsc2007_platform_data tsc2007_s5p6818_platform_data = {
   
    .model = 2007,
    .x_plate_ohms = 100,
	.poll_period = 5,
};

static struct i2c_board_info tsc2007_i2c_board_info[] = {
   
    {
   
        I2C_BOARD_INFO("tsc2007", (0x90>>1)),
        .platform_data = &tsc2007_s5p6818_platform_data,
        .irq = CFG_TSC2007_IRQ_IO
    },
};
#endif

其次,在函数nxp_board_devs_register()中将设备注册。
由设备注册函数可知,只有当显示屏型号和触摸屏类型同时满足的条件下,才能将tsc2007注册到I2c总线上。这里调试的时候需要注意,设备开机后,可以查看打印的注册信息,如果发现没有注册,可以查看当前显示屏型号在注册函数中是否包含;当前触摸屏类型是否为电阻屏,根据情况自行修改函数。

//设备注册nxp_board_devs_register()
#if defined(CONFIG_TOUCHSCREEN_TSC2007)
	if(((screen_type == MAIN_DISPLAY_DEVICE_LCD7_800x480) 
	||(screen_type == MAIN_DISPLAY_DEVICE_LCD7_1024x600) 
	||(screen_type == MAIN_DISPLAY_DEVICE_LCD_CUSTOM)) 
	||(screnn_type == MAIN_DISPLAY_DEVICE_LVDS10)
	&& (screen_tp_type == 1)){
   
        printk("plat: add device tsc2007\n");
        i2c_register_board_info(2, tsc2007_i2c_board_info, 1);                                         
    }
#endif
  1. 修改触摸中断的引脚CFG_IO_TOUCH_PENDOWN_DETECT
    开发板上触摸芯片的中断引脚所连的GPIO口、I2C设备注册时使用的中断引脚和触摸程序tsc2007.c中使用的中断引脚和这三者应该保持一致:
    (1)开发板的引脚实际连接情况为,触摸芯片中断引脚连接到了CPU的GPIO_C25引脚上,在内核中该引脚可用宏定义IRQ_GPIO_C_START + 25来表示。
    (2)在I2C设备注册中,tsc2007_i2c_board_info结构体里定义了中断信息irq=CFG_TSC2007_IRQ_IO,宏定义CFG_TSC2007_IRQ_IO所在的文件路径为\kernel\arch\arm\plat-s5p6818\drone\include\cfg_main.h
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值