2410移植触摸屏驱动
来源:互联网 发布:c语言break语句 编辑:程序博客网 时间:2024/04/27 15:37
主机:ubuntu 8.10 x86_64
交叉编译器:/usr/local/arm/3.3.2/bin/arm-linux-
内核版本:2.6.22
触摸屏的驱动patch来自openmoko,而openmoko wiki上说触摸屏驱动来自IPAQ-H1940 Project。
我是以前用mokomakefile编译neo 1973的rootfs时保留的那些patch,可以从openmoko的svn得到。
我传到这里下载。
直接打这个patch就能工作,不过记得选上 System Type ---> S3C2410 Machines ---> IPAQ H1940。
我没有直接打patch,而是根据patch修改而来。
改动的文件有
arch/arm/plat-s3c24xx/devs.c 修改
include/asm-arm/plat-s3c24xx/devs.h 修改
arch/arm/mach-s3c2410/mach-smdk2410.c 修改
drivers/input/touchscreen/Kconfig 修改
drivers/input/touchscreen/Makefile 修改
drivers/input/touchscreen/s3c2410_ts.c 新增
下面是修改过程
arch/arm/plat-s3c24xx/devs.c 里加上头文件
#include <asm/arch/ts.h>
在合适的地方加上
/* Touchscreen */
struct platform_device s3c_device_ts = {
.name = "s3c2410-ts",
.id = -1,
};
EXPORT_SYMBOL(s3c_device_ts);
static struct s3c2410_ts_mach_info s3c2410ts_info;
void __init set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info)
{
memcpy(&s3c2410ts_info,hard_s3c2410ts_info,sizeof(struct s3c2410_ts_mach_info));
s3c_device_ts.dev.platform_data = &s3c2410ts_info;
}
EXPORT_SYMBOL(set_s3c2410ts_info);
====================
include/asm-arm/plat-s3c24xx/devs.h里加上
extern struct platform_device s3c_device_ts;
=====================
arch/arm/mach-s3c2410/mach-smdk2410.c
加上头文件
#include <asm/arch/ts.h>
在合适的地方加上
/*Config for TouchScreen*/
static struct s3c2410_ts_mach_info MY2410_ts_cfg __initdata = {
.delay = 10000,
.presc = 49,
.oversampling_shift = 2,
};
在static struct platform_device *smdk2410_devices[] __initdata结构体里
加上&s3c_device_ts,像这样
static struct platform_device *smdk2410_devices[] __initdata = {
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_ts,
&s3c_device_wdt,
&s3c_device_i2c,
&s3c_device_iis,
};
在static void __init smdk2410_init(void)函数里加上
set_s3c2410ts_info(&MY2410_ts_cfg);
================================
只剩下drivers/input/touchscreen/s3c2410_ts.c这个真正的驱动文件了,
它的内容如下。
编译,下载,运行
测试触摸屏
内核启动信息里有
s3c2410 TouchScreen successfully loaded
input: s3c2410 TouchScreen as /class/input/input0
dev 目录下多了一个主设备号为13的ts0设备
cat /sys/class/input/input0/name结果为
s3c2410 TouchScreen
我cat /dev/ts0 然后触摸屏幕,打印出来的是乱码。
改变printk 打印级别
echo 8 > /proc/sys/kernel/printk
打印所有内核信息,再触摸,有坐标显示了。:)
- 2410移植触摸屏驱动
- 触摸屏驱动移植 2410+linux 2.6.13
- S3c2410触摸屏驱动移植
- FS_S5PC100触摸屏驱动移植
- usb触摸屏驱动移植
- mini2440触摸屏驱动移植
- 触摸屏驱动移植调试
- 触摸屏驱动移植
- AM1808触摸屏驱动移植
- s3c6410 触摸屏驱动移植
- 【笔记】mini2440触摸屏驱动移植
- Qt触摸屏音频驱动移植
- 触摸屏和ADC驱动移植
- 触摸屏驱动剖析与移植
- Linux下触摸屏驱动移植
- 移植tiny210的 触摸屏驱动
- tiny210触摸屏驱动移植问题
- fl2440 触摸屏驱动的移植
- Ubnutn切换root用户
- S3c2410开发板linux2.6移植触摸屏驱动移植
- [转]解决EOS启动“不能连接到Server”的问题
- Apache认证总结
- 课程 Java Web程序设计08: JSP脚本元素
- 2410移植触摸屏驱动
- Console.WriteLine 字符串格式
- 中文乱码问题
- 课程 Java Web程序设计09: JSP页指令
- TEST
- 课程 Java Web程序设计10: 在JSP文档中包含文件
- Ubuntu 分区与格式化
- 单影、单月、丹心
- Java中的assert使用