触摸屏驱动代码

请问http://item.taobao.com/item.htm?spm=a230r.1.14.170.lUbqTg&id=43547275383&ns=1&abbucket=12#detail&qq-pf-to=pcqq.c2c 这块显示屏的驱动是否用这两段代码就够了,谢谢大神。

https://bitbucket.org/T-Firefly/firefly-rk3288/annotate/f4457fae482c3569ad1a8fcb863406d56add279d/kernel/drivers/input/touchscreen/rockchip_gslX680_firefly.c?at=pad

https://bitbucket.org/T-Firefly/firefly-rk3288/src/f4457fae482c3569ad1a8fcb863406d56add279d/kernel/drivers/input/touchscreen/rockchip_gslX680_firefly.h?at=pad

看一下makefile:
obj-$(CONFIG_TOUCHSCREEN_GSLX680) += rockchip_gslX680_firefly.o
obj-$(CONFIG_TOUCHSCREEN_GSLX680) += gsl_point_id.o
$(obj)/gsl_point_id.o: $(srctree)/$(obj)/gsl_point_id
cp $(srctree)/$(obj)/gsl_point_id $(obj)/gsl_point_id.o

大神你好,报错提示

scripts/Makefile.build:311: warning: overriding commands for target drivers/touchscreen/gsl_point_id.o' /home/gs/mlwk/ltib/rpm/BUILD/linux-3.0.35/drivers/touchscreen/Makefile:4: warning: ignoring old commands for target drivers/touchscreen/gsl_point_id.o’
make[2]: *** No rule to make target drivers/touchscreen/gsl_point_id.c', needed by drivers/touchscreen/gsl_point_id.o’. Stop.

这个SDK是?

zhansb 发表于 2015-3-31 11:38
这个SDK是?

你好,是在我们自己arm板上的linux(ltib),cpu是Freescale的

zhansb 发表于 2015-3-31 11:38
这个SDK是?

能用否?

求 gsl_point_id.c 文件。。。

楼主仔细看一下我贴出来的makefile

zhansb 发表于 2015-4-2 09:24
楼主仔细看一下我贴出来的makefile

你好, 就是按你的makefile写的,但make之后 有提示
scripts/Makefile.build:311: warning: overriding commands for target drivers/touchscreen/gsl_point_id.o' /home/gs/mlwk/ltib/rpm/BUILD/linux-3.0.35/drivers/touchscreen/Makefile:4: warning: ignoring old commands for target drivers/touchscreen/gsl_point_id.o’
make[2]: *** No rule to make target drivers/touchscreen/gsl_point_id.c', needed by drivers/touchscreen/gsl_point_id.o’. Stop.
文件夹中也没有生成gsl_point_id.o文件。我们这系统貌似一定要.c文件才能编译出ko吧。你们的系统做过什么调整么

没做特殊调整,主要是这个地方:
$(obj)/gsl_point_id.o: $(srctree)/$(obj)/gsl_point_id
cp $(srctree)/$(obj)/gsl_point_id $(obj)/gsl_point_id.o

zhansb 发表于 2015-4-2 10:43
没做特殊调整,主要是这个地方:
$(obj)/gsl_point_id.o: $(srctree)/$(obj)/gsl_point_id
cp $( …

假设成功编译的话,应该在文件夹下复制出.o文件吧

zhansb 发表于 2015-4-2 10:43
没做特殊调整,主要是这个地方:
$(obj)/gsl_point_id.o: $(srctree)/$(obj)/gsl_point_id
cp $( …

你好,可否详细解释下这两句代码? 抱歉我对shell脚本不是很懂。我在touchscreen目录下直接make含有您说的这两句代码的你们给出的Makefile文件,提示
make: Circular /gsl_point_id ← /gsl_point_id.o dependency dropped.

guoshuo 发表于 2015-4-2 15:04
你好,可否详细解释下这两句代码? 抱歉我对shell脚本不是很懂。我在touchscreen目录下直接make含有您说 …

这个是一个库文件编译进进去的,你的目录下有没有?

carlinluo 发表于 2015-4-2 16:11
这个是一个库文件编译进进去的,你的目录下有没有?

你好,这个文件有的。总共增加了4个文件: rockchip_gslX680_firefly.h, rockchip_gslX680_firefly.c, tp_suspend.h和 gsl_point_id,都放在了driver/input/touchscreen文件夹下,和你们给的源码位置一样。该文件夹下Makefile也按你们的源码做了修改。
编译提示:
make[3]: *** No rule to make target drivers/input/touchscreen/gsl_point_id.c', needed by drivers/input/touchscreen/gsl_point_id.o’. Stop.

追到/scripts/Makefile.build第310行,编译是要求提供.c后缀的源文件的,我看了你们/scripts下的Makefile.build,也是一样的。应该是不支持没有后缀名的文件作为源文件。不知道你们在Makefile中加入的两句是如何跳过系统的这个要求的。如果我在driver/input/touchscreen下直接make,提示gsl_point_id.o的circular dependency,不知道你们是怎么编译通过的。

guoshuo 发表于 2015-4-3 10:05
你好,这个文件有的。总共增加了4个文件: rockchip_gslX680_firefly.h, rockchip_gslX680_firefly.c, tp …

百度下,肯定可以的

我接手这个工作了,楼主去法国了。
我来说说我是怎么弄的,让后来人也好少走弯路。
在移植这个屏的时候需要注意的是,触控IC不一定是代码中所说的gsl3680,也有可能是 gsl1680/gslX1688,这个屏的I2C地址是 0x41

A. 调试最好从I2C调试开始,根据思立微的文档,该IC有2个地址 0x40或者0x41,这2个地址是根据芯片外围电路的不同而不同,不是同时可用的,这个可以看官方中文DataSheet,配套RK3288的屏,地址是0x41, 在未加载FW的情况下,芯片可以进行I2C通信。

B. 据FAE称,寄存器0xfc是该IC 的 ID寄存器(4个字节,高2个字节有效),gsl3680读出来应该是 0x8036****,配套RK3288的这个10寸屏读出来是 0xA088****,据FAE称,只有gsl1680或者gsl1688才会读出这个数值,因为不好拆开屏,我就没去计较了

C. 0xb0 应该是该IC的类似状态寄存器的存在,在加载FW后,读出来是 0x5a 5a 5a 5a

D. 在这边的平台上(imx6q),打印信息没显示出来,在查看中断和报点信息时,我使用了这个系统的打印语句( printk(KERN_ERR"***") ),没用print_info。

E. 在配置KConfig文件的时候,我是采用了将驱动直接链接到内核的方式(在KConfig菜单选择时按Y键),因为有个 gsl_point_id的存在(没有提供.c文件,就一个.o文件),我没法将这个驱动链接成单独的.ko文件(编译通不过,个人能力有限).

D.有个 tp_suspend.h的文件,也需要拷贝过来。

可以结帖了

感谢ml_user的分享

请问这个问题是怎么解决的,

guoshuo 发表于 2015-4-2 10:33
你好, 就是按你的makefile写的,但make之后 有提示
scripts/Makefile.build:311: warning: overriding …

这个问题我也遇到了,请问怎么处理的呢?