linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Daniel Mack <daniel@zonque.org>,
	Haojian Zhuang <haojian.zhuang@gmail.com>,
	Robert Jarzmik <robert.jarzmik@free.fr>
Cc: Arnd Bergmann <arnd@arndb.de>,
	Linus Walleij <linus.walleij@linaro.org>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	linux-kernel@vger.kernel.org, linux-input@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH 28/46] input: touchscreen: mainstone: sync with zylonite driver
Date: Fri, 18 Oct 2019 17:41:43 +0200	[thread overview]
Message-ID: <20191018154201.1276638-28-arnd@arndb.de> (raw)
In-Reply-To: <20191018154052.1276506-1-arnd@arndb.de>

The two drivers are almost identical and can work on a variety
of hardware in principle. The mainstone driver supports additional
hardware, and the zylonite driver has a few cleanup patches.

Sync the two by adding the zylonite changes into the mainstone
one, and checking for the zylonite board to order to keep the
default behavior (interrupt enabled) there.

Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-input@vger.kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/input/touchscreen/mainstone-wm97xx.c | 59 ++++++++++----------
 1 file changed, 31 insertions(+), 28 deletions(-)

diff --git a/drivers/input/touchscreen/mainstone-wm97xx.c b/drivers/input/touchscreen/mainstone-wm97xx.c
index 618c80847d9f..940d3c92b1f8 100644
--- a/drivers/input/touchscreen/mainstone-wm97xx.c
+++ b/drivers/input/touchscreen/mainstone-wm97xx.c
@@ -24,9 +24,9 @@
 #include <linux/gpio/consumer.h>
 #include <linux/irq.h>
 #include <linux/interrupt.h>
-#include <linux/wm97xx.h>
 #include <linux/io.h>
-#include <linux/gpio.h>
+#include <linux/soc/pxa/cpu.h>
+#include <linux/wm97xx.h>
 
 #include <mach/regs-ac97.h>
 
@@ -42,23 +42,22 @@ struct continuous {
 #define WM_READS(sp) ((sp / HZ) + 1)
 
 static const struct continuous cinfo[] = {
-	{WM9705_ID2, 0, WM_READS(94), 94},
-	{WM9705_ID2, 1, WM_READS(188), 188},
-	{WM9705_ID2, 2, WM_READS(375), 375},
-	{WM9705_ID2, 3, WM_READS(750), 750},
-	{WM9712_ID2, 0, WM_READS(94), 94},
-	{WM9712_ID2, 1, WM_READS(188), 188},
-	{WM9712_ID2, 2, WM_READS(375), 375},
-	{WM9712_ID2, 3, WM_READS(750), 750},
-	{WM9713_ID2, 0, WM_READS(94), 94},
-	{WM9713_ID2, 1, WM_READS(120), 120},
-	{WM9713_ID2, 2, WM_READS(154), 154},
-	{WM9713_ID2, 3, WM_READS(188), 188},
+	{ WM9705_ID2, 0, WM_READS(94),  94  },
+	{ WM9705_ID2, 1, WM_READS(188), 188 },
+	{ WM9705_ID2, 2, WM_READS(375), 375 },
+	{ WM9705_ID2, 3, WM_READS(750), 750 },
+	{ WM9712_ID2, 0, WM_READS(94),  94  },
+	{ WM9712_ID2, 1, WM_READS(188), 188 },
+	{ WM9712_ID2, 2, WM_READS(375), 375 },
+	{ WM9712_ID2, 3, WM_READS(750), 750 },
+	{ WM9713_ID2, 0, WM_READS(94),  94  },
+	{ WM9713_ID2, 1, WM_READS(120), 120 },
+	{ WM9713_ID2, 2, WM_READS(154), 154 },
+	{ WM9713_ID2, 3, WM_READS(188), 188 },
 };
 
 /* continuous speed index */
 static int sp_idx;
-static u16 last, tries;
 static struct gpio_desc *gpiod_irq;
 
 /*
@@ -102,7 +101,7 @@ static void wm97xx_acc_pen_up(struct wm97xx *wm)
 {
 	unsigned int count;
 
-	schedule_timeout_uninterruptible(1);
+	msleep(1);
 
 	if (cpu_is_pxa27x()) {
 		while (MISR & (1 << 2))
@@ -117,13 +116,14 @@ static int wm97xx_acc_pen_down(struct wm97xx *wm)
 {
 	u16 x, y, p = 0x100 | WM97XX_ADCSEL_PRES;
 	int reads = 0;
+	static u16 last, tries;
 
 	/* When the AC97 queue has been drained we need to allow time
 	 * to buffer up samples otherwise we end up spinning polling
 	 * for samples.  The controller can't have a suitably low
 	 * threshold set to use the notifications it gives.
 	 */
-	schedule_timeout_uninterruptible(1);
+	msleep(1);
 
 	if (tries > 5) {
 		tries = 0;
@@ -193,6 +193,8 @@ static int wm97xx_acc_startup(struct wm97xx *wm)
 		/* There is some obscure mutant of WM9712 interbred with WM9713
 		 * used on Palm HW */
 		wm->variant = WM97xx_WM1613;
+	} else if (machine_is_zylonite()) {
+		pen_int = 1;
 	}
 
 	if (pen_int) {
@@ -253,13 +255,13 @@ static void wm97xx_irq_enable(struct wm97xx *wm, int enable)
 }
 
 static struct wm97xx_mach_ops mainstone_mach_ops = {
-	.acc_enabled = 1,
-	.acc_pen_up = wm97xx_acc_pen_up,
-	.acc_pen_down = wm97xx_acc_pen_down,
-	.acc_startup = wm97xx_acc_startup,
-	.acc_shutdown = wm97xx_acc_shutdown,
-	.irq_enable = wm97xx_irq_enable,
-	.irq_gpio = WM97XX_GPIO_2,
+	.acc_enabled	= 1,
+	.acc_pen_up	= wm97xx_acc_pen_up,
+	.acc_pen_down	= wm97xx_acc_pen_down,
+	.acc_startup	= wm97xx_acc_startup,
+	.acc_shutdown	= wm97xx_acc_shutdown,
+	.irq_enable	= wm97xx_irq_enable,
+	.irq_gpio	= WM97XX_GPIO_2,
 };
 
 static int mainstone_wm97xx_probe(struct platform_device *pdev)
@@ -274,14 +276,15 @@ static int mainstone_wm97xx_remove(struct platform_device *pdev)
 	struct wm97xx *wm = platform_get_drvdata(pdev);
 
 	wm97xx_unregister_mach_ops(wm);
+
 	return 0;
 }
 
 static struct platform_driver mainstone_wm97xx_driver = {
-	.probe = mainstone_wm97xx_probe,
-	.remove = mainstone_wm97xx_remove,
-	.driver = {
-		.name = "wm97xx-touch",
+	.probe	= mainstone_wm97xx_probe,
+	.remove	= mainstone_wm97xx_remove,
+	.driver	= {
+		.name	= "wm97xx-touch",
 	},
 };
 module_platform_driver(mainstone_wm97xx_driver);
-- 
2.20.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2019-10-18 15:48 UTC|newest]

Thread overview: 154+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-18 15:40 [PATCH 00/46] ARM: pxa: towards multiplatform support Arnd Bergmann
2019-10-18 15:41 ` [PATCH 01/46] ARM: pxa: split mach/generic.h Arnd Bergmann
2019-10-28 18:06   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 02/46] ARM: pxa: make mainstone.h private Arnd Bergmann
2019-10-28 18:08   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 03/46] ARM: pxa: make mach/regs-uart.h private Arnd Bergmann
2019-10-28 18:14   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 04/46] ARM: pxa: remove mach/dma.h Arnd Bergmann
2019-10-28 18:15   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 05/46] ARM: pxa: split up mach/hardware.h Arnd Bergmann
2019-10-18 18:37   ` Dmitry Torokhov
2019-10-19 21:22   ` Alexandre Belloni
2019-10-21  2:27   ` Viresh Kumar
2019-10-21  9:58   ` Ulf Hansson
2019-10-22 16:36   ` Mark Brown
2019-10-28  9:18   ` Stephen Boyd
2019-10-28 19:14   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 06/46] ARM: pxa: stop using mach/bitfield.h Arnd Bergmann
2019-10-28 19:20   ` Robert Jarzmik
2019-11-08 14:39   ` Bartlomiej Zolnierkiewicz
2019-10-18 15:41 ` [PATCH 07/46] ARM: pxa: move mach/sound.h to linux/platform_data/ Arnd Bergmann
2019-10-22 16:36   ` Mark Brown
2019-10-28 19:21   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 08/46] ARM: pxa: move regs-lcd.h into driver Arnd Bergmann
2019-10-28 19:24   ` Robert Jarzmik
2019-11-08 14:40   ` Bartlomiej Zolnierkiewicz
2019-10-18 15:41 ` [PATCH 09/46] watchdog: sa1100: use platform device registration Arnd Bergmann
2019-10-19 14:06   ` Guenter Roeck
2019-10-22  9:44     ` Arnd Bergmann
2019-10-22 13:38       ` Guenter Roeck
2019-10-18 15:41 ` [PATCH 10/46] ARM: pxa: pxa2xx-ac97-lib: use IRQ resource Arnd Bergmann
2019-10-28 20:19   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 11/46] ARM: pxa: cmx270: use platform device for nand Arnd Bergmann
2019-10-19  9:44   ` Miquel Raynal
2019-10-22 10:00     ` Arnd Bergmann
2019-10-28 20:25   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 12/46] ARM: pxa: make addr-map.h header local Arnd Bergmann
2019-10-28 20:27   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 13/46] ARM: pxa: move pcmcia board data into mach-pxa Arnd Bergmann
2019-10-18 15:41 ` [PATCH 14/46] ARM: pxa: use pdev resource for palmld mmio Arnd Bergmann
2019-10-28 20:34   ` Robert Jarzmik
2019-11-08 14:40   ` Bartlomiej Zolnierkiewicz
2019-10-18 15:41 ` [PATCH 15/46] ARM: pxa: maybe fix gpio lookup tables Arnd Bergmann
2019-10-28 20:48   ` Robert Jarzmik
2019-11-04 15:45   ` Linus Walleij
2019-10-18 15:41 ` [PATCH 16/46] ARM: pxa: tosa: use gpio descriptor for audio Arnd Bergmann
2019-10-22 16:36   ` Mark Brown
2019-10-28 20:49   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 17/46] ARM: pxa: poodle: use platform data for poodle asoc driver Arnd Bergmann
2019-10-22 16:37   ` Mark Brown
2019-10-28 20:53   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 18/46] ARM: pxa: corgi: use gpio descriptors for audio Arnd Bergmann
2019-10-22 16:37   ` Mark Brown
2019-10-28 20:56   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 19/46] ARM: pxa: hx4700: " Arnd Bergmann
2019-10-22 16:37   ` Mark Brown
2019-10-28 20:59   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 20/46] ARM: pxa: lubbock: pass udc irqs as resource Arnd Bergmann
2019-10-28 21:05   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 21/46] ARM: pxa: spitz: use gpio descriptors for audio Arnd Bergmann
2019-10-22 16:38   ` Mark Brown
2019-10-28 21:08   ` Robert Jarzmik
2022-04-19 15:40     ` Arnd Bergmann
2019-10-18 15:41 ` [PATCH 22/46] ARM: pxa: eseries: use gpio lookup " Arnd Bergmann
2019-10-22 16:38   ` Mark Brown
2019-10-28 21:13   ` Robert Jarzmik
2019-11-05  9:21   ` Linus Walleij
2019-10-18 15:41 ` [PATCH 23/46] ARM: pxa: z2: use gpio lookup for audio device Arnd Bergmann
2019-10-22 16:38   ` Mark Brown
2019-10-28 21:17   ` Robert Jarzmik
2019-11-05  9:22   ` Linus Walleij
2019-10-18 15:41 ` [PATCH 24/46] ARM: pxa: magician: use platform driver for audio Arnd Bergmann
2019-10-22 16:38   ` Mark Brown
2019-10-28 21:19   ` Robert Jarzmik
2019-11-05  9:22   ` Linus Walleij
2019-10-18 15:41 ` [PATCH 25/46] ARM: pxa: mainstone-wm97xx: use gpio lookup table Arnd Bergmann
2019-10-18 18:39   ` Dmitry Torokhov
     [not found]     ` <CAK8P3a1Fc=ogknDRGJ3Sn8bZ8tsR_ebE8_bDtF_kZ4AZ5YG_+g@mail.gmail.com>
2019-10-18 19:37       ` Arnd Bergmann
2019-10-18 20:39         ` Dmitry Torokhov
2019-10-28 21:24   ` Robert Jarzmik
2019-11-05  9:25   ` Linus Walleij
2019-10-18 15:41 ` [PATCH 26/46] ARM: pxa: zylonite: use gpio lookup instead mfp header Arnd Bergmann
2019-10-28 21:31   ` Robert Jarzmik
2019-11-05  9:28   ` Linus Walleij
2019-10-18 15:41 ` [PATCH 27/46] input: touchscreen: mainstone: fix pxa2xx+pxa3xx configuration Arnd Bergmann
2019-10-18 18:40   ` Dmitry Torokhov
2019-10-28 21:33   ` Robert Jarzmik
2019-10-18 15:41 ` Arnd Bergmann [this message]
2019-10-18 18:41   ` [PATCH 28/46] input: touchscreen: mainstone: sync with zylonite driver Dmitry Torokhov
2019-10-28 21:40   ` Robert Jarzmik
2022-04-19 15:51     ` Arnd Bergmann
2019-10-18 15:41 ` [PATCH 29/46] Input: touchscreen: use wrapper for pxa2xx ac97 registers Arnd Bergmann
2019-10-18 18:48   ` Dmitry Torokhov
     [not found]     ` <CAK8P3a27==9TeS-RWEvrpnxh+6McqRF-xeb8WPj9pHOn+0zbOQ@mail.gmail.com>
2019-10-18 19:39       ` Fwd: " Arnd Bergmann
2019-10-18 20:39         ` Dmitry Torokhov
2019-10-30 20:33   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 30/46] SoC: pxa: use pdev resource for FIFO regs Arnd Bergmann
2019-10-22 16:39   ` Mark Brown
2019-10-22 20:13     ` Arnd Bergmann
2019-10-28 21:45   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 31/46] ASoC: pxa: ac97: use normal MMIO accessors Arnd Bergmann
2019-10-28 21:47   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 32/46] ASoC: pxa: i2s: " Arnd Bergmann
2019-10-22 16:39   ` Mark Brown
2019-10-28 21:50   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 33/46] ARM: pxa: pcmcia: move smemc configuration back to arch Arnd Bergmann
2019-10-28 21:57   ` Robert Jarzmik
2022-04-19 15:55     ` Arnd Bergmann
2019-10-18 15:41 ` [PATCH 34/46] ARM: pxa: remove get_clk_frequency_khz() Arnd Bergmann
2019-10-21  2:26   ` Viresh Kumar
2019-10-28 21:58   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 35/46] cpufreq: pxa3: move clk register access to clk driver Arnd Bergmann
2019-10-21  2:26   ` Viresh Kumar
2019-10-28  9:23   ` Stephen Boyd
2019-10-30 20:42     ` Robert Jarzmik
2019-11-08 21:59       ` Stephen Boyd
2019-11-08 22:02       ` Stephen Boyd
2019-10-18 15:41 ` [PATCH 36/46] ARM: pxa: move smemc register access from clk to platform Arnd Bergmann
2019-10-28  9:34   ` Stephen Boyd
2019-10-30 20:57   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 37/46] ARM: pxa: move clk register definitions to driver Arnd Bergmann
2019-10-28  9:34   ` Stephen Boyd
2019-10-30 21:00     ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 38/46] video: backlight: tosa: use gpio lookup table Arnd Bergmann
2019-10-30 21:10   ` Robert Jarzmik
2019-11-05 10:04   ` Linus Walleij
2019-11-05 10:17     ` Daniel Thompson
2019-11-11  9:30   ` Lee Jones
2019-10-18 15:41 ` [PATCH 39/46] power: tosa: simplify probe function Arnd Bergmann
2019-10-19  9:07   ` Sebastian Reichel
2019-10-30 21:12     ` Robert Jarzmik
2019-10-30 21:21     ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 40/46] ARM: pxa: tosa: use gpio lookup for battery Arnd Bergmann
2019-10-19  9:09   ` Sebastian Reichel
2019-10-18 15:41 ` [PATCH 41/46] ARM: pxa: move it8152 PCI support into machine Arnd Bergmann
2019-10-18 15:41 ` [PATCH 42/46] ARM: pxa: remove unused mach/bitfield.h Arnd Bergmann
2019-10-30 21:33   ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 43/46] ARM: pxa: pci-it8152: add platform checks Arnd Bergmann
2019-10-18 15:41 ` [PATCH 44/46] ARM: mmp: remove tavorevb board support Arnd Bergmann
2019-10-19 14:20   ` Lubomir Rintel
2019-10-19 19:34     ` Arnd Bergmann
2019-10-18 15:42 ` [PATCH 45/46] ARM: mmp: rename pxa_register_device Arnd Bergmann
2019-10-31  8:53   ` Lubomir Rintel
2019-10-18 15:42 ` [PATCH 46/46] ARM: pxa: move plat-pxa to drivers/soc/ Arnd Bergmann
2019-10-30 21:40   ` Robert Jarzmik
2019-10-31  8:53   ` Lubomir Rintel
2019-10-18 19:03 ` [PATCH 00/46] ARM: pxa: towards multiplatform support Robert Jarzmik
     [not found]   ` <CAK8P3a1JDtHsOW=iaxEycbJ4TBkR9MHUyDMeJnwxCtb=tefnBQ@mail.gmail.com>
2019-10-18 19:32     ` Arnd Bergmann
2019-10-19 10:35       ` Robert Jarzmik
2019-10-24 20:49         ` Robert Jarzmik
2019-10-25 10:50           ` Arnd Bergmann
2019-10-19  1:02 ` Guenter Roeck
2019-10-19 10:08   ` Arnd Bergmann
2019-10-19 10:09   ` Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191018154201.1276638-28-arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=daniel@zonque.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=haojian.zhuang@gmail.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robert.jarzmik@free.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).