summaryrefslogtreecommitdiffstats
path: root/arch/mips/include/asm/mach-rc32434/gpio.h
diff options
context:
space:
mode:
authorPhil Sutter <n0-1@freewrt.org>2009-03-04 23:27:15 -0800
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2009-03-09 20:10:12 -0700
commitd9bdffd2102404e8ea5f71c5b88dad890984164d (patch)
treec8deba7479dc3ba6140dd6c55742dbb16f819db7 /arch/mips/include/asm/mach-rc32434/gpio.h
parent73969ff0eda233f140bcbed1251431387b43f383 (diff)
downloadblackbird-op-linux-d9bdffd2102404e8ea5f71c5b88dad890984164d.tar.gz
blackbird-op-linux-d9bdffd2102404e8ea5f71c5b88dad890984164d.zip
Input: add driver for S1 button of rb532
Mikrotik's Routerboard 532 has two builtin buttons, from which one triggers a hardware reset. The other one is accessible through GPIO pin 1. Sadly, this pin is being multiplexed with UART0 input, so enabling it as interrupt source (as implied by the gpio-keys driver) is not possible unless UART0 has been turned off. The later one though is a rather bad idea as the Routerboard is an embedded device with only a single serial port, so it's almost always used as serial console device. This patch adds a driver based on INPUT_POLLDEV, which disables the UART and reconfigures GPIO pin 1 temporarily while reading the button state. This procedure works fine and has been tested as part of another, unpublished driver for this device. Signed-off-by: Phil Sutter <n0-1@freewrt.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'arch/mips/include/asm/mach-rc32434/gpio.h')
-rw-r--r--arch/mips/include/asm/mach-rc32434/gpio.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/mips/include/asm/mach-rc32434/gpio.h b/arch/mips/include/asm/mach-rc32434/gpio.h
index 3cb50d17b62d..12ee8d510160 100644
--- a/arch/mips/include/asm/mach-rc32434/gpio.h
+++ b/arch/mips/include/asm/mach-rc32434/gpio.h
@@ -80,6 +80,9 @@ struct rb532_gpio_reg {
/* Compact Flash GPIO pin */
#define CF_GPIO_NUM 13
+/* S1 button GPIO (shared with UART0_SIN) */
+#define GPIO_BTN_S1 1
+
extern void rb532_gpio_set_ilevel(int bit, unsigned gpio);
extern void rb532_gpio_set_istat(int bit, unsigned gpio);
extern void rb532_gpio_set_func(unsigned gpio);
OpenPOWER on IntegriCloud