Input: ti_am335x_tsc - fix STEPCONFIG setup for Z2
authorDario Binacchi <dariobin@libero.it>
Mon, 13 Dec 2021 05:14:48 +0000 (21:14 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 20 Dec 2021 07:53:54 +0000 (23:53 -0800)
The Z2 step configuration doesn't erase the SEL_INP_SWC_3_0 bit-field
before setting the ADC channel. This way its value could be corrupted by
the ADC channel selected for the Z1 coordinate.

Fixes: 9a4872bcf707 ("input: ti_am335x_adc: use only FIFO0 and clean up a little")
Signed-off-by: Dario Binacchi <dariobin@libero.it>
Link: https://lore.kernel.org/r/20211212125358.14416-3-dariobin@libero.it
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/ti_am335x_tsc.c

index fd3ffdd23470b6502c3fd406a45549bd82929a1a..cfc943423241f5814a80325a6bdec2db774bd7d4 100644 (file)
@@ -196,7 +196,10 @@ static void titsc_step_config(struct titsc *ts_dev)
                        STEPCONFIG_OPENDLY);
 
        end_step++;
-       config |= STEPCONFIG_INP(ts_dev->inp_yn);
+       config = STEPCONFIG_MODE_HWSYNC |
+                       STEPCONFIG_AVG_16 | ts_dev->bit_yp |
+                       ts_dev->bit_xn | STEPCONFIG_INM_ADCREFM |
+                       STEPCONFIG_INP(ts_dev->inp_yn);
        titsc_writel(ts_dev, REG_STEPCONFIG(end_step), config);
        titsc_writel(ts_dev, REG_STEPDELAY(end_step),
                        STEPCONFIG_OPENDLY);