All of lore.kernel.org
 help / color / mirror / Atom feed
From: plagnioj@jcrosoft.com (Jean-Christophe PLAGNIOL-VILLARD)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 01/14] ARM: at91: gpio: implement request and free
Date: Fri, 10 Aug 2012 15:01:58 +0200	[thread overview]
Message-ID: <1344603731-32667-1-git-send-email-plagnioj@jcrosoft.com> (raw)
In-Reply-To: <20120810124820.GA20557@game.jcrosoft.org>

Configure a gpio as input when freeing it to reduce power consumption/
Confire the pin as pio when requested.

This is need by DT as we do not mux them any more.

Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
---
 arch/arm/mach-at91/gpio.c |   19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/arch/arm/mach-at91/gpio.c b/arch/arm/mach-at91/gpio.c
index be42cf0..3770d72 100644
--- a/arch/arm/mach-at91/gpio.c
+++ b/arch/arm/mach-at91/gpio.c
@@ -46,6 +46,8 @@ struct at91_gpio_chip {
 
 #define to_at91_gpio_chip(c) container_of(c, struct at91_gpio_chip, chip)
 
+static int at91_gpiolib_request(struct gpio_chip *chip, unsigned offset);
+static void at91_gpiolib_free(struct gpio_chip *chip, unsigned offset);
 static void at91_gpiolib_dbg_show(struct seq_file *s, struct gpio_chip *chip);
 static void at91_gpiolib_set(struct gpio_chip *chip, unsigned offset, int val);
 static int at91_gpiolib_get(struct gpio_chip *chip, unsigned offset);
@@ -59,6 +61,8 @@ static int at91_gpiolib_to_irq(struct gpio_chip *chip, unsigned offset);
 	{								\
 		.chip = {						\
 			.label		  = name,			\
+			.request	  = at91_gpiolib_request,	\
+			.free		  = at91_gpiolib_free,		\
 			.direction_input  = at91_gpiolib_direction_input, \
 			.direction_output = at91_gpiolib_direction_output, \
 			.get		  = at91_gpiolib_get,		\
@@ -862,6 +866,21 @@ void __init at91_gpio_irq_setup(void)
 }
 
 /* gpiolib support */
+static void at91_gpiolib_free(struct gpio_chip *chip, unsigned offset)
+{
+	at91_gpiolib_direction_input(chip, offset);
+}
+
+static int at91_gpiolib_request(struct gpio_chip *chip, unsigned offset)
+{
+	struct at91_gpio_chip *at91_gpio = to_at91_gpio_chip(chip);
+	void __iomem *pio = at91_gpio->regbase;
+	unsigned mask = 1 << offset;
+
+	__raw_writel(mask, pio + PIO_PER);
+	return 0;
+}
+
 static int at91_gpiolib_direction_input(struct gpio_chip *chip,
 					unsigned offset)
 {
-- 
1.7.10.4

  reply	other threads:[~2012-08-10 13:01 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-10 12:48 [PATCH 00/14] ARM: at91: add pinctrl support Jean-Christophe PLAGNIOL-VILLARD
2012-08-10 13:01 ` Jean-Christophe PLAGNIOL-VILLARD [this message]
2012-08-10 13:01   ` [PATCH 02/14] at91: regroup gpio and pinctrl under a simple-bus Jean-Christophe PLAGNIOL-VILLARD
2012-08-15  8:52     ` Linus Walleij
2012-08-18 21:14     ` Arnd Bergmann
2012-08-10 13:02   ` [PATCH 03/14] arm: at91: at91sam9x5: fix gpio number per bank Jean-Christophe PLAGNIOL-VILLARD
2012-08-15  8:54     ` Linus Walleij
2012-09-11 10:21       ` Nicolas Ferre
2012-08-18 21:18     ` Arnd Bergmann
2012-08-20  8:02       ` Jean-Christophe PLAGNIOL-VILLARD
2012-08-10 13:02   ` [PATCH 04/14] ARM: at91: add dummies pinctrl for non dt platform Jean-Christophe PLAGNIOL-VILLARD
2012-08-15  8:55     ` Linus Walleij
2012-09-11 10:22       ` Nicolas Ferre
2012-08-10 13:02   ` [PATCH 05/14] ARM: at91: add pinctrl support Jean-Christophe PLAGNIOL-VILLARD
2012-08-13 14:53     ` Richard Genoud
2012-08-14  2:37       ` Jean-Christophe PLAGNIOL-VILLARD
2012-08-14  7:24         ` Richard Genoud
     [not found]     ` <1344603731-32667-5-git-send-email-plagnioj-sclMFOaUSTBWk0Htik3J/w@public.gmane.org>
2012-08-15 14:38       ` Linus Walleij
2012-08-15 14:38         ` Linus Walleij
2012-08-16 12:18         ` Jean-Christophe PLAGNIOL-VILLARD
2012-08-16 12:18           ` Jean-Christophe PLAGNIOL-VILLARD
     [not found]           ` <20120816121852.GA7439-RQcB7r2h9QmfDR2tN2SG5Ni2O/JbrIOy@public.gmane.org>
2012-08-16 15:15             ` Warner Losh
2012-08-16 15:15               ` Warner Losh
     [not found]         ` <CACRpkdZ2__V06Eo8JH451Sup5Nw2jJXVOH2FOfZBp5nNYpCtbg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-08-22 15:34           ` Stephen Warren
2012-08-22 15:34             ` Stephen Warren
     [not found]             ` <5034FC18.2090400-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-08-23  7:06               ` Richard Genoud
2012-08-23  7:06                 ` Richard Genoud
     [not found]                 ` <CACQ1gAieByr5vMmyyCuGtS8AgnnRZPPhLZY8sKvwvcQYe5ieUA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-08-23 17:49                   ` Stephen Warren
2012-08-23 17:49                     ` Stephen Warren
2012-08-25  8:38                     ` Jean-Christophe PLAGNIOL-VILLARD
2012-08-25  8:38                       ` Jean-Christophe PLAGNIOL-VILLARD
     [not found]                       ` <20120825083811.GB7629-RQcB7r2h9QmfDR2tN2SG5Ni2O/JbrIOy@public.gmane.org>
2012-08-27 23:46                         ` Linus Walleij
2012-08-27 23:46                           ` Linus Walleij
     [not found]                           ` <CACRpkdYWXZLNdgMhqoMZsaaszZ5Uz9pZ1EO=mrnuY5Der4O+Mw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-08-28  6:51                             ` Richard Genoud
2012-08-28  6:51                               ` Richard Genoud
2012-09-11 10:27     ` Nicolas Ferre
2012-08-10 13:02   ` [PATCH 06/14] arm: at91: dt: at91sam9 " Jean-Christophe PLAGNIOL-VILLARD
2012-08-15  8:57     ` Linus Walleij
2012-08-17 15:39       ` Richard Genoud
2012-08-20 14:09     ` Richard Genoud
2012-08-20 15:11       ` Jean-Christophe PLAGNIOL-VILLARD
2012-08-20 15:43         ` Richard Genoud
2012-09-11 10:29     ` Nicolas Ferre
2012-08-10 13:02   ` [PATCH 07/14] arm: at91: dt: at91sam9 add serial " Jean-Christophe PLAGNIOL-VILLARD
2012-08-15  9:00     ` Linus Walleij
2012-09-11 10:30     ` Nicolas Ferre
2012-08-10 13:02   ` [PATCH 08/14] tty: atmel_serial: add " Jean-Christophe PLAGNIOL-VILLARD
2012-08-10 13:02     ` Jean-Christophe PLAGNIOL-VILLARD
2012-08-10 16:10     ` Greg KH
2012-08-10 16:10       ` Greg KH
2012-08-15  9:01     ` Linus Walleij
2012-08-15  9:01       ` Linus Walleij
2012-09-11 10:33     ` Nicolas Ferre
2012-09-11 10:33       ` Nicolas Ferre
2012-08-10 13:02   ` [PATCH 09/14] arm: at91: dt: sam9m10g45ek: use rts/cts pinctrl group for uart1 Jean-Christophe PLAGNIOL-VILLARD
2012-08-15  9:02     ` Linus Walleij
2012-09-11 10:34     ` Nicolas Ferre
2012-08-10 13:02   ` [PATCH 10/14] arm: at91: dt: sam9263ek: use rts/cts pinctrl group for uart0 Jean-Christophe PLAGNIOL-VILLARD
2012-08-15  9:02     ` Linus Walleij
2012-09-11 10:34     ` Nicolas Ferre
2012-08-10 13:02   ` [PATCH 11/14] arm: at91: dt: sam9g20ek: use rts/cts/dtr/dsr/dcd/ri " Jean-Christophe PLAGNIOL-VILLARD
2012-08-15  9:03     ` Linus Walleij
2012-09-11 10:36     ` Nicolas Ferre
2012-08-10 13:02   ` [PATCH 12/14] MTD: atmel nand: fix gpio missing request Jean-Christophe PLAGNIOL-VILLARD
2012-08-15  9:05     ` Linus Walleij
2012-08-10 13:02   ` [PATCH 13/14] arm: at91: dt: at91sam9 add nand pinctrl support Jean-Christophe PLAGNIOL-VILLARD
2012-08-15  9:06     ` Linus Walleij
2012-08-16 15:19       ` Richard Genoud
2012-08-16 17:38         ` Jean-Christophe PLAGNIOL-VILLARD
2012-08-17  6:53           ` Richard Genoud
2012-08-20  7:58             ` Jean-Christophe PLAGNIOL-VILLARD
2012-08-10 13:02   ` [PATCH 14/14] MTD: atmel_nand: add pinctrl consumer support Jean-Christophe PLAGNIOL-VILLARD
2012-08-10 13:02     ` Jean-Christophe PLAGNIOL-VILLARD
2012-08-15  9:07     ` Linus Walleij
2012-08-15  9:07       ` Linus Walleij
2012-08-24 11:51     ` Artem Bityutskiy
2012-08-24 11:51       ` Artem Bityutskiy
2012-08-15  8:51   ` [PATCH 01/14] ARM: at91: gpio: implement request and free Linus Walleij

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=1344603731-32667-1-git-send-email-plagnioj@jcrosoft.com \
    --to=plagnioj@jcrosoft.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.