<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/input/touchscreen/edt-ft5x06.c, branch v4.4.23</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>Input: edt-ft5x06 - work around FT5506 firmware bug</title>
<updated>2015-10-16T23:58:45+00:00</updated>
<author>
<name>Franklin S Cooper Jr</name>
<email>fcooper@ti.com</email>
</author>
<published>2015-10-16T22:34:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9378c0251c7ac4b247177fb0c292a025ca1b751c'/>
<id>9378c0251c7ac4b247177fb0c292a025ca1b751c</id>
<content type='text'>
In the touchscreen controller ISR, reading the tsc starting from
register 0x2 causes the tsc to infrequently update the detected
finger's x and y coordinate. The irq pin toggles at a fast rate to
indicate touch events are happening. However, the tsc on average
updates the touch point's x and y value every ~100 ms which is much
slower than the advertised rate of 100+ Hz. This leads to multiple reads
within this ~100 ms time window returning the same value.

Example:
X: 10 , Y: 30
X: 10 , Y: 30
X: 10,  Y: 30
..
// After 100 ms
X: 300, Y: 300
X: 300, y: 300
..
// After 100 ms
X: 1743, Y: 621
X: 1743, Y: 621

For some reason if instead of starting to read at register 0x2 you
start reading at register 0x0 this issue isn't seen. This seems like
a quirk only seen in the EDT FT5506 so to fix this issue simply
adjust the code to start reading from 0x0. Technically this isn't wrong
so no regressions should be seen with other touchscreen controllers
supported by this driver.

Signed-off-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the touchscreen controller ISR, reading the tsc starting from
register 0x2 causes the tsc to infrequently update the detected
finger's x and y coordinate. The irq pin toggles at a fast rate to
indicate touch events are happening. However, the tsc on average
updates the touch point's x and y value every ~100 ms which is much
slower than the advertised rate of 100+ Hz. This leads to multiple reads
within this ~100 ms time window returning the same value.

Example:
X: 10 , Y: 30
X: 10 , Y: 30
X: 10,  Y: 30
..
// After 100 ms
X: 300, Y: 300
X: 300, y: 300
..
// After 100 ms
X: 1743, Y: 621
X: 1743, Y: 621

For some reason if instead of starting to read at register 0x2 you
start reading at register 0x0 this issue isn't seen. This seems like
a quirk only seen in the EDT FT5506 so to fix this issue simply
adjust the code to start reading from 0x0. Technically this isn't wrong
so no regressions should be seen with other touchscreen controllers
supported by this driver.

Signed-off-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Input: edt-ft5x06 - add support for FT5506</title>
<updated>2015-10-16T23:58:45+00:00</updated>
<author>
<name>Franklin S Cooper Jr</name>
<email>fcooper@ti.com</email>
</author>
<published>2015-10-16T22:34:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=af33e0ad1bf6e065f05a68f177b99202935ed2cf'/>
<id>af33e0ad1bf6e065f05a68f177b99202935ed2cf</id>
<content type='text'>
FT5506 is essentially the same as other FT5x06 devices other than
supporting 10 support points.

Signed-off-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
FT5506 is essentially the same as other FT5x06 devices other than
supporting 10 support points.

Signed-off-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Input: edt-ft5x06 - add support for different max support points</title>
<updated>2015-10-16T23:58:44+00:00</updated>
<author>
<name>Franklin S Cooper Jr</name>
<email>fcooper@ti.com</email>
</author>
<published>2015-10-16T22:34:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b1d2a3ecb9cbf932a875a59f12f0f44841f29c30'/>
<id>b1d2a3ecb9cbf932a875a59f12f0f44841f29c30</id>
<content type='text'>
Update the code so that the maximum supported points aren't hard coded but
can be changed.

Set the maximum support points based on the data passed along side the
compatible field.

Signed-off-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update the code so that the maximum supported points aren't hard coded but
can be changed.

Set the maximum support points based on the data passed along side the
compatible field.

Signed-off-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Input: edt-ft5x06 - use max support points to determine how much to read</title>
<updated>2015-10-16T23:58:44+00:00</updated>
<author>
<name>Franklin S Cooper Jr</name>
<email>fcooper@ti.com</email>
</author>
<published>2015-10-16T22:34:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c789f1fb07e7c5acc04342cb2e2412aa71cd6c18'/>
<id>c789f1fb07e7c5acc04342cb2e2412aa71cd6c18</id>
<content type='text'>
Calculate the amount of data that needs to be read for the specified max
number of support points. If the maximum number of support points changes
then the amount that is read from the touch screen controller should
reflect this.

Signed-off-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Calculate the amount of data that needs to be read for the specified max
number of support points. If the maximum number of support points changes
then the amount that is read from the touch screen controller should
reflect this.

Signed-off-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Input: edt-ft5x06 - do not call desc_to_gpio for invalid gpios</title>
<updated>2015-10-06T23:38:40+00:00</updated>
<author>
<name>Franklin S Cooper Jr</name>
<email>fcooper@ti.com</email>
</author>
<published>2015-10-06T22:24:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8b58cc36b11bafb9305db2417eab1eb47a212082'/>
<id>8b58cc36b11bafb9305db2417eab1eb47a212082</id>
<content type='text'>
Since reset and wake pin are optional the gpio structure for those
pins may be null. Therefore, they can't be blindly passed to
desc_to_gpio.

