Re: edt-ft5x06 question

2017-11-17 Thread Giulio Benetti

Hi Luca,

Il 17/11/2017 18:16, Luca Ceresoli ha scritto:

Hi Giulio,

On 15/11/2017 17:30, Giulio Benetti wrote:

Hi Luca,

I had problems with e-mail filter, so I rebuilt yours by hand.
Forgive me.

See below.

Thanks
Kind regards


Hi Giulio,

On 14/11/2017 22:42, Giulio Benetti wrote:

Hello everybody,

I'm using ft5206 with edt-ft5x06.c driver,
but what I see is that registers with M09 or M06
seem different from focaltech ft5206
https://www.buydisplay.com/download/ic/FT5206.pdf

For example, except address 0x80 for threshold register(thgroup),
all the others don't appear:
GAIN 0x30 or 0x92 should be 0x82(thcal maybe?)

Can someone clarify this?


Are you having any problems, or just investigating?


I need to add some other IC register to calibrate sensibility with
different glasses, but starting from ft5x06 or other Focaltech standard
IC FW.


If I understood correctly you want to implement auto-calibration, and in
order to do that you need the four extra registers, not mentioned in the
Focaltech datasheet. Right?


Yes, I need them inside the driver.
And some of them could be useful also as attributes.




Maybe M06 or M09 are a custom firmware for focaltech ft5x,
then it has different registers?


All the FT5x06 are 8051-based chips designed to implement touchscreen
controllers. The FT5x26 are similar but with a more powerful core
(Cortex-M IIRC).

As far as I could understand and guess, their register interface is
fully implemented in firmware, so it could change completely from one
panel to another. However all panels that I have seen seem to use
firmwares with either the "M06" or the "M09" protocol, which are
implemented in the Linux driver.


In my case driver recognizes M09, but only address 0x80
register(thgroup) is correct.
The others:
GAIN: 0x92
GAIN: 0x93
GAIN: 0x94
GAIN: 0x95

are not described in that datasheet.


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?


Yes they are, but as Datasheet is signed, this makes me believe that 
that is the default firmware focaltech load in factory.

So yes, they're implemented in 4 different panels I have.




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...


I think the same.



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.


Still not, I will.



And did you consider read the "additional registers" tentatively during
probe to detect whether they are present? What effect would this have on
chips without those registers?


This doesn't sound so good to me.
It gives me an'idea of unstability.

So how can I go on?
Do I try to write a specific focaltech-ft5x.c driver?



Bye,




--
Giulio Benetti
R 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


Re: edt-ft5x06 question

2017-11-17 Thread Giulio Benetti

Hi Luca,

Il 17/11/2017 18:16, Luca Ceresoli ha scritto:

Hi Giulio,

On 15/11/2017 17:30, Giulio Benetti wrote:

Hi Luca,

I had problems with e-mail filter, so I rebuilt yours by hand.
Forgive me.

See below.

Thanks
Kind regards


Hi Giulio,

On 14/11/2017 22:42, Giulio Benetti wrote:

Hello everybody,

I'm using ft5206 with edt-ft5x06.c driver,
but what I see is that registers with M09 or M06
seem different from focaltech ft5206
https://www.buydisplay.com/download/ic/FT5206.pdf

For example, except address 0x80 for threshold register(thgroup),
all the others don't appear:
GAIN 0x30 or 0x92 should be 0x82(thcal maybe?)

Can someone clarify this?


Are you having any problems, or just investigating?


I need to add some other IC register to calibrate sensibility with
different glasses, but starting from ft5x06 or other Focaltech standard
IC FW.


If I understood correctly you want to implement auto-calibration, and in
order to do that you need the four extra registers, not mentioned in the
Focaltech datasheet. Right?


Yes, I need them inside the driver.
And some of them could be useful also as attributes.




Maybe M06 or M09 are a custom firmware for focaltech ft5x,
then it has different registers?


All the FT5x06 are 8051-based chips designed to implement touchscreen
controllers. The FT5x26 are similar but with a more powerful core
(Cortex-M IIRC).

As far as I could understand and guess, their register interface is
fully implemented in firmware, so it could change completely from one
panel to another. However all panels that I have seen seem to use
firmwares with either the "M06" or the "M09" protocol, which are
implemented in the Linux driver.


In my case driver recognizes M09, but only address 0x80
register(thgroup) is correct.
The others:
GAIN: 0x92
GAIN: 0x93
GAIN: 0x94
GAIN: 0x95

are not described in that datasheet.


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?


