Firefly开源社区

标题: 触摸屏驱动代码 [打印本页]

作者: guoshuo    时间: 2015-3-31 10:24
标题: 触摸屏驱动代码
请问http://item.taobao.com/item.htm? ... p;qq-pf-to=pcqq.c2c 这块显示屏的驱动是否用这两段代码就够了,谢谢大神。

https://bitbucket.org/T-Firefly/ ... 80_firefly.c?at=pad

https://bitbucket.org/T-Firefly/ ... 80_firefly.h?at=pad
作者: zhansb    时间: 2015-3-31 11:00
看一下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
作者: guoshuo    时间: 2015-3-31 11:26
大神你好,报错提示

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.

作者: zhansb    时间: 2015-3-31 11:38
这个SDK是?
作者: guoshuo    时间: 2015-3-31 14:59
zhansb 发表于 2015-3-31 11:38
这个SDK是?

你好,是在我们自己arm板上的linux(ltib),cpu是Freescale的
作者: guoshuo    时间: 2015-4-1 08:59
zhansb 发表于 2015-3-31 11:38
这个SDK是?

能用否?
作者: guoshuo    时间: 2015-4-1 16:07
求 gsl_point_id.c 文件。。。
作者: zhansb    时间: 2015-4-2 09:24
楼主仔细看一下我贴出来的makefile
作者: guoshuo    时间: 2015-4-2 10:33
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吧。你们的系统做过什么调整么
作者: zhansb    时间: 2015-4-2 10:43
没做特殊调整,主要是这个地方:
$(obj)/gsl_point_id.o: $(srctree)/$(obj)/gsl_point_id
        cp $(srctree)/$(obj)/gsl_point_id $(obj)/gsl_point_id.o
作者: guoshuo    时间: 2015-4-2 11:43
zhansb 发表于 2015-4-2 10:43
没做特殊调整,主要是这个地方:
$(obj)/gsl_point_id.o: $(srctree)/$(obj)/gsl_point_id
        cp $( ...

假设成功编译的话,应该在文件夹下复制出.o文件吧
作者: guoshuo    时间: 2015-4-2 15:04
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.

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

这个是一个库文件编译进进去的,你的目录下有没有?
作者: guoshuo    时间: 2015-4-3 10:05
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,不知道你们是怎么编译通过的。

作者: carlinluo    时间: 2015-4-3 11:58
guoshuo 发表于 2015-4-3 10:05
你好,这个文件有的。总共增加了4个文件: rockchip_gslX680_firefly.h, rockchip_gslX680_firefly.c, tp ...

百度下,肯定可以的
作者: ml_user    时间: 2015-6-3 17:19
我接手这个工作了,楼主去法国了。
我来说说我是怎么弄的,让后来人也好少走弯路。
在移植这个屏的时候需要注意的是,触控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    时间: 2015-6-3 17:20
可以结帖了
作者: zhansb    时间: 2015-6-3 18:47
感谢ml_user的分享
作者: junhai    时间: 2016-7-21 19:54
请问这个问题是怎么解决的,
作者: junhai    时间: 2016-7-21 19:57
guoshuo 发表于 2015-4-2 10:33
你好, 就是按你的makefile写的,但make之后 有提示
scripts/Makefile.build:311: warning: overriding  ...

这个问题我也遇到了,请问怎么处理的呢?
作者: luminmin882001    时间: 2016-8-24 15:05
我估计我也马上要遇到了,楼主还是很强大的。
作者: 小默jiang    时间: 2017-10-10 15:36
zhansb 发表于 2015-6-3 18:47
感谢ml_user的分享

版主,我对这几段代码不清楚,能否简单解释下

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

obj-$(CONFIG_TOUCHSCREEN_GSLX680_MT70817V2)        += rockchip_gslX680_firefly.o
obj-$(CONFIG_TOUCHSCREEN_GSLX680_MT70817V2) += gsl_point_id_mt70817v2.o
$(obj)/gsl_point_id_mt70817v2.o: $(srctree)/$(obj)/gsl_point_id_mt70817v2
        cp $(srctree)/$(obj)/gsl_point_id_mt70817v2 $(obj)/gsl_point_id_mt70817v2.o

这段 会对 触控驱动  有什么影响??
作者: 加菲猫    时间: 2017-10-23 18:54
谢谢楼主分享,我也遇到类似问题




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1