Reported-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since reset and wake pin are optional the gpio structure for those
pins may be null. Therefore, they can't be blindly passed to
desc_to_gpio.

Reported-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Input: edt-ft5x06 - do not hardcode interrupt trigger type</title>
<updated>2015-09-28T00:34:00+00:00</updated>
<author>
<name>Dmitry Torokhov</name>
<email>dmitry.torokhov@gmail.com</email>
</author>
<published>2015-09-12T17:11:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f0bef75c593391198f2c9f855aae8e994a0e9293'/>
<id>f0bef75c593391198f2c9f855aae8e994a0e9293</id>
<content type='text'>
Instead of hardcoding IRQ trigger type to IRQF_TRIGGER_FALLING, let's
respect settings specified in device tree. To be compatible with older
DTSes, if trigger type is not set up in DTS we'll set it to default
(falling edge).

Tested-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of hardcoding IRQ trigger type to IRQF_TRIGGER_FALLING, let's
respect settings specified in device tree. To be compatible with older
DTSes, if trigger type is not set up in DTS we'll set it to default
(falling edge).

Tested-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Input: edt-ft5x06 - use generic properties API</title>
<updated>2015-09-28T00:34:00+00:00</updated>
<author>
<name>Dmitry Torokhov</name>
<email>dmitry.torokhov@gmail.com</email>
</author>
<published>2015-09-12T16:54:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2e23b7a96372f855d4a006e82b183915e249e2ac'/>
<id>2e23b7a96372f855d4a006e82b183915e249e2ac</id>
<content type='text'>
Instead of only parsing device tree properties let's switch to using
generic properties API so that the driver can also work on other platforms.

Tested-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of only parsing device tree properties let's switch to using
generic properties API so that the driver can also work on other platforms.

Tested-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Input: edt-ft5x06 - remove support for platform data</title>
<updated>2015-09-28T00:33:59+00:00</updated>
<author>
<name>Dmitry Torokhov</name>
<email>dmitry.torokhov@gmail.com</email>
</author>
<published>2015-09-12T16:37:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=22ddbacc4bb54ef8577c46114227c06c31e3c47d'/>
<id>22ddbacc4bb54ef8577c46114227c06c31e3c47d</id>
<content type='text'>
We do not have any users of platform data in the tree and all newer
platforms are either DT or ACPI, so let's drop handling of platform data.

Tested-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We do not have any users of platform data in the tree and all newer
platforms are either DT or ACPI, so let's drop handling of platform data.

Tested-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Input: edt-ft5x06 - drop parsing of irq gpio</title>
<updated>2015-09-28T00:33:59+00:00</updated>
<author>
<name>Dmitry Torokhov</name>
<email>dmitry.torokhov@gmail.com</email>
</author>
<published>2015-09-12T16:17:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=079128eba8075daff59390c14ce2d2a2e9a1f3a1'/>
<id>079128eba8075daff59390c14ce2d2a2e9a1f3a1</id>
<content type='text'>
The driver does not use irq gpio as gpio, but rather relies on I2C core or
board code to set up client's structure IRQ line, so let's stop trying to
locate the resource and parse it.

Tested-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The driver does not use irq gpio as gpio, but rather relies on I2C core or
board code to set up client's structure IRQ line, so let's stop trying to
locate the resource and parse it.

Tested-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Input: edt-ft5x06 - switch to newer gpio framework</title>
<updated>2015-09-28T00:33:58+00:00</updated>
<author>
<name>Franklin S Cooper Jr</name>
<email>fcooper@ti.com</email>
</author>
<published>2015-09-12T00:30:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=13c23cd18bd12ddbf00beddd136e3cd33b4f2dfa'/>
<id>13c23cd18bd12ddbf00beddd136e3cd33b4f2dfa</id>
<content type='text'>
The current/old gpio framework used doesn't properly listen to
ACTIVE_LOW and ACTIVE_HIGH flags. The newer gpio framework takes into
account these flags when setting gpio values.

Since the values being output were based on voltage and not logic they
change to reflect this difference. Also use gpiod_set_value_cansleep since
wake and reset pins can be provided by bus based io expanders.

Switch from msleep(5) to udelay_range(5000,6000) to avoid check patch
warning.

Signed-off-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The current/old gpio framework used doesn't properly listen to
ACTIVE_LOW and ACTIVE_HIGH flags. The newer gpio framework takes into
account these flags when setting gpio values.

Since the values being output were based on voltage and not logic they
change to reflect this difference. Also use gpiod_set_value_cansleep since
wake and reset pins can be provided by bus based io expanders.

Switch from msleep(5) to udelay_range(5000,6000) to avoid check patch
warning.

Signed-off-by: Franklin S Cooper Jr &lt;fcooper@ti.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</pre>
</div>
</content>
</entry>
</feed>
