ramips: register gpio-buttons on the RT-N15 board
authorGabor Juhos <juhosg@openwrt.org>
Sat, 30 Jan 2010 15:25:25 +0000 (15:25 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Sat, 30 Jan 2010 15:25:25 +0000 (15:25 +0000)
SVN-Revision: 19405

target/linux/ramips/files/arch/mips/ralink/rt288x/Kconfig
target/linux/ramips/files/arch/mips/ralink/rt288x/mach-rt-n15.c
target/linux/ramips/rt288x/config-2.6.30
target/linux/ramips/rt288x/config-2.6.32

index 1b0b85468b7c871167cf5a4225414b89853c5895..857f4d32b352a83e597f6260462bb1b40e5cbffa 100644 (file)
@@ -5,6 +5,7 @@ menu "Ralink RT288x machine selection"
 config RT288X_MACH_RT_N15
        bool "Asus RT-N15 board support"
        default y
+       select RALINK_DEV_GPIO_BUTTONS
        select RALINK_DEV_GPIO_LEDS
 
 config RT288X_MACH_WZR_AGL300NH
index 877bff3aee051fbda4a20ded061f03b36929a842..af578c04dd7a832356ecf0257396a0c30e65fc68 100644 (file)
@@ -17,6 +17,7 @@
 #include <linux/rtl8366s.h>
 
 #include <asm/mach-ralink/machine.h>
+#include <asm/mach-ralink/dev-gpio-buttons.h>
 #include <asm/mach-ralink/dev_gpio_leds.h>
 #include <asm/mach-ralink/rt288x.h>
 #include <asm/mach-ralink/rt288x_regs.h>
@@ -30,6 +31,8 @@
 #define RT_N15_GPIO_RTL8366_SCK                2
 #define RT_N15_GPIO_RTL8366_SDA                1
 
+#define RT_N15_BUTTONS_POLL_INTERVAL   20
+
 #ifdef CONFIG_MTD_PARTITIONS
 static struct mtd_partition rt_n15_partitions[] = {
        {
@@ -78,6 +81,24 @@ static struct gpio_led rt_n15_leds_gpio[] __initdata = {
        }
 };
 
+static struct gpio_button rt_n15_gpio_buttons[] __initdata = {
+       {
+               .desc           = "reset",
+               .type           = EV_KEY,
+               .code           = BTN_0,
+               .threshold      = 3,
+               .gpio           = RT_N15_GPIO_BUTTON_RESET,
+               .active_low     = 1,
+       }, {
+               .desc           = "wps",
+               .type           = EV_KEY,
+               .code           = BTN_1,
+               .threshold      = 3,
+               .gpio           = RT_N15_GPIO_BUTTON_WPS,
+               .active_low     = 1,
+       }
+};
+
 static struct rtl8366s_platform_data rt_n15_rtl8366s_data = {
        .gpio_sda        = RT_N15_GPIO_RTL8366_SDA,
        .gpio_sck        = RT_N15_GPIO_RTL8366_SCK,
@@ -100,6 +121,10 @@ static void __init rt_n15_init(void)
        ramips_register_gpio_leds(-1, ARRAY_SIZE(rt_n15_leds_gpio),
                                  rt_n15_leds_gpio);
 
+       ramips_register_gpio_buttons(-1, RT_N15_BUTTONS_POLL_INTERVAL,
+                                    ARRAY_SIZE(rt_n15_gpio_buttons),
+                                    rt_n15_gpio_buttons);
+
        platform_device_register(&rt_n15_rtl8366s_device);
 }
 
index 2f5afaea3f73999f452fa8455b52c2be03d4871c..5077d23d7290c4c7a863607a7967d1f29c54d0f7 100644 (file)
@@ -113,7 +113,7 @@ CONFIG_PHYLIB=y
 # CONFIG_PNX8550_JBS is not set
 # CONFIG_PNX8550_STB810 is not set
 # CONFIG_PROBE_INITRD_HEADER is not set
-# CONFIG_RALINK_DEV_GPIO_BUTTONS is not set
+CONFIG_RALINK_DEV_GPIO_BUTTONS=y
 CONFIG_RALINK_DEV_GPIO_LEDS=y
 CONFIG_RALINK_RT288X=y
 # CONFIG_RALINK_RT305X is not set
index b0c1636065e6582115e60a7db0795801eb8f5e95..0db632f682fcb5361367f655451f226fd9264ec1 100644 (file)
@@ -116,7 +116,7 @@ CONFIG_PHYLIB=y
 # CONFIG_PNX8550_JBS is not set
 # CONFIG_PNX8550_STB810 is not set
 # CONFIG_PROBE_INITRD_HEADER is not set
-# CONFIG_RALINK_DEV_GPIO_BUTTONS is not set
+CONFIG_RALINK_DEV_GPIO_BUTTONS=y
 CONFIG_RALINK_DEV_GPIO_LEDS=y
 CONFIG_RALINK_RT288X=y
 # CONFIG_RALINK_RT305X is not set