Yes they are, but as Datasheet is signed, this makes me believe that 
that is the default firmware focaltech load in factory.

So yes, they're implemented in 4 different panels I have.




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...


I think the same.



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.


Still not, I will.



And did you consider read the "additional registers" tentatively during
probe to detect whether they are present? What effect would this have on
chips without those registers?


This doesn't sound so good to me.
It gives me an'idea of unstability.

So how can I go on?
Do I try to write a specific focaltech-ft5x.c driver?



Bye,




--
Giulio Benetti
R 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


Re: edt-ft5x06 question

2017-11-17 Thread Luca Ceresoli
Hi Giulio,

On 15/11/2017 17:30, Giulio Benetti wrote:
> Hi Luca,
> 
> I had problems with e-mail filter, so I rebuilt yours by hand.
> Forgive me.
> 
> See below.
> 
> Thanks
> Kind regards
> 
>> Hi Giulio,
>>
>> On 14/11/2017 22:42, Giulio Benetti wrote:
>> > Hello everybody,
>> >
>> > I'm using ft5206 with edt-ft5x06.c driver,
>> > but what I see is that registers with M09 or M06
>> > seem different from focaltech ft5206
>> > https://www.buydisplay.com/download/ic/FT5206.pdf
>> >
>> > For example, except address 0x80 for threshold register(thgroup),
>> > all the others don't appear:
>> > GAIN 0x30 or 0x92 should be 0x82(thcal maybe?)
>> >
>> > Can someone clarify this?
>>
>> Are you having any problems, or just investigating?
> 
> I need to add some other IC register to calibrate sensibility with
> different glasses, but starting from ft5x06 or other Focaltech standard
> IC FW.

If I understood correctly you want to implement auto-calibration, and in
order to do that you need the four extra registers, not mentioned in the
Focaltech datasheet. Right?

>> > Maybe M06 or M09 are a custom firmware for focaltech ft5x,
>> > then it has different registers?
>>
>> All the FT5x06 are 8051-based chips designed to implement touchscreen
>> controllers. The FT5x26 are similar but with a more powerful core
>> (Cortex-M IIRC).
>>
>> As far as I could understand and guess, their register interface is
>> fully implemented in firmware, so it could change completely from one
>> panel to another. However all panels that I have seen seem to use
>> firmwares with either the "M06" or the "M09" protocol, which are
>> implemented in the Linux driver.
> 
> In my case driver recognizes M09, but only address 0x80
> register(thgroup) is correct.
> The others:
> GAIN: 0x92
> GAIN: 0x93
> GAIN: 0x94
> GAIN: 0x95
> 
> are not described in that datasheet.

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?

> 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.

And did you consider read the "additional registers" tentatively during
probe to detect whether they are present? What effect would this have on
chips without those registers?

Bye,
-- 
Luca


Re: edt-ft5x06 question

2017-11-17 Thread Luca Ceresoli
Hi Giulio,

On 15/11/2017 17:30, Giulio Benetti wrote:
> Hi Luca,
> 
> I had problems with e-mail filter, so I rebuilt yours by hand.
> Forgive me.
> 
> See below.
> 
> Thanks
> Kind regards
> 
>> Hi Giulio,
>>
>> On 14/11/2017 22:42, Giulio Benetti wrote:
>> > Hello everybody,
>> >
>> > I'm using ft5206 with edt-ft5x06.c driver,
>> > but what I see is that registers with M09 or M06
>> > seem different from focaltech ft5206
>> > https://www.buydisplay.com/download/ic/FT5206.pdf
>> >
>> > For example, except address 0x80 for threshold register(thgroup),
>> > all the others don't appear:
>> > GAIN 0x30 or 0x92 should be 0x82(thcal maybe?)
>> >
>> > Can someone clarify this?
>>
>> Are you having any problems, or just investigating?
> 
> I need to add some other IC register to calibrate sensibility with
> different glasses, but starting from ft5x06 or other Focaltech standard
> IC FW.

If I understood correctly you want to implement auto-calibration, and in
order to do that you need the four extra registers, not mentioned in the
Focaltech datasheet. Right?

>> > Maybe M06 or M09 are a custom firmware for focaltech ft5x,
>> > then it has different registers?
>>
>> All the FT5x06 are 8051-based chips designed to implement touchscreen
>> controllers. The FT5x26 are similar but with a more powerful core
>> (Cortex-M IIRC).
>>
>> As far as I could understand and guess, their register interface is
>> fully implemented in firmware, so it could change completely from one
>> panel to another. However all panels that I have seen seem to use
>> firmwares with either the "M06" or the "M09" protocol, which are
>> implemented in the Linux driver.
> 
> In my case driver recognizes M09, but only address 0x80
> register(thgroup) is correct.
> The others:
> GAIN: 0x92
> GAIN: 0x93
> GAIN: 0x94
> GAIN: 0x95
> 
> are not described in that datasheet.

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?

