天嵌 ARM开发社区

 找回密码
 注册
查看: 10863|回复: 37

基于2440开发板移植ft5x06系列的电容屏驱动

[复制链接]
heycare 发表于 2012-11-20 10:33:32 | 显示全部楼层 |阅读模式
最近公司项目要求,需要在s3c2440平台上移植ft5x06系列的触摸屏。
想请问大家,有人做个该方面的工作吗?求指点一下方向、现在遇到挺多问题的:
1、ft5x06驱动移植,编译成功。但是/dev/event0设备没有产生,通过调试发现ft5x06_ts_prove函数没进去,导致设备注册不成功
2、ft5x06驱动依赖i2c,不知道是不是i2c驱动不行。内核已加入i2c驱动

 楼主| heycare 发表于 2012-11-20 13:00:55 | 显示全部楼层
static struct platform_device *tq2440_devices[] __initdata = {
        &s3c_device_usb,
        &s3c_device_lcd,
        &s3c_device_wdt,
        &s3c_device_i2c0,
        &s3c_device_iis,
        &s3c_device_rtc,
#ifdef CONFIG_DM9000
        &s3c_device_dm9000,
#endif
        &s3c_device_usbgadget,
        &s3c_device_uda134x,
};
回复 支持 1 反对 0

使用道具 举报

embedsky_lhh 发表于 2012-11-20 12:11:09 | 显示全部楼层
你平台设备注册了没?
 楼主| heycare 发表于 2012-11-20 13:47:58 | 显示全部楼层
在TQ2440底板测试i2c驱动通过,所读AT24c20数据正确。
现在就是触摸屏注册的问题了
注:内核是linux-2.6.30
核心板 TQ2440
底板是我们公司自己做的,为了上电容屏
embedsky_lhh 发表于 2012-11-20 13:57:12 | 显示全部楼层
你贴的是IIC设备驱动的那部分了,你要注册这个IIC设备到IIC总线中,在mach-tq2440中实现一个
static struct i2c_board_info ,然后注册到IIC总线中,你这驱动才会加载
 楼主| heycare 发表于 2012-11-20 14:24:55 | 显示全部楼层
我在我的触摸屏驱动ft5x06_ts.c 里面 init的时候
i2c_add_driver(&ft5x0x_ts_driver);
有这一行代码,这样算不算注册i2c设备驱动了
embedsky_lhh 发表于 2012-11-20 14:28:19 | 显示全部楼层
本帖最后由 embedsky_lhh 于 2012-11-20 14:29 编辑
heycare 发表于 2012-11-20 14:24
我在我的触摸屏驱动ft5x06_ts.c 里面 init的时候
i2c_add_driver(&ft5x0x_ts_driver);
有这一行代码,这样 ...

你这是添加这个设备驱动到IIC总线上,但你这个驱动谁来用呢?就需要你注册个设备了,就是把这个抽象的驱动实例化一个对象,也就是说,你注册的ID,和这个驱动一样就行,每注册一个,这个驱动的probe就调用一次,
你搜索下IIC注册很多相关的demo ,这个很简单,就加四五行代码就可以了
 楼主| heycare 发表于 2012-11-20 14:28:47 | 显示全部楼层
之前天嵌的触摸屏驱动tq2440_ts 在哪里注册设备呢?
使得有/dev/event0这个文件?
希望能够告诉代码在哪。
 楼主| heycare 发表于 2012-11-20 14:29:58 | 显示全部楼层
embedsky_lhh 发表于 2012-11-20 14:28
你这是添加这个设备驱动到IIC总线上,但你这个驱动谁来用呢?就需要你注册个设备了,就是把这个抽象的驱动 ...

你说得很对,我的设备注册不成功就是因为触摸屏的prove函数没进去。
我对内核是个新手,能够给里具体例子。
 楼主| heycare 发表于 2012-11-20 14:38:37 | 显示全部楼层
我还是自己找一下把。很感谢版主~
 楼主| heycare 发表于 2012-11-20 21:53:57 | 显示全部楼层
最近问题:
添加I2C设备到总线中。Linux启动的时候出现了这个问题:

}
下载到板子上出现如下信息:
==ft5x0x_ts_init==
==ft5x0x_ts_probe=
==kzalloc=
input: ft5x0x_ts as /devices/virtual/input/input0
msg ft5x0x_read_reg i2c read error: -6
[FST] Firmware version = 0xa6
==probe over =
ret=0
embedsky_lhh 发表于 2012-11-21 08:47:10 | 显示全部楼层
heycare 发表于 2012-11-20 21:53
最近问题:
添加I2C设备到总线中。Linux启动的时候出现了这个问题:

这个错是你的电容屏与板子之间的通信失败了吧,没读到数据
 楼主| heycare 发表于 2012-11-21 14:36:32 | 显示全部楼层
使用天嵌提供的内核加上应用程序i2c_rw.c进行对AT24C02 IIC设备进行读写是正常的。
我想问在写内核的iic设备驱动的时候  要不要把SDA对应对应的管脚配置为IRQ_EINT5
还有就是 内核里面的iic设备对应的中断号是IRQ_EINT5 还是ITR_IIC
embedsky_lhh 发表于 2012-11-21 14:41:48 | 显示全部楼层
heycare 发表于 2012-11-21 14:36
使用天嵌提供的内核加上应用程序i2c_rw.c进行对AT24C02 IIC设备进行读写是正常的。
我想问在写内核的iic设 ...

这个内核我们已经调试好了,你不要去修改IIC核心部分的代码,你试着用总线去访问你的电容屏,试试,就写个像i2c_rw.c那样的测试程序,看你的屏能否与板子正常通行,一般电容屏可能有引脚需要换醒或者激活的,这步千万别忘记了
 楼主| heycare 发表于 2012-11-21 14:47:10 | 显示全部楼层
那中断号的选择呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-9-28 07:25 , Processed in 1.015664 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表