diff options
Diffstat (limited to 'target/linux/ramips/files/arch')
| -rw-r--r-- | target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h | 1 | ||||
| -rw-r--r-- | target/linux/ramips/files/arch/mips/ralink/rt305x/mach-dir-300-revb.c | 54 | 
2 files changed, 52 insertions, 3 deletions
diff --git a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h index 50f86889b..2de19d799 100644 --- a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h +++ b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h @@ -27,6 +27,7 @@ enum ramips_mach_type {  	RAMIPS_MACH_DIR_600_B1,		/* D-Link DIR-600 B1 */  	RAMIPS_MACH_DIR_600_B2,		/* D-Link DIR-600 B2 */  	RAMIPS_MACH_DIR_615_D,		/* D-Link DIR-615 D */ +	RAMIPS_MACH_DIR_620_A1,		/* D-Link DIR-620 A1 */  	RAMIPS_MACH_RT_G32_B1,		/* Asus RT-G32 B1 */  	RAMIPS_MACH_RT_N10_PLUS,	/* Asus RT-N10+ */  	RAMIPS_MACH_NW718,		/* Netcore NW718 */ 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 e4c5c73da..3ae1b7852 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 @@ -29,6 +29,12 @@  #define DIR_300B_GPIO_LED_WAN_GREEN	12  #define DIR_300B_GPIO_LED_WAN_AMBER	14 +/* + * NOTE: the WPS led in DIR-620 consists of two antiparallel leds, + * so they can't be lit simultaneously + */ +#define DIR_620_GPIO_LED_WPS_AMBER	11 +  #define DIR_300B_GPIO_BUTTON_WPS	0	/* active low */  #define DIR_300B_GPIO_BUTTON_RESET	10	/* active low */ @@ -77,7 +83,33 @@ static struct gpio_keys_button dir_300b_gpio_buttons[] __initdata = {  	}  }; -static void __init dir_300b_init(void) +static struct gpio_led dir_620_leds_gpio[] __initdata = { +	{ +		.name		= "d-link:amber:status", +		.gpio		= DIR_300B_GPIO_LED_STATUS_AMBER, +		.active_low	= 1, +	}, { +		.name		= "d-link:green:status", +		.gpio		= DIR_300B_GPIO_LED_STATUS_GREEN, +		.active_low	= 1, +	}, { +		.name		= "d-link:amber:wan", +		.gpio		= DIR_300B_GPIO_LED_WAN_AMBER, +		.active_low	= 1, +	}, { +		.name		= "d-link:green:wan", +		.gpio		= DIR_300B_GPIO_LED_WAN_GREEN, +		.active_low	= 1, +	}, { +		.name		= "d-link:blue:wps", +		.gpio		= DIR_300B_GPIO_LED_WPS, +	}, { +		.name		= "d-link:amber:wps", +		.gpio		= DIR_620_GPIO_LED_WPS_AMBER, +	} +}; + +static void __init dir_common_init(void)  {  	rt305x_gpio_init(RT305X_GPIO_MODE_GPIO << RT305X_GPIO_MODE_UART0_SHIFT); @@ -85,8 +117,6 @@ static void __init dir_300b_init(void)  	rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_LLLLW;  	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_KEYS_POLL_INTERVAL,  				     ARRAY_SIZE(dir_300b_gpio_buttons),  				     dir_300b_gpio_buttons); @@ -94,6 +124,21 @@ static void __init dir_300b_init(void)  	rt305x_register_wdt();  } +static void __init dir_300b_init(void) +{ +	dir_common_init(); +	ramips_register_gpio_leds(-1, ARRAY_SIZE(dir_300b_leds_gpio), +				  dir_300b_leds_gpio); +} + +static void __init dir_620a1_init(void) +{ +	dir_common_init(); +	ramips_register_gpio_leds(-1, ARRAY_SIZE(dir_620_leds_gpio), +				  dir_620_leds_gpio); +	rt305x_register_usb(); +} +  MIPS_MACHINE(RAMIPS_MACH_DIR_300_B1, "DIR-300-B1", "D-Link DIR-300 B1",  	     dir_300b_init); @@ -105,3 +150,6 @@ MIPS_MACHINE(RAMIPS_MACH_DIR_600_B2, "DIR-600-B2", "D-Link DIR-600 B2",  MIPS_MACHINE(RAMIPS_MACH_DIR_615_D, "DIR-615-D", "D-Link DIR-615 D",  	     dir_300b_init); + +MIPS_MACHINE(RAMIPS_MACH_DIR_620_A1, "DIR-620-A1", "D-Link DIR-620 A1", +	     dir_620a1_init);  | 