> 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.

And did you consider read the "additional registers" tentatively during
probe to detect whether they are present? What effect would this have on
chips without those registers?

Bye,
-- 
Luca


Re: Re: edt-ft5x06 question

2017-11-16 Thread Giulio Benetti

Hi Simon,

sorry for the mess with mailing list.
My mail filter gave me problems and removed e-mails from linux-input 
mailing list.


> Hi Giulio
>
> On Tue, 2017-11-14 at 22:42 +0100, Giulio Benetti wrote:
> > I'm using ft5206 with edt-ft5x06.c driver,
> > but what I see is that registers with M09 or M06
> > seem different from focaltech ft5206
> > https://www.buydisplay.com/download/ic/FT5206.pdf
> >
> > For example, except address 0x80 for threshold register(thgroup),
> > all the others don't appear:
> > GAIN 0x30 or 0x92 should be 0x82(thcal maybe?)
> >
> > Can someone clarify this?
>
> The Registers depend heavily on the actual firmware flashed into the
> ft5x06. M06 and M09 refers to the resp. touch glasses from EDT (hence
> the name of the driver), who have a custom firmware installed. Despite
> being based on the same focaltec chips, their i2c interface is totally
> different...
>
> Most non-EDT ft5x06 touches do use a communication protocol similiar to
> the M09 series. Unfortunately I've witnessed a lot that it is not
> possible to rely on the registers that are supposed to provide
> vendor/model information (according to the Focaltec datasheet). It
> always takes a little bit of tweaking to figure out what resolution
> they actually provide (which is possible with the custom EDT-M09
> firmware).
>
> There is a patch series I've sent to this mailinglist (and need to
> resend, because the first part of the patch series is bogus) that might
> improve the model detection a little bit, but it by no means is
> bulletproof.
>
> (see https://patchwork.kernel.org/patch/9987467/ and
> https://patchwork.kernel.org/patch/9987471/)
>
> For non-EDT touches that are bonded together with a display it is a
> reasonable assumption that the touch resolution matches the screen
> resolution (Which I consider unfortunate: Why throw away more
> resolution?).
>
> Anyway if you have suggestions for improving this driver I am
> interested in feedback.

I only have an idea,
since we can't know for sure what's the Vendor,
and we can't know for sure max_x and max_y,
I would like to add a field in dt to select which vendor to use.
For example, if you choose "Edt" as vendor, than driver behaves like it 
does now, otherwise there could be "Focaltech" as vendor, and in that 
case I could find a way to get max_x and max_y.
If I can't find a way, we put the need to be inserted in dts both max_x 
and max_y.


Also I would like to export more registers as attributes and dt.

And last. In my company, on previous projects,
we experienced problems with temperature and mechanical drifts.
So the only solution was to send an autocalibrate every n seconds,
when ts is untouched.
I did this adding a timed tasklet inside driver,
so I would like to do the same.

Now what comes in my mind is,
do we need to keep everything in the same driver edt-ft5x.c?
Or does it make sense to write new one(focaltech-ft5x.c) based on 
edt-ft5x.c?


Best regards

>
> Bye,
> Simon
>
> --
>  kernel concepts GmbH Simon Budig
>  Sieghuetter Hauptweg 48  simon.budig@x
>  D-57072 Siegen   +49-271-771091-17
>  http://www.kernelconcepts.de/
>  HR Siegen, HR B 9613; Geschäftsführer: Ole Reinhardt
--
Giulio Benetti
R 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


Re: Re: edt-ft5x06 question

2017-11-16 Thread Giulio Benetti

Hi Simon,

sorry for the mess with mailing list.
My mail filter gave me problems and removed e-mails from linux-input 
mailing list.


> Hi Giulio
>
> On Tue, 2017-11-14 at 22:42 +0100, Giulio Benetti wrote:
> > I'm using ft5206 with edt-ft5x06.c driver,
> > but what I see is that registers with M09 or M06
> > seem different from focaltech ft5206
> > https://www.buydisplay.com/download/ic/FT5206.pdf
> >
> > For example, except address 0x80 for threshold register(thgroup),
> > all the others don't appear:
> > GAIN 0x30 or 0x92 should be 0x82(thcal maybe?)
> >
> > Can someone clarify this?
>
> The Registers depend heavily on the actual firmware flashed into the
> ft5x06. M06 and M09 refers to the resp. touch glasses from EDT (hence
> the name of the driver), who have a custom firmware installed. Despite
> being based on the same focaltec chips, their i2c interface is totally
> different...
>
> Most non-EDT ft5x06 touches do use a communication protocol similiar to
> the M09 series. Unfortunately I've witnessed a lot that it is not
> possible to rely on the registers that are supposed to provide
> vendor/model information (according to the Focaltec datasheet). It
> always takes a little bit of tweaking to figure out what resolution
> they actually provide (which is possible with the custom EDT-M09
> firmware).
>
> There is a patch series I've sent to this mailinglist (and need to
> resend, because the first part of the patch series is bogus) that might
> improve the model detection a little bit, but it by no means is
> bulletproof.
>
> (see https://patchwork.kernel.org/patch/9987467/ and
> https://patchwork.kernel.org/patch/9987471/)
>
> For non-EDT touches that are bonded together with a display it is a
> reasonable assumption that the touch resolution matches the screen
> resolution (Which I consider unfortunate: Why throw away more
> resolution?).
>
> Anyway if you have suggestions for improving this driver I am
> interested in feedback.

I only have an idea,
since we can't know for sure what's the Vendor,
and we can't know for sure max_x and max_y,
I would like to add a field in dt to select which vendor to use.
For example, if you choose "Edt" as vendor, than driver behaves like it 
does now, otherwise there could be "Focaltech" as vendor, and in that 
case I could find a way to get max_x and max_y.
If I can't find a way, we put the need to be inserted in dts both max_x 
and max_y.


Also I would like to export more registers as attributes and dt.

And last. In my company, on previous projects,
we experienced problems with temperature and mechanical drifts.
So the only solution was to send an autocalibrate every n seconds,
when ts is untouched.
I did this adding a timed tasklet inside driver,
so I would like to do the same.

Now what comes in my mind is,
do we need to keep everything in the same driver edt-ft5x.c?
Or does it make sense to write new one(focaltech-ft5x.c) based on 
edt-ft5x.c?


Best regards

>
> Bye,
> Simon
>
> --
>  kernel concepts GmbH Simon Budig
>  Sieghuetter Hauptweg 48  simon.budig@x
>  D-57072 Siegen   +49-271-771091-17
>  http://www.kernelconcepts.de/
>  HR Siegen, HR B 9613; Geschäftsführer: Ole Reinhardt
--
Giulio Benetti
R 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


Re: edt-ft5x06 question

2017-11-15 Thread Giulio Benetti

Hi Simon,

sorry but as for Luca I've lost mail with mail filter.
See below my ideas on how to improve it.

Thanks
Cheers

Il 15/11/2017 17:30, Giulio Benetti ha scritto:

Hi Luca,

I had problems with e-mail filter, so I rebuilt yours by hand.
Forgive me.

See below.

Thanks
Kind regards

 > Hi Giulio,
 >
 > On 14/11/2017 22:42, Giulio Benetti wrote:
 > > Hello everybody,
 > >
 > > I'm using ft5206 with edt-ft5x06.c driver,
 > > but what I see is that registers with M09 or M06
 > > seem different from focaltech ft5206
 > > https://www.buydisplay.com/download/ic/FT5206.pdf
 > >
 > > For example, except address 0x80 for threshold register(thgroup),
 > > all the others don't appear:
 > > GAIN 0x30 or 0x92 should be 0x82(thcal maybe?)
 > >
 > > Can someone clarify this?
 >
 > Are you having any problems, or just investigating?

I need to add some other IC register to calibrate sensibility with 
different glasses, but starting from ft5x06 or other Focaltech standard 
IC FW.


 >
 > > Maybe M06 or M09 are a custom firmware for focaltech ft5x,
 > > then it has different registers?
 >
 > All the FT5x06 are 8051-based chips designed to implement touchscreen
 > controllers. The FT5x26 are similar but with a more powerful core
 > (Cortex-M IIRC).
 >
 > As far as I could understand and guess, their register interface is
 > fully implemented in firmware, so it could change completely from one
 > panel to another. However all panels that I have seen seem to use
 > firmwares with either the "M06" or the "M09" protocol, which are
 > implemented in the Linux driver.

In my case driver recognizes M09, but only address 0x80 
register(thgroup) is correct.

The others:
GAIN: 0x92
GAIN: 0x93
GAIN: 0x94
GAIN: 0x95

are not described in that datasheet.
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.

I wouldn't write a different driver ft5x.c because it's a repeatition,
but EDT seems a special version(FW) of ft5x.

Maybe on dt-bindings I could force to be EDT or standard.
On legacy sunxi-3.4 the driver handled this as datasheet I mentioned.
What do you think?

 >
 > The driver also performs some checks to understand which of the two
 > protocols is implemented by the controller. These checks are quite
 > horrible, but they worked for me.

I have FW with registers as described at 
https://www.buydisplay.com/download/ic/FT5206.pdf
and I would like to add them as attributes more and dt-bindings to 
improve trimming.

I would call those registers the same as manual:
THGROUP
THCAL
etc.

And I would also like to add a tasklet that recalibrate every 
minute(specified by attr or dt-binding).
I want to do this(already done succesfully on 3.4) because I've 
experienced problems on temperature and mechanical drifts.


 >
 > The best thing is that you ask a datasheet to your supplier, in order to
 > make sure about the protocol and avoid guessing.
 >
 > Regards,
 > --
 > Luca





--
Giulio Benetti
R 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


Re: edt-ft5x06 question

2017-11-15 Thread Giulio Benetti

Hi Simon,

sorry but as for Luca I've lost mail with mail filter.
See below my ideas on how to improve it.

Thanks
Cheers

Il 15/11/2017 17:30, Giulio Benetti ha scritto:

Hi Luca,

I had problems with e-mail filter, so I rebuilt yours by hand.
Forgive me.

See below.

Thanks
Kind regards

 > Hi Giulio,
 >
 > On 14/11/2017 22:42, Giulio Benetti wrote:
 > > Hello everybody,
 > >
 > > I'm using ft5206 with edt-ft5x06.c driver,
 > > but what I see is that registers with M09 or M06
 > > seem different from focaltech ft5206
 > > https://www.buydisplay.com/download/ic/FT5206.pdf
 > >
 > > For example, except address 0x80 for threshold register(thgroup),
 > > all the others don't appear:
 > > GAIN 0x30 or 0x92 should be 0x82(thcal maybe?)
 > >
 > > Can someone clarify this?
 >
 > Are you having any problems, or just investigating?

I need to add some other IC register to calibrate sensibility with 
different glasses, but starting from ft5x06 or other Focaltech standard 
IC FW.


 >
 > > Maybe M06 or M09 are a custom firmware for focaltech ft5x,
 > > then it has different registers?
 >
 > All the FT5x06 are 8051-based chips designed to implement touchscreen
 > controllers. The FT5x26 are similar but with a more powerful core
 > (Cortex-M IIRC).
 >
 > As far as I could understand and guess, their register interface is
 > fully implemented in firmware, so it could change completely from one
 > panel to another. However all panels that I have seen seem to use
 > firmwares with either the "M06" or the "M09" protocol, which are
 > implemented in the Linux driver.

In my case driver recognizes M09, but only address 0x80 
register(thgroup) is correct.

The others:
GAIN: 0x92
GAIN: 0x93
GAIN: 0x94
GAIN: 0x95

are not described in that datasheet.
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.

I wouldn't write a different driver ft5x.c because it's a repeatition,
but EDT seems a special version(FW) of ft5x.

Maybe on dt-bindings I could force to be EDT or standard.
On legacy sunxi-3.4 the driver handled this as datasheet I mentioned.
What do you think?

 >
 > The driver also performs some checks to understand which of the two
 > protocols is implemented by the controller. These checks are quite
 > horrible, but they worked for me.

I have FW with registers as described at 
https://www.buydisplay.com/download/ic/FT5206.pdf
and I would like to add them as attributes more and dt-bindings to 
improve trimming.

I would call those registers the same as manual:
THGROUP
THCAL
etc.

And I would also like to add a tasklet that recalibrate every 
minute(specified by attr or dt-binding).
I want to do this(already done succesfully on 3.4) because I've 
experienced problems on temperature and mechanical drifts.


 >
 > The best thing is that you ask a datasheet to your supplier, in order to
 > make sure about the protocol and avoid guessing.
 >
 > Regards,
 > --
 > Luca





--
Giulio Benetti
R 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


Re: Re: edt-ft5x06 question

2017-11-15 Thread Giulio Benetti

Hi Luca,

I had problems with e-mail filter, so I rebuilt yours by hand.
Forgive me.

See below.

Thanks
Kind regards

> Hi Giulio,
>
> On 14/11/2017 22:42, Giulio Benetti wrote:
> > Hello everybody,
> >
> > I'm using ft5206 with edt-ft5x06.c driver,
> > but what I see is that registers with M09 or M06
> > seem different from focaltech ft5206
> > https://www.buydisplay.com/download/ic/FT5206.pdf
> >
> > For example, except address 0x80 for threshold register(thgroup),
> > all the others don't appear:
> > GAIN 0x30 or 0x92 should be 0x82(thcal maybe?)
> >
> > Can someone clarify this?
>
> Are you having any problems, or just investigating?

I need to add some other IC register to calibrate sensibility with 
different glasses, but starting from ft5x06 or other Focaltech standard 
IC FW.


>
> > Maybe M06 or M09 are a custom firmware for focaltech ft5x,
> > then it has different registers?
>
> All the FT5x06 are 8051-based chips designed to implement touchscreen
> controllers. The FT5x26 are similar but with a more powerful core
> (Cortex-M IIRC).
>
> As far as I could understand and guess, their register interface is
> fully implemented in firmware, so it could change completely from one
> panel to another. However all panels that I have seen seem to use
> firmwares with either the "M06" or the "M09" protocol, which are
> implemented in the Linux driver.

In my case driver recognizes M09, but only address 0x80 
register(thgroup) is correct.

The others:
GAIN: 0x92
GAIN: 0x93
GAIN: 0x94
GAIN: 0x95

are not described in that datasheet.
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.

I wouldn't write a different driver ft5x.c because it's a repeatition,
but EDT seems a special version(FW) of ft5x.

Maybe on dt-bindings I could force to be EDT or standard.
On legacy sunxi-3.4 the driver handled this as datasheet I mentioned.
What do you think?

>
> The driver also performs some checks to understand which of the two
> protocols is implemented by the controller. These checks are quite
> horrible, but they worked for me.

I have FW with registers as described at 
https://www.buydisplay.com/download/ic/FT5206.pdf
and I would like to add them as attributes more and dt-bindings to 
improve trimming.

I would call those registers the same as manual:
THGROUP
THCAL
etc.

And I would also like to add a tasklet that recalibrate every 
minute(specified by attr or dt-binding).
I want to do this(already done succesfully on 3.4) because I've 
experienced problems on temperature and mechanical drifts.


>
> The best thing is that you ask a datasheet to your supplier, in order to
> make sure about the protocol and avoid guessing.
>
> Regards,
> --
> Luca


--
Giulio Benetti
R 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


Re: Re: edt-ft5x06 question

2017-11-15 Thread Giulio Benetti

Hi Luca,

I had problems with e-mail filter, so I rebuilt yours by hand.
Forgive me.

See below.

Thanks
Kind regards

> Hi Giulio,
>
> On 14/11/2017 22:42, Giulio Benetti wrote:
> > Hello everybody,
> >
> > I'm using ft5206 with edt-ft5x06.c driver,
> > but what I see is that registers with M09 or M06
> > seem different from focaltech ft5206
> > https://www.buydisplay.com/download/ic/FT5206.pdf
> >
> > For example, except address 0x80 for threshold register(thgroup),
> > all the others don't appear:
> > GAIN 0x30 or 0x92 should be 0x82(thcal maybe?)
> >
> > Can someone clarify this?
>
> Are you having any problems, or just investigating?

I need to add some other IC register to calibrate sensibility with 
different glasses, but starting from ft5x06 or other Focaltech standard 
IC FW.


>
> > Maybe M06 or M09 are a custom firmware for focaltech ft5x,
> > then it has different registers?
>
> All the FT5x06 are 8051-based chips designed to implement touchscreen
> controllers. The FT5x26 are similar but with a more powerful core
> (Cortex-M IIRC).
>
> As far as I could understand and guess, their register interface is
> fully implemented in firmware, so it could change completely from one
> panel to another. However all panels that I have seen seem to use
> firmwares with either the "M06" or the "M09" protocol, which are
> implemented in the Linux driver.

In my case driver recognizes M09, but only address 0x80 
register(thgroup) is correct.

The others:
GAIN: 0x92
GAIN: 0x93
GAIN: 0x94
GAIN: 0x95

are not described in that datasheet.
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.

I wouldn't write a different driver ft5x.c because it's a repeatition,
but EDT seems a special version(FW) of ft5x.

Maybe on dt-bindings I could force to be EDT or standard.
On legacy sunxi-3.4 the driver handled this as datasheet I mentioned.
What do you think?

>
> The driver also performs some checks to understand which of the two
> protocols is implemented by the controller. These checks are quite
> horrible, but they worked for me.

I have FW with registers as described at 
https://www.buydisplay.com/download/ic/FT5206.pdf
and I would like to add them as attributes more and dt-bindings to 
improve trimming.

I would call those registers the same as manual:
THGROUP
THCAL
etc.

And I would also like to add a tasklet that recalibrate every 
minute(specified by attr or dt-binding).
I want to do this(already done succesfully on 3.4) because I've 
experienced problems on temperature and mechanical drifts.


>
> The best thing is that you ask a datasheet to your supplier, in order to
> make sure about the protocol and avoid guessing.
>
> Regards,
> --
> Luca


--
Giulio Benetti
R 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


Re: edt-ft5x06 question

2017-11-15 Thread Simon Budig
Hi Giulio

On Tue, 2017-11-14 at 22:42 +0100, Giulio Benetti wrote:
> I'm using ft5206 with edt-ft5x06.c driver,
> but what I see is that registers with M09 or M06
> seem different from focaltech ft5206 
> https://www.buydisplay.com/download/ic/FT5206.pdf
> 
> For example, except address 0x80 for threshold register(thgroup),
> all the others don't appear:
> GAIN 0x30 or 0x92 should be 0x82(thcal maybe?)
> 
> Can someone clarify this?

The Registers depend heavily on the actual firmware flashed into the
ft5x06. M06 and M09 refers to the resp. touch glasses from EDT (hence
the name of the driver), who have a custom firmware installed. Despite
being based on the same focaltec chips, their i2c interface is totally
different...

Most non-EDT ft5x06 touches do use a communication protocol similiar to
the M09 series. Unfortunately I've witnessed a lot that it is not
possible to rely on the registers that are supposed to provide
vendor/model information (according to the Focaltec datasheet). It
always takes a little bit of tweaking to figure out what resolution 
they actually provide (which is possible with the custom EDT-M09
firmware).

There is a patch series I've sent to this mailinglist (and need to
resend, because the first part of the patch series is bogus) that might
improve the model detection a little bit, but it by no means is
bulletproof.

