Fair enough -- might take a little time though; holidays beckon! Regards Mike
On 5 Jul 2013, at 14:32, Jonas Gorski <j...@openwrt.org> wrote: > On Fri, Jul 5, 2013 at 11:45 AM, Mike Brady <mikebr...@eircom.net> wrote: >> This match modifies the setup file for the Linksys NSLU2 ("slug") to >> allow the power button on the front and the reset button on the back, >> behind a pinhole, to be seen by gpio-keys. >> >> The present situation is that neither button can be used effectively >> and this patch is designed to fix that. At present, both buttons are >> hard-coded as follows: The power button sends a "ctrlaltdel" signal >> which can be intercepted via /etc/inittab >> (see http://wiki.openwrt.org/toh/linksys/nslu2/nslu2.hardware.button). >> Unfortunately, the button isn't debounced, so the signal is sent many times, >> and in addition (I think) it runs as an interrupt handler. It interferes >> with other processes, e.g. pppd. The reset button powers the machine >> off directly. >> >> This patch fixes the situation by making the buttons accessible >> in the normal way via gpio-keys so that they can be used in the normal way. >> >> Signed-off-by Mike Brady <mikebr...@eircom.net> > > I like the approach. It would be nice if you could also add scripts > for those buttons to keep the reset/shutdown behaviour of the buttons > by default (I just want to avoid tickets that these buttons suddenly > don't work anymore ;). > > Some additional comments below ... > >> Index: target/linux/ixp4xx/patches-3.10/920-nslu2-add-gpio-keys.patch >> =================================================================== >> --- target/linux/ixp4xx/patches-3.10/920-nslu2-add-gpio-keys.patch >> (revision 0) >> +++ target/linux/ixp4xx/patches-3.10/920-nslu2-add-gpio-keys.patch >> (revision 0) >> @@ -0,0 +1,116 @@ >> +--- a/arch/arm/mach-ixp4xx/nslu2-setup.c >> ++++ b/arch/arm/mach-ixp4xx/nslu2-setup.c >> +@@ -9,6 +9,8 @@ >> + * Copyright (C) 2003-2004 MontaVista Software, Inc. >> + * based on nslu2-power.c: >> + * Copyright (C) 2005 Tower Technologies >> ++ * modified to allow the use of gpio-keys to sense the power and reset >> buttons, >> ++ * July 5, 2013 by Mike Brady <mikebr...@eircom.net>. >> + * >> + * Author: Mark Rakes <mrakes at mac.com> >> + * Author: Rod Whitby <r...@whitby.id.au> >> +@@ -26,6 +28,8 @@ >> + #include <linux/i2c.h> >> + #include <linux/i2c-gpio.h> >> + #include <linux/io.h> >> ++#include <linux/gpio_keys.h> >> ++#include <linux/input.h> >> + #include <asm/mach-types.h> >> + #include <asm/mach/arch.h> >> + #include <asm/mach/flash.h> >> +@@ -186,11 +190,46 @@ static struct platform_device nslu2_eth[ >> + } >> + }; >> + >> ++/* >> ++ * Buttons attached to GPIO. Used to permit gpio-keys to see them >> ++ * The Power Button is towards the bottom on the front. >> ++ * The Reset Button is behind a pinhole at the back. >> ++ */ >> ++static struct gpio_keys_button nslu2_buttons[] = { >> ++ { >> ++ .code = BTN_0, > > It's a power button, so KEY_POWER would be more appropriate. > >> ++ .gpio = NSLU2_PB_GPIO, >> ++ .desc = "nslu2-power-button", >> ++ .type = EV_KEY, >> ++ }, { >> ++ .code = BTN_1, > > And here KEY_RESTART. > >> ++ .gpio = NSLU2_RB_GPIO, >> ++ .desc = "nslu2-reset-button", >> ++ .type = EV_KEY, >> ++ .active_low = 1, >> ++ }, >> ++}; >> ++ > > > > Regards, > Jonas > _______________________________________________ > openwrt-devel mailing list > openwrt-devel@lists.openwrt.org > https://lists.openwrt.org/mailman/listinfo/openwrt-devel _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel