lkml.org 
[lkml]   [2008]   [May]   [28]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: Latest gpio gumph
FromBen Nizette <>
DateWed, 28 May 2008 15:13:53 +1000
On Tue, 2008-05-27 at 21:44 -0700, David Brownell wrote:
> 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)

Yup, indeed.

> 
>   - 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).

Righteo, thanks.

	--Ben.

> 
> - 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 07:17    [from the cache]
©2003-2008