From patchwork Sun Dec 12 12:53:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 12672245 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0FAB0C433F5 for ; Sun, 12 Dec 2021 12:54:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230010AbhLLMyE (ORCPT ); Sun, 12 Dec 2021 07:54:04 -0500 Received: from smtp-34-i2.italiaonline.it ([213.209.12.34]:42941 "EHLO libero.it" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S229988AbhLLMyE (ORCPT ); Sun, 12 Dec 2021 07:54:04 -0500 Received: from passgat-Modern-14-A10M.homenet.telecomitalia.it ([82.50.51.121]) by smtp-34.iol.local with ESMTPA id wOMammqwPUpmcwOMbmGyJH; Sun, 12 Dec 2021 13:54:01 +0100 x-libjamoibt: 1601 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=libero.it; s=s2021; t=1639313641; bh=5cQItZFlPLSWjbLUBhR1OrUoG0HfywhVMmQfcpeIMjE=; h=From; b=N+HYvyoFl59BN+J3iuKgwpvzvXAp5iQ/GJWbfpFLMjGQNj3aufglWm6B0Z10Zfsgm /4PMDXo6TfCTohG8bWE89xnO2P/m0R3mrtfv7k3pkEvxIzEgAgNKALQVdF81p6bWoP aHvpJdgNJq4WX+ejpS6MGbDCMyXZKU6SzAIxfBwMdjfYJZlCM66BVpO/yul0KSLDuY TwpS3iD6JcOKRvnjkSALbHgANoxARaq9zQWpIhThYeO7XH0tbaWJjT+WtOIQMoLkMN dnzG8TmwW7rUWKYZqhOQ5B014CtdzV5fZKR30wOQfriEJvgqC+MP9eL+wwoisDIMbS R5M0kJ/7mxK9Q== X-CNFS-Analysis: v=2.4 cv=VsDmv86n c=1 sm=1 tr=0 ts=61b5f0e9 cx=a_exe a=xtCFBUu/Ze6RtP+zVSd77w==:117 a=xtCFBUu/Ze6RtP+zVSd77w==:17 a=Lf7JvCFZlXs7EqoJDM0A:9 From: Dario Binacchi To: linux-kernel@vger.kernel.org Cc: "Andrew F . Davis" , Felipe Balbi , Rachna Patil , Wolfram Sang , Dmitry Torokhov , linux-input@vger.kernel.org, Jeff Lance , Zubair Lutfullah , Vignesh R , Dave Gerlach , Sebastian Andrzej Siewior , Grygorii Strashko , Brad Griffis , Dario Binacchi Subject: [RESEND PATCH 1/3] input: ti_am335x_tsc: set ADCREFM for X configuration Date: Sun, 12 Dec 2021 13:53:56 +0100 Message-Id: <20211212125358.14416-2-dariobin@libero.it> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211212125358.14416-1-dariobin@libero.it> References: <20211212125358.14416-1-dariobin@libero.it> X-CMAE-Envelope: MS4xfF4DdcLXCoY0YJggC1A/zGE1daSGJ1y0kOs+yr+ynnqmiltxHTucCBzBzUM3j8rSF+afXC7fFIrMEb7VZPf14ll2rYq/oIjzYe01ENK2Cunk9N9K40a8 0vGNZsDTAWemdfQrxurvg7mXqRwX65N6KSXJ1vkOQxSwXBSIeM3XK3H3CVVBA02rha5mhY/waY9oxkH+otEiiz8dP86rcJYzt5M+eAj9UWhDzsAjcY1Mpl3L fHgLpYsVE/DGVSaYmeTTU/l8aEMcVvpwnEDQwfghExludvLd/ixCiQ6EAQe7ppcbDJ/YfDO/JlTKKJ/0LRompFwtVhzJ6HkzBQtwKDS4DLUrP2IkB/15MRxg wHsUTXkEpwMQRcnYy32xGqP3b1zGFvI8YEgpL1CpvNtBmBA8q2FSb4Rfwb+nZ5Vpy4BhqiEbzNFI86SBK1dnHdmuBH2wxbJWp0q9Zz/b8sdQbIPdPrBicnSa zOHNKiouSltzA1IUHra3c2hoXir9rnYmaVdqCFllJBYRB1ik/h61uCJxDXpH+jQVYoVRq9xewiit/dLZmBTrS5EpJUu3OFi0m6+OyHpaYLvkEBgAYNp2VBY0 0rPu2OE9aLmLVRtpN3Tu1C0EUymYSE2AqPiHNYmunYT2JApyQeobrYbjlXQAbLAOS4g= Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org As reported by the STEPCONFIG[1-16] registered field descriptions of the TI reference manual, for the ADC "in single ended, SEL_INM_SWC_3_0 must be 1xxx". Unlike the Y and Z coordinates, this bit has not been set for the step configuration registers used to sample the X coordinate. Fixes: 1b8be32e691 ("Input: add support for TI Touchscreen controller") Signed-off-by: Dario Binacchi --- drivers/input/touchscreen/ti_am335x_tsc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c index 83e685557a19..fd3ffdd23470 100644 --- a/drivers/input/touchscreen/ti_am335x_tsc.c +++ b/drivers/input/touchscreen/ti_am335x_tsc.c @@ -131,7 +131,8 @@ static void titsc_step_config(struct titsc *ts_dev) u32 stepenable; config = STEPCONFIG_MODE_HWSYNC | - STEPCONFIG_AVG_16 | ts_dev->bit_xp; + STEPCONFIG_AVG_16 | ts_dev->bit_xp | + STEPCONFIG_INM_ADCREFM; switch (ts_dev->wires) { case 4: config |= STEPCONFIG_INP(ts_dev->inp_yp) | ts_dev->bit_xn; From patchwork Sun Dec 12 12:53:57 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 12672249 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2317FC4332F for ; Sun, 12 Dec 2021 12:54:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230030AbhLLMyG (ORCPT ); Sun, 12 Dec 2021 07:54:06 -0500 Received: from smtp-34-i2.italiaonline.it ([213.209.12.34]:60455 "EHLO libero.it" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S229997AbhLLMyE (ORCPT ); Sun, 12 Dec 2021 07:54:04 -0500 Received: from passgat-Modern-14-A10M.homenet.telecomitalia.it ([82.50.51.121]) by smtp-34.iol.local with ESMTPA id wOMammqwPUpmcwOMbmGyJj; Sun, 12 Dec 2021 13:54:02 +0100 x-libjamoibt: 1601 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=libero.it; s=s2021; t=1639313642; bh=/t4afwvWKwIcozWo7+JhPaKv7o+8VqLY8nNdi3B2CXc=; h=From; b=vj2/jO5r+15XIzNLemWzRbfQK70a8LqJ1lXl2J12RD2ff8BKkFS+wMxTi+hUEk/2g uCh6kQgtMvmHltKOfHWDg8T65eC+AMD3pQSrI9Km3+zW6MUiy7B7K4jRfVS7xeToTw PuVo5Uv5ck70fnbqtCuvYcXfx+q6QJDOrzp50p2SEAi5E0SeBjQI41cKlB5SovCxJ8 esQurXviabPpmDKTAq2EVwZUyILSgXs5YvgWN+bKd/wWmxXAGahhpJwUQ9meX9Hm+7 AEbgfC5qF1Q2maAatni5OVtyDYMwafl3GiBMcu4++3nVTOOrmvCFzxpZA/JopdE4gD RFFiWgWQfxjrA== X-CNFS-Analysis: v=2.4 cv=VsDmv86n c=1 sm=1 tr=0 ts=61b5f0ea cx=a_exe a=xtCFBUu/Ze6RtP+zVSd77w==:117 a=xtCFBUu/Ze6RtP+zVSd77w==:17 a=Us_wMsjpGDddDCpAM8cA:9 From: Dario Binacchi To: linux-kernel@vger.kernel.org Cc: "Andrew F . Davis" , Felipe Balbi , Rachna Patil , Wolfram Sang , Dmitry Torokhov , linux-input@vger.kernel.org, Jeff Lance , Zubair Lutfullah , Vignesh R , Dave Gerlach , Sebastian Andrzej Siewior , Grygorii Strashko , Brad Griffis , Dario Binacchi Subject: [RESEND PATCH 2/3] input: ti_am335x_tsc: fix STEPCONFIG setup for Z2 Date: Sun, 12 Dec 2021 13:53:57 +0100 Message-Id: <20211212125358.14416-3-dariobin@libero.it> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211212125358.14416-1-dariobin@libero.it> References: <20211212125358.14416-1-dariobin@libero.it> X-CMAE-Envelope: MS4xfCr2tNHPJS5M42ZQsU6d1R66UV4G0n0glQqdeKDjfAiyeLTueeEPu2fSFu5P77D/aBTX8p44qql16w5nDlGsxoeoG5IUD4BWbixP9BIYI6DywAO78p4m 9RifdIxgOv44xlkDzDu7JKcfVb7jU6d0TEDqGAGyVZr8z4YmGH9hZGCQrYNEwUA0txz76AEg19uczYTu9II3AZiNiYuMqlfRDszrHVC1sSDdVj7jqOZJqNxj J+6uVhJdEBiX0m26d+No8aHmOcbleXa1jW9q+GabG2FA2N+iIth3SeXGkN6H9jtps6lGIwZusGm5sogwGev9RcuRTB/4TLVsGe0c2Vjc3n5HzlurANqtzWmp 5yg5WLI2/NLpth7wrPwAPM7o6076wRRD0VjVJSOagAlNNfz9wUl1TlniEiQ1GQ8zXNDfaVSjDwlZS3XG6sNH3yWObfedJ0APPYdS75WJ6ZlaslFV972rN+BR CiFyAgaWFZJkjNZa9O5KcAyc3FzI3iU4QeG0qT6bM0A/Bp7GtYrobs+cM6HIlGsfYqv3KBMzX7EBERMuP44hJPtORl4liJtVo7TvJJ5uS5PABFB1WCCF8VMO JI7AJ5ufkoXW2fRX/tXElkhQMgtXC97qSS50lj7VvPmKAy4meUC+E11Bs9w9LrRNzvs= Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org 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: 8c896308fea ("input: ti_am335x_adc: use only FIFO0 and clean up a little") Signed-off-by: Dario Binacchi --- drivers/input/touchscreen/ti_am335x_tsc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c index fd3ffdd23470..cfc943423241 100644 --- a/drivers/input/touchscreen/ti_am335x_tsc.c +++ b/drivers/input/touchscreen/ti_am335x_tsc.c @@ -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); From patchwork Sun Dec 12 12:53:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 12672251 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D3BB0C433F5 for ; Sun, 12 Dec 2021 12:55:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230472AbhLLMzD (ORCPT ); Sun, 12 Dec 2021 07:55:03 -0500 Received: from smtp-34-i2.italiaonline.it ([213.209.12.34]:37160 "EHLO libero.it" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S229997AbhLLMzC (ORCPT ); Sun, 12 Dec 2021 07:55:02 -0500 Received: from passgat-Modern-14-A10M.homenet.telecomitalia.it ([82.50.51.121]) by smtp-34.iol.local with ESMTPA id wOMammqwPUpmcwOMcmGyK7; Sun, 12 Dec 2021 13:54:02 +0100 x-libjamoibt: 1601 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=libero.it; s=s2021; t=1639313642; bh=XB3UsxbeGSGlitHS0T7zXuAeheulVRHT3ylsFJWY7RA=; h=From; b=ZwtshlG9C0YZNYSxyOlodJ7wBNMvdpVxpX0Q/X6wq6QhBQZKXOcHUHLiq1RoVa7Of 7gNXIu80nhElOTMM3p62BbFTgNkS1EVYh9o5366SbyFsiq2LbQiGLXcGoGZsBhZ6yR k5Po007Lmep19FDkT3ORMHxFxDkFGSoVLD0pbgd56R25QePqJKv2K5pTGXGLdqCU+U AqQF8yjLoc7slsrPNSHqj0EwnHyHVo8Ik6TV346lNFbVYfhlWxV6b7zxTE6T19Fpn4 jNC52XpxuX/WuhoFCKUnpfyCu20FVcsiduJa8aBJxMfm+ghJk2J3HGIhrwUD4uW032 p7KQKDcsP3G9Q== X-CNFS-Analysis: v=2.4 cv=VsDmv86n c=1 sm=1 tr=0 ts=61b5f0ea cx=a_exe a=xtCFBUu/Ze6RtP+zVSd77w==:117 a=xtCFBUu/Ze6RtP+zVSd77w==:17 a=VZkyjkMPts0tdjHXfkQA:9 From: Dario Binacchi To: linux-kernel@vger.kernel.org Cc: "Andrew F . Davis" , Felipe Balbi , Rachna Patil , Wolfram Sang , Dmitry Torokhov , linux-input@vger.kernel.org, Jeff Lance , Zubair Lutfullah , Vignesh R , Dave Gerlach , Sebastian Andrzej Siewior , Grygorii Strashko , Brad Griffis , Dario Binacchi Subject: [RESEND PATCH 3/3] input: ti_am335x_tsc: lower the X and Y sampling time Date: Sun, 12 Dec 2021 13:53:58 +0100 Message-Id: <20211212125358.14416-4-dariobin@libero.it> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211212125358.14416-1-dariobin@libero.it> References: <20211212125358.14416-1-dariobin@libero.it> X-CMAE-Envelope: MS4xfCr2tNHPJS5M42ZQsU6d1R66UV4G0n0glQqdeKDjfAiyeLTueeEPu2fSFu5P77D/aBTX8p44qql16w5nDlGsxoeoG5IUD4BWbixP9BIYI6DywAO78p4m 9RifdIxgOv44xlkDzDu7JKcfVb7jU6d0TEDqGAGyVZr8z4YmGH9hZGCQrYNEwUA0txz76AEg19uczYTu9II3AZiNiYuMqlfRDszrHVC1sSDdVj7jqOZJqNxj J+6uVhJdEBiX0m26d+No8aHmOcbleXa1jW9q+GabG2FA2N+iIth3SeXGkN6H9jtps6lGIwZusGm5sogwGev9RcuRTB/4TLVsGe0c2Vjc3n5HzlurANqtzWmp 5yg5WLI2/NLpth7wrPwAPM7o6076wRRD0VjVJSOagAlNNfz9wUl1TlniEiQ1GQ8zXNDfaVSjDwlZS3XG6sNH3yWObfedJ0APPYdS75WJ6ZlaslFV972rN+BR CiFyAgaWFZJkjNZa9O5KcAyc3FzI3iU4QeG0qT6bM0A/Bp7GtYrobs+cM6HIlGsfYqv3KBMzX7EBERMuP44hJPtORl4liJtVo7TvJJ5uS5PABFB1WCCF8VMO JI7AJ5ufkoXW2fRX/tXElkhQMgtXC97qSS50lj7VvPmKAy4meUC+E11Bs9w9LrRNzvs= Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org The open delay time has to be applied only on the first sample of the X/Y coordinates because on the following samples the ADC channel is not changed. Removing this time from the samples after the first one, "ti,coordinate-readouts" greater than 1, decreases the total acquisition time, allowing to increase the number of acquired coordinates in the time unit. Signed-off-by: Dario Binacchi --- drivers/input/touchscreen/ti_am335x_tsc.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c index cfc943423241..f4ef218bc1b8 100644 --- a/drivers/input/touchscreen/ti_am335x_tsc.c +++ b/drivers/input/touchscreen/ti_am335x_tsc.c @@ -126,7 +126,7 @@ static int titsc_config_wires(struct titsc *ts_dev) static void titsc_step_config(struct titsc *ts_dev) { unsigned int config; - int i; + int i, n; int end_step, first_step, tsc_steps; u32 stepenable; @@ -151,9 +151,11 @@ static void titsc_step_config(struct titsc *ts_dev) first_step = TOTAL_STEPS - tsc_steps; /* Steps 16 to 16-coordinate_readouts is for X */ end_step = first_step + tsc_steps; + n = 0; for (i = end_step - ts_dev->coordinate_readouts; i < end_step; i++) { titsc_writel(ts_dev, REG_STEPCONFIG(i), config); - titsc_writel(ts_dev, REG_STEPDELAY(i), STEPCONFIG_OPENDLY); + titsc_writel(ts_dev, REG_STEPDELAY(i), + n++ == 0 ? STEPCONFIG_OPENDLY : 0); } config = 0; @@ -175,9 +177,11 @@ static void titsc_step_config(struct titsc *ts_dev) /* 1 ... coordinate_readouts is for Y */ end_step = first_step + ts_dev->coordinate_readouts; + n = 0; for (i = first_step; i < end_step; i++) { titsc_writel(ts_dev, REG_STEPCONFIG(i), config); - titsc_writel(ts_dev, REG_STEPDELAY(i), STEPCONFIG_OPENDLY); + titsc_writel(ts_dev, REG_STEPDELAY(i), + n++ == 0 ? STEPCONFIG_OPENDLY : 0); } /* Make CHARGECONFIG same as IDLECONFIG */