lkml.org 
[lkml]   [2008]   [May]   [28]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
FromDavid Brownell <>
SubjectRe: Latest gpio gumph
DateTue, 27 May 2008 21:44:33 -0700
On Tuesday 27 May 2008, Ben Nizette wrote:
> Hey David,
> 
> Have you got a git/quilt repo somewhere with all the latest gpiolib (and
> gpio framework) stuff glued in?  I've seen most of it hit -mm but
> developing against -mm on (especially on obscure archs like AVR32 as I
> do) is always fraught.

All the relevant stuff is now upstream (2.6.26-rc4) except:

  - the userspace sysfs interface (which is in MM, and ISTR
    you were cc'd on that)

  - an avr32 patch, appended (no response on the avr32 list)

Nothing else touches core code; if you're using AVR32, then
you won't care about at91 gpiolib and inlining support, or the
patch sent this AM on LKML (which I've not yet reviewed).

- Dave



====== CUT HERE
From: David Brownell <dbrownell@users.sourceforge.net>
Subject: AVR32: minor GPIO handling updates
 * gpio_direction_output() should disable the pullups just like
   at32_select_gpio(... AT32_GPIOF_OUTPUT) does, for consistency
   between those alternative initialization paths.

 * On the odd chance some code uses a pin as a GPIO IRQ without
   calling gpio_request() or gpio_direction_input(), the debug
   dump should still show its pin status.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
---
 arch/avr32/mach-at32ap/pio.c |    3 +++
 1 files changed, 3 insertions(+)
--- a/arch/avr32/mach-at32ap/pio.c	2008-05-02 12:30:59.000000000 -0700
+++ b/arch/avr32/mach-at32ap/pio.c	2008-05-02 12:41:29.000000000 -0700
@@ -191,6 +191,7 @@ static int direction_output(struct gpio_
 		return -EINVAL;
 
 	gpio_set(chip, offset, value);
+	pio_writel(pio, PUDR, mask);
 	pio_writel(pio, OER, mask);
 	return 0;
 }
@@ -318,6 +319,8 @@ static void pio_bank_show(struct seq_fil
 		const char *label;
 
 		label = gpiochip_is_requested(chip, i);
+		if (!label && (imr & mask))
+			label = "[irq]";
 		if (!label)
 			continue;
 

\
 
 \ /
  Last update: 2008-05-28 06:59    [from the cache]
©2003-2008