基于tiny210的四线触摸屏驱动修改(一)
来源:互联网 发布:淘宝怎么开通客服 编辑:程序博客网 时间:2024/05/21 17:03
开发板:tiny210
内核:linux-2.6.35.7
触摸屏:3.5寸触摸屏
由于tiny210默认的触摸屏采用的是一线触摸,所使用的驱动是[*]Mini210 1-Wire host and Touch Screen Driver,而现在要使用四线触摸,因此配置内核如下:
Device Drivers --->
Input device support --->
[*] Touchscreens --->
<*> S3C touchscreen driver
< > Mini210 1-Wire host and Touch Screen Driver
在/arch/arm/mach-s5pv210/mach-mini210.c找到s3c_device_1wire,并配置如下:
#ifdef CONFIG_TOUCHSCREEN_S3C
&s3c_device_ts,
#endif
#ifdef CONFIG_TOUCHSCREEN_1WIRE
&s3c_device_1wire,
#endif
根据tiny210的datasheet,开发板是支持两个触摸屏的,分别是Touch Screen0和Touch Screen1,在此我们接的是Touch Screen1,所以我们使用的ADC Control Register(7.7.1.1章节)是TSADCCON1,它的地址是 0xE170_1000。而内核中并没有该寄存器的定义,因此我们在/arch/arm/mach-s5pv210/include/mach/map.h定义如下:
#define S5PV2XX_PA_ADC1 (0xE1701000)
#define S3C_PA_ADC1 S5PV2XX_PA_ADC1接下来我们在/arch/arm/mach-s5pv210/mach-mini210.c中根据datasheet修改其中针对触摸屏驱动的相关参数:
#if defined(CONFIG_TOUCHSCREEN_S3C)
static struct s3c_ts_mach_info s3c_ts_platform __initdata = {
.delay = 10000,
.presc = 49,
.oversampling_shift = 6,//2
.resol_bit = 10,//12
.s3c_adc_con = ADC_TYPE_2,
};
/* Touch srcreen */
static struct resource s3c_ts_resource[] = {
[0] = {
.start = S3C_PA_ADC1,
.end = S3C_PA_ADC1 + SZ_4K - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = IRQ_PENDN1,
.end = IRQ_PENDN1,
.flags = IORESOURCE_IRQ,
},
[2] = {
.start = IRQ_ADC1,
.end = IRQ_ADC1,
.flags = IORESOURCE_IRQ,
}
};
struct platform_device s3c_device_ts = {
.name = "s3c-ts",
.id = -1,
.num_resources = ARRAY_SIZE(s3c_ts_resource),
.resource = s3c_ts_resource,
};
void __init s3c_ts_set_platdata(struct s3c_ts_mach_info *pd)
{
struct s3c_ts_mach_info *npd;
npd = kmalloc(sizeof(*npd), GFP_KERNEL);
if (npd) {
memcpy(npd, pd, sizeof(*npd));
s3c_device_ts.dev.platform_data = npd;
} else {
pr_err("no memory for Touchscreen platform data\n");
}
}
#endif
下来修改/drivers/input/touchscreen/ts-s3c.c驱动程序。由于代码太长,因此另起一章。
- 基于tiny210的四线触摸屏驱动修改(一)
- 基于tiny210的四线触摸屏驱动修改(二)
- 基于tiny210的四线触摸屏驱动修改(三)
- 移植tiny210的 触摸屏驱动
- 基于S3c6410触摸屏驱动分析(一)
- 基于S3c6410触摸屏驱动分析(一)
- tiny210触摸屏驱动移植问题
- 基于 mini2440 电阻式触摸屏(四):mini2440触摸屏驱动分析
- 基于 mini2440 电阻式触摸屏(四):mini2440触摸屏驱动分析
- 基于 mini2440 电阻式触摸屏(四):mini2440触摸屏驱动分析
- 基于 mini2440 电阻式触摸屏(四):mini2440触摸屏驱动分析
- 基于 mini2440 电阻式触摸屏(四):mini2440触摸屏驱动分析
- 基于 mini2440 电阻式触摸屏(四):mini2440触摸屏驱动分析
- 基于 mini2440 电阻式触摸屏(四):mini2440触摸屏驱动分析
- 基于OK6410的触摸屏驱动
- 触摸屏驱动(基于mini2440)
- 触摸屏驱动(基于mini2440)
- 四线电阻式触摸屏驱动的优化
- Outlook 2010 "无法到达以下收件人" 解决办法
- windows7 忘记登录密码的解决方法
- BSTR、LPSTR、LPWSTR、CString、VARIANT、COleVariant 、_variant_t、CComBSTR、_bstr_t
- Windows下使用GNU编译器
- 年终最有可能被老板“干掉”的十类员工!
- 基于tiny210的四线触摸屏驱动修改(一)
- jQuery 取值、赋值的基本方法
- 《大数据时代》摘抄,第一部分大数据时代的思维变革(2、不是精确性,而是混杂性)
- USB 3G(E261)
- YUV420_to_RGB24 算法
- 有关(int&)和(int)的区别
- nginx学习笔记
- dockBar焦点问题 imageView实现闪烁效果
- Sql Server中一个表2个字段关联同一个表(代码解决)