(see https://patchwork.kernel.org/patch/9987467/ and 
https://patchwork.kernel.org/patch/9987471/)

For non-EDT touches that are bonded together with a display it is a
reasonable assumption that the touch resolution matches the screen
resolution (Which I consider unfortunate: Why throw away more
resolution?).

Anyway if you have suggestions for improving this driver I am
interested in feedback.

Bye,
Simon

-- 
 kernel concepts GmbH Simon Budig
 Sieghuetter Hauptweg 48  simon.bu...@kernelconcepts.de
 D-57072 Siegen   +49-271-771091-17
 http://www.kernelconcepts.de/
 HR Siegen, HR B 9613; Geschäftsführer: Ole Reinhardt

signature.asc
Description: This is a digitally signed message part


Re: edt-ft5x06 question

2017-11-15 Thread Simon Budig
Hi Giulio

On Tue, 2017-11-14 at 22:42 +0100, Giulio Benetti wrote:
> I'm using ft5206 with edt-ft5x06.c driver,
> but what I see is that registers with M09 or M06
> seem different from focaltech ft5206 
> https://www.buydisplay.com/download/ic/FT5206.pdf
> 
> For example, except address 0x80 for threshold register(thgroup),
> all the others don't appear:
> GAIN 0x30 or 0x92 should be 0x82(thcal maybe?)
> 
> Can someone clarify this?

The Registers depend heavily on the actual firmware flashed into the
ft5x06. M06 and M09 refers to the resp. touch glasses from EDT (hence
the name of the driver), who have a custom firmware installed. Despite
being based on the same focaltec chips, their i2c interface is totally
different...

Most non-EDT ft5x06 touches do use a communication protocol similiar to
the M09 series. Unfortunately I've witnessed a lot that it is not
possible to rely on the registers that are supposed to provide
vendor/model information (according to the Focaltec datasheet). It
always takes a little bit of tweaking to figure out what resolution 
they actually provide (which is possible with the custom EDT-M09
firmware).

There is a patch series I've sent to this mailinglist (and need to
resend, because the first part of the patch series is bogus) that might
improve the model detection a little bit, but it by no means is
bulletproof.

