2022-07-21 08:58:59

by Luca Ellero

[permalink] [raw]
Subject: [PATCH v2 0/3] ads7846: fix support for ADS7845

ADS7845 support is buggy in this driver.
These patches fix various issues to get it work properly.

Changes for v2:
- add missing period in patch 0001 message
- elaborate comment in patch 0002

Luca Ellero (3):
ads7846: don't report pressure for ads7845
ads7846: always set last command to PWRDOWN
ads7846: don't check penirq immediately for 7845

drivers/input/touchscreen/ads7846.c | 23 +++++++++++++----------
1 file changed, 13 insertions(+), 10 deletions(-)

--
2.25.1


2022-07-21 09:15:28

by Luca Ellero

[permalink] [raw]
Subject: [PATCH v2 3/3] ads7846: don't check penirq immediately for 7845

From: Luca Ellero <[email protected]>

To discard false readings, one should use "ti,penirq-recheck-delay-usecs".
Checking get_pendown_state() at the beginning, most of the time fails
causing malfunctioning.

Signed-off-by: Luca Ellero <[email protected]>
---
drivers/input/touchscreen/ads7846.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
index 9e15cdf6faa0..122d3a13b7c5 100644
--- a/drivers/input/touchscreen/ads7846.c
+++ b/drivers/input/touchscreen/ads7846.c
@@ -843,14 +843,8 @@ static void ads7846_report_state(struct ads7846 *ts)
if (x == MAX_12BIT)
x = 0;

- if (ts->model == 7843) {
+ if (ts->model == 7843 || ts->model == 7845) {
Rt = ts->pressure_max / 2;
- } else if (ts->model == 7845) {
- if (get_pendown_state(ts))
- Rt = ts->pressure_max / 2;
- else
- Rt = 0;
- dev_vdbg(&ts->spi->dev, "x/y: %d/%d, PD %d\n", x, y, Rt);
} else if (likely(x && z1)) {
/* compute touch pressure resistance using equation #2 */
Rt = z2;
--
2.25.1

2022-07-29 14:31:02

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v2 0/3] ads7846: fix support for ADS7845

On Thu, Jul 21, 2022 at 10:34:55AM +0200, Luca Ellero wrote:
> ADS7845 support is buggy in this driver.
> These patches fix various issues to get it work properly.
>
> Changes for v2:
> - add missing period in patch 0001 message
> - elaborate comment in patch 0002

All three looks good to me,
Reviewed-by: Andy Shevchenko <[email protected]>

> Luca Ellero (3):
> ads7846: don't report pressure for ads7845
> ads7846: always set last command to PWRDOWN
> ads7846: don't check penirq immediately for 7845
>
> drivers/input/touchscreen/ads7846.c | 23 +++++++++++++----------
> 1 file changed, 13 insertions(+), 10 deletions(-)
>
> --
> 2.25.1
>

--
With Best Regards,
Andy Shevchenko