Thread (6 messages) 6 messages, 3 authors, 2017-11-18

Re: edt-ft5x06 question

From: Giulio Benetti <hidden>
Date: 2017-11-18 21:17:02

Hi Simon,

Il 17/11/2017 20:13, Simon Budig ha scritto:
[Trimming down the CC list a bit...]
Thanks
Hi all.
quoted
On Fri, 2017-11-17 at 18:16 +0100, Luca Ceresoli wrote:
What about all the other registers? The datasheet lists a few dozen,
not only 0x80. Are they implemented in the panel you are working on?
quoted
The point is that datasheet seems to be official by Focaltech,
like if they deliver that IC with a standard FW inside.
I can't find a way to safely probe if it's a standard FW or from
EDT M09
or M06.
Since everything is based on the programmed firmware, and there's no
"standard" way to detect firmware version, every firmware detection
is
bound to be a hack. But there's no better way I'm afraid. Thus device
tree seems the only reliable way...

However, did you check registers FIRMID, FT5201ID (CTPM Vendor ID)
and ID_G_LIB_VERSION_H/L? According to their name they might hold
interesting info.
When I tried to read them from a solomon/goldentek display/touch I did
get unreliable data, i.e. I got different values when I had a power
cycle inbetween the startups.
Basically the firwmare did not implement these registers on the i2c
registers and I believe I got whatever happened to sit in the RAM at
that point. And that was the point where I gave up on trying to
determine the vendor and product, unless I knew where to look for it
(mainly the EDT family of touches).
And that dubiousness extended to the other registers. At some point I
had arbitrary register access via sysfs, but I did not actually bother
to determine if they had any effect or provided useful values.
Trying to communicate with representatives from Solomon Goldentek (in
this case) proved to be incredibly frustrating, because they did not
even understand what I was asking for. You don't get a datasheet
describing the actual firmware in the chip, it always is the same
focaltec datasheet that seems to consist of a lot of wishful thinking.
Sometimes you get a linux driver that might even implement a firmware
update method, but the quality of the code typically is not that great.
Fortunately the "Generic" method implemented in the patch I referred to
earlier seems to work reasonably well for the Displays I have at hand.
You can configure the max. resolution via devicetree and that gets you
95% of the way.
I would not mind additional properties in the devicetree for certain
quirks of specific devices (but encoding the vendor of the touch seems
beyond the point to me).
What seems clear to me is that datasheet I’ve pointed out is the basic firmware by focaltech.
And it’s compatible with M09 style.
But...
As for frequent recalibration I am not so
sure, but then I've not yet seen a touch device where this has to be
done.
We’ve experienced this in every product we have done and we sell.
At this time there are 3k pcs out with recalibration on 3 different machines, that otherwise did not work properly.
I mean touch behind 4mm of glass or plexiglass.

At this point, since I need all the other registers only because of that, I would proceed on writing a different driver specific for focaltech standard firmware as their official datasheet states.

Something like ft-ft5x.c, without making edt-ft5x.c more complicated, in fact what I suggest is specific to focaltech standard firmware only and is not applicable to edt or other specific firmware.

What do you think?

Regards
(for the records: the "M12" series from EDT is based on a different IC,
but their firmware implements a M09-style protocol with a few
additions, mainly to identify the panel.)
Bye,
        Simon

-- 
Giulio Benetti
R&D Manager &
Advanced Research

MICRONOVA SRL
Sede: Via A. Niedda 3 - 35010 Vigonza (PD)
Tel. 049/8931563 - Fax 049/8931346
Cod.Fiscale - P.IVA 02663420285
Capitale Sociale € 26.000 i.v.
Iscritta al Reg. Imprese di Padova N. 02663420285
Numero R.E.A. 258642
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help