(see https://patchwork.kernel.org/patch/9987467/ and 
https://patchwork.kernel.org/patch/9987471/)

For non-EDT touches that are bonded together with a display it is a
reasonable assumption that the touch resolution matches the screen
resolution (Which I consider unfortunate: Why throw away more
resolution?).

Anyway if you have suggestions for improving this driver I am
interested in feedback.

Bye,
Simon

-- 
 kernel concepts GmbH Simon Budig
 Sieghuetter Hauptweg 48  simon.bu...@kernelconcepts.de
 D-57072 Siegen   +49-271-771091-17
 http://www.kernelconcepts.de/
 HR Siegen, HR B 9613; Geschäftsführer: Ole Reinhardt

signature.asc
Description: This is a digitally signed message part


Re: edt-ft5x06 question

2017-11-15 Thread Luca Ceresoli
Hi Giulio,

On 14/11/2017 22:42, Giulio Benetti wrote:
> Hello everybody,
> 
> I'm using ft5206 with edt-ft5x06.c driver,
> but what I see is that registers with M09 or M06
> seem different from focaltech ft5206
> https://www.buydisplay.com/download/ic/FT5206.pdf
> 
> For example, except address 0x80 for threshold register(thgroup),
> all the others don't appear:
> GAIN 0x30 or 0x92 should be 0x82(thcal maybe?)
> 
> Can someone clarify this?

Are you having any problems, or just investigating?

> Maybe M06 or M09 are a custom firmware for focaltech ft5x,
> then it has different registers?

All the FT5x06 are 8051-based chips designed to implement touchscreen
controllers. The FT5x26 are similar but with a more powerful core
(Cortex-M IIRC).

As far as I could understand and guess, their register interface is
fully implemented in firmware, so it could change completely from one
panel to another. However all panels that I have seen seem to use
firmwares with either the "M06" or the "M09" protocol, which are
implemented in the Linux driver.

The driver also performs some checks to understand which of the two
protocols is implemented by the controller. These checks are quite
horrible, but they worked for me.

The best thing is that you ask a datasheet to your supplier, in order to
make sure about the protocol and avoid guessing.

Regards,
-- 
Luca


Re: edt-ft5x06 question

2017-11-15 Thread Luca Ceresoli
Hi Giulio,

On 14/11/2017 22:42, Giulio Benetti wrote:
> Hello everybody,
> 
> I'm using ft5206 with edt-ft5x06.c driver,
> but what I see is that registers with M09 or M06
> seem different from focaltech ft5206
> https://www.buydisplay.com/download/ic/FT5206.pdf
> 
> For example, except address 0x80 for threshold register(thgroup),
> all the others don't appear:
> GAIN 0x30 or 0x92 should be 0x82(thcal maybe?)
> 
> Can someone clarify this?

Are you having any problems, or just investigating?

> Maybe M06 or M09 are a custom firmware for focaltech ft5x,
> then it has different registers?

All the FT5x06 are 8051-based chips designed to implement touchscreen
controllers. The FT5x26 are similar but with a more powerful core
(Cortex-M IIRC).

As far as I could understand and guess, their register interface is
fully implemented in firmware, so it could change completely from one
panel to another. However all panels that I have seen seem to use
firmwares with either the "M06" or the "M09" protocol, which are
implemented in the Linux driver.

The driver also performs some checks to understand which of the two
protocols is implemented by the controller. These checks are quite
horrible, but they worked for me.

The best thing is that you ask a datasheet to your supplier, in order to
make sure about the protocol and avoid guessing.

Regards,
-- 
Luca


edt-ft5x06 question

2017-11-14 Thread Giulio Benetti

Hello everybody,

I'm using ft5206 with edt-ft5x06.c driver,
but what I see is that registers with M09 or M06
seem different from focaltech ft5206 
https://www.buydisplay.com/download/ic/FT5206.pdf


For example, except address 0x80 for threshold register(thgroup),
all the others don't appear:
GAIN 0x30 or 0x92 should be 0x82(thcal maybe?)

Can someone clarify this?

Maybe M06 or M09 are a custom firmware for focaltech ft5x,
then it has different registers?

Thanks in advance and
kind regards to everybody

--
Giulio Benetti
R 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


edt-ft5x06 question

2017-11-14 Thread Giulio Benetti

Hello everybody,

I'm using ft5206 with edt-ft5x06.c driver,
but what I see is that registers with M09 or M06
seem different from focaltech ft5206 
https://www.buydisplay.com/download/ic/FT5206.pdf


For example, except address 0x80 for threshold register(thgroup),
all the others don't appear:
GAIN 0x30 or 0x92 should be 0x82(thcal maybe?)

Can someone clarify this?

Maybe M06 or M09 are a custom firmware for focaltech ft5x,
then it has different registers?

Thanks in advance and
kind regards to everybody

--
Giulio Benetti
R 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