diff options
Diffstat (limited to 'target/linux')
4 files changed, 28 insertions, 3 deletions
diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig b/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig index ef52c05df..7939c3549 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig @@ -10,6 +10,7 @@ config RT305X_MACH_WHR_G300N  config RT305X_MACH_DIR_300_REVB  	bool "D-Link DIR-300 revB board support"  	default y +	select RALINK_DEV_GPIO_BUTTONS  	select RALINK_DEV_GPIO_LEDS  config RT305X_MACH_V22RW_2X2 diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-dir-300-revb.c b/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-dir-300-revb.c index 7acd1135e..dd2a5f474 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-dir-300-revb.c +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-dir-300-revb.c @@ -1,7 +1,7 @@  /*   *  D-Link DIR-300 rev B board support   * - *  Copyright (C) 2009 Gabor Juhos <juhosg@openwrt.org> + *  Copyright (C) 2009-2010 Gabor Juhos <juhosg@openwrt.org>   *   *  This program is free software; you can redistribute it and/or modify it   *  under the terms of the GNU General Public License version 2 as published @@ -15,6 +15,7 @@  #include <linux/mtd/physmap.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/rt305x.h>  #include <asm/mach-ralink/rt305x_regs.h> @@ -28,6 +29,8 @@  #define DIR_300B_GPIO_BUTTON_WPS	0	/* active low */  #define DIR_300B_GPIO_BUTTON_RESET	10	/* active low */ +#define DIR_300B_BUTTONS_POLL_INTERVAL	20 +  #ifdef CONFIG_MTD_PARTITIONS  static struct mtd_partition dir_300b_partitions[] = {  	{ @@ -84,6 +87,24 @@ static struct gpio_led dir_300b_leds_gpio[] __initdata = {  	}  }; +static struct gpio_button dir_300b_gpio_buttons[] __initdata = { +	{ +		.desc		= "reset", +		.type		= EV_KEY, +		.code		= BTN_0, +		.threshold	= 3, +		.gpio		= DIR_300B_GPIO_BUTTON_RESET, +		.active_low	= 1, +	}, { +		.desc		= "wps", +		.type		= EV_KEY, +		.code		= BTN_1, +		.threshold	= 3, +		.gpio		= DIR_300B_GPIO_BUTTON_WPS, +		.active_low	= 1, +	} +}; +  static void __init dir_300b_init(void)  {  	rt305x_gpio_init(RT305X_GPIO_MODE_GPIO << RT305X_GPIO_MODE_UART0_SHIFT); @@ -92,6 +113,9 @@ static void __init dir_300b_init(void)  	rt305x_register_ethernet();  	ramips_register_gpio_leds(-1, ARRAY_SIZE(dir_300b_leds_gpio),  				  dir_300b_leds_gpio); +	ramips_register_gpio_buttons(-1, DIR_300B_BUTTONS_POLL_INTERVAL, +				     ARRAY_SIZE(dir_300b_gpio_buttons), +				     dir_300b_gpio_buttons);  }  MIPS_MACHINE(RAMIPS_MACH_DIR_300_REVB, "DIR-300-revB", "D-Link DIR-300 revB", diff --git a/target/linux/ramips/rt305x/config-2.6.30 b/target/linux/ramips/rt305x/config-2.6.30 index 59c2de2e2..0977aca5b 100644 --- a/target/linux/ramips/rt305x/config-2.6.30 +++ b/target/linux/ramips/rt305x/config-2.6.30 @@ -109,7 +109,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 is not set  CONFIG_RALINK_RT305X=y diff --git a/target/linux/ramips/rt305x/config-2.6.32 b/target/linux/ramips/rt305x/config-2.6.32 index 25766814f..d6e873f42 100644 --- a/target/linux/ramips/rt305x/config-2.6.32 +++ b/target/linux/ramips/rt305x/config-2.6.32 @@ -112,7 +112,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 is not set  CONFIG_RALINK_RT305X=y  | 
