linux-kernel.vger.kernel.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: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	Linus Walleij <linus.walleij@linaro.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Marek Vasut <marek.vasut@gmail.com>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	linux-input@vger.kernel.org
Subject: [PATCH 25/46] ARM: pxa: mainstone-wm97xx: use gpio lookup table
Date: Fri, 18 Oct 2019 17:41:40 +0200	[thread overview]
Message-ID: <20191018154201.1276638-25-arnd@arndb.de> (raw)
In-Reply-To: <20191018154052.1276506-1-arnd@arndb.de>

This driver hardcodes gpio numbers without a header file.
Use lookup tables instead.

Cc: Marek Vasut <marek.vasut@gmail.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-input@vger.kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/mach-pxa/mainstone.c                |  9 +++++
 arch/arm/mach-pxa/palmld.c                   |  9 +++++
 arch/arm/mach-pxa/palmt5.c                   |  9 +++++
 arch/arm/mach-pxa/palmtx.c                   |  9 +++++
 drivers/input/touchscreen/mainstone-wm97xx.c | 35 ++++++++------------
 5 files changed, 50 insertions(+), 21 deletions(-)

diff --git a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c
index 5f7bc5a9215e..48b89bca7b46 100644
--- a/arch/arm/mach-pxa/mainstone.c
+++ b/arch/arm/mach-pxa/mainstone.c
@@ -545,6 +545,14 @@ static struct gpiod_lookup_table mainstone_pcmcia_gpio_table = {
 	},
 };
 
+static struct gpiod_lookup_table mainstone_wm97xx_gpio_table = {
+	.dev_id = "wm97xx-touch",
+	.table = {
+		GPIO_LOOKUP("gpio-pxa", 4, "touch", GPIO_ACTIVE_HIGH),
+		{ },
+	},
+};
+
 static void __init mainstone_init(void)
 {
 	int SW7 = 0;  /* FIXME: get from SCR (Mst doc section 3.2.1.1) */
@@ -559,6 +567,7 @@ static void __init mainstone_init(void)
 		      "mst-pcmcia1", MST_PCMCIA_INPUTS, 0, NULL,
 		      NULL, mst_pcmcia1_irqs);
 	gpiod_add_lookup_table(&mainstone_pcmcia_gpio_table);
+	gpiod_add_lookup_table(&mainstone_wm97xx_gpio_table);
 
 	pxa_set_ffuart_info(NULL);
 	pxa_set_btuart_info(NULL);
diff --git a/arch/arm/mach-pxa/palmld.c b/arch/arm/mach-pxa/palmld.c
index d821606ce0b5..32308c63884e 100644
--- a/arch/arm/mach-pxa/palmld.c
+++ b/arch/arm/mach-pxa/palmld.c
@@ -347,6 +347,14 @@ static struct gpiod_lookup_table palmld_mci_gpio_table = {
 	},
 };
 
+static struct gpiod_lookup_table palmld_wm97xx_touch_gpio_table = {
+	.dev_id = "wm97xx-touch",
+	.table = {
+		GPIO_LOOKUP("gpio-pxa", 27, "touch", GPIO_ACTIVE_HIGH),
+		{ },
+	},
+};
+
 static void __init palmld_init(void)
 {
 	pxa2xx_mfp_config(ARRAY_AND_SIZE(palmld_pin_config));
@@ -355,6 +363,7 @@ static void __init palmld_init(void)
 	pxa_set_stuart_info(NULL);
 
 	palm27x_mmc_init(&palmld_mci_gpio_table);
+	gpiod_add_lookup_table(&palmld_wm97xx_touch_gpio_table);
 	palm27x_pm_init(PALMLD_STR_BASE);
 	palm27x_lcd_init(-1, &palm_320x480_lcd_mode);
 	palm27x_irda_init(GPIO_NR_PALMLD_IR_DISABLE);
diff --git a/arch/arm/mach-pxa/palmt5.c b/arch/arm/mach-pxa/palmt5.c
index 4e2cff87deba..f21cb23c51ac 100644
--- a/arch/arm/mach-pxa/palmt5.c
+++ b/arch/arm/mach-pxa/palmt5.c
@@ -191,6 +191,14 @@ static struct gpiod_lookup_table palmt5_mci_gpio_table = {
 	},
 };
 
+static struct gpiod_lookup_table palmt5_wm97xx_touch_gpio_table = {
+	.dev_id = "wm97xx-touch",
+	.table = {
+		GPIO_LOOKUP("gpio-pxa", 27, "touch", GPIO_ACTIVE_HIGH),
+		{ },
+	},
+};
+
 static void __init palmt5_init(void)
 {
 	pxa2xx_mfp_config(ARRAY_AND_SIZE(palmt5_pin_config));
@@ -199,6 +207,7 @@ static void __init palmt5_init(void)
 	pxa_set_stuart_info(NULL);
 
 	palm27x_mmc_init(&palmt5_mci_gpio_table);
+	gpiod_add_lookup_table(&palmt5_wm97xx_touch_gpio_table);
 	palm27x_pm_init(PALMT5_STR_BASE);
 	palm27x_lcd_init(-1, &palm_320x480_lcd_mode);
 	palm27x_udc_init(GPIO_NR_PALMT5_USB_DETECT_N,
diff --git a/arch/arm/mach-pxa/palmtx.c b/arch/arm/mach-pxa/palmtx.c
index d6819413a8d6..e0d9f7882285 100644
--- a/arch/arm/mach-pxa/palmtx.c
+++ b/arch/arm/mach-pxa/palmtx.c
@@ -346,6 +346,14 @@ static struct gpiod_lookup_table palmtx_mci_gpio_table = {
 	},
 };
 
+static struct gpiod_lookup_table palmtx_wm97xx_touch_gpio_table = {
+	.dev_id = "wm97xx-touch",
+	.table = {
+		GPIO_LOOKUP("gpio-pxa", 27, "touch", GPIO_ACTIVE_HIGH),
+		{ },
+	},
+};
+
 static void __init palmtx_init(void)
 {
 	pxa2xx_mfp_config(ARRAY_AND_SIZE(palmtx_pin_config));
@@ -354,6 +362,7 @@ static void __init palmtx_init(void)
 	pxa_set_stuart_info(NULL);
 
 	palm27x_mmc_init(&palmtx_mci_gpio_table);
+	gpiod_add_lookup_table(&palmtx_wm97xx_touch_gpio_table);
 	palm27x_pm_init(PALMTX_STR_BASE);
 	palm27x_lcd_init(-1, &palm_320x480_lcd_mode);
 	palm27x_udc_init(GPIO_NR_PALMTX_USB_DETECT_N,
diff --git a/drivers/input/touchscreen/mainstone-wm97xx.c b/drivers/input/touchscreen/mainstone-wm97xx.c
index f8564b398eb3..87655105ef3a 100644
--- a/drivers/input/touchscreen/mainstone-wm97xx.c
+++ b/drivers/input/touchscreen/mainstone-wm97xx.c
@@ -21,6 +21,7 @@
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
+#include <linux/gpio/consumer.h>
 #include <linux/irq.h>
 #include <linux/interrupt.h>
 #include <linux/wm97xx.h>
@@ -58,7 +59,7 @@ static const struct continuous cinfo[] = {
 /* continuous speed index */
 static int sp_idx;
 static u16 last, tries;
-static int irq;
+static struct gpio_desc *gpiod_irq;
 
 /*
  * Pen sampling frequency (Hz) in continuous mode.
@@ -194,28 +195,21 @@ static int wm97xx_acc_startup(struct wm97xx *wm)
 	/* IRQ driven touchscreen is used on Palm hardware */
 	if (machine_is_palmt5() || machine_is_palmtx() || machine_is_palmld()) {
 		pen_int = 1;
-		irq = 27;
 		/* There is some obscure mutant of WM9712 interbred with WM9713
 		 * used on Palm HW */
 		wm->variant = WM97xx_WM1613;
-	} else if (machine_is_mainstone() && pen_int)
-		irq = 4;
-
-	if (irq) {
-		ret = gpio_request(irq, "Touchscreen IRQ");
-		if (ret)
-			goto out;
-
-		ret = gpio_direction_input(irq);
-		if (ret) {
-			gpio_free(irq);
-			goto out;
-		}
+	}
+
+	if (pen_int) {
+		gpiod_irq = gpiod_get(wm->dev, "touch", GPIOD_IN);
+		if (IS_ERR(gpiod_irq))
+			pen_int = 0;
+	}
 
-		wm->pen_irq = gpio_to_irq(irq);
+	if (pen_int) {
+		wm->pen_irq = gpiod_to_irq(gpiod_irq);
 		irq_set_irq_type(wm->pen_irq, IRQ_TYPE_EDGE_BOTH);
-	} else /* pen irq not supported */
-		pen_int = 0;
+	}
 
 	/* codec specific irq config */
 	if (pen_int) {
@@ -242,7 +236,6 @@ static int wm97xx_acc_startup(struct wm97xx *wm)
 		}
 	}
 
-out:
 	return ret;
 }
 
@@ -250,8 +243,8 @@ static void wm97xx_acc_shutdown(struct wm97xx *wm)
 {
 	/* codec specific deconfig */
 	if (pen_int) {
-		if (irq)
-			gpio_free(irq);
+		if (gpiod_irq)
+			gpiod_put(gpiod_irq);
 		wm->pen_irq = 0;
 	}
 }
-- 
2.20.0


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

Thread overview: 150+ 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 ` Arnd Bergmann [this message]
2019-10-18 18:39   ` [PATCH 25/46] ARM: pxa: mainstone-wm97xx: use gpio lookup table 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 ` [PATCH 28/46] input: touchscreen: mainstone: sync with zylonite driver Arnd Bergmann
2019-10-18 18:41   ` 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-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-25-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=marek.vasut@gmail.com \
    --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).