Commit c022e871 authored by Florian Fainelli's avatar Florian Fainelli Committed by Thomas Bogendoerfer
Browse files

MIPS: BCM47XX: Add support for Netgear WNR3500L v2



Add support for the Netgear WNR3500L v2 router based on the BCM47186
chipset and supporting 802.11n Wi-Fi.

Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
parent d3164e2f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -181,6 +181,7 @@ struct bcm47xx_board_type_list1 bcm47xx_board_list_board_id[] __initconst = {
	{{BCM47XX_BOARD_NETGEAR_WNR1000_V3, "Netgear WNR1000 V3"}, "U12H139T50_NETGEAR"},
	{{BCM47XX_BOARD_NETGEAR_WNR2000, "Netgear WNR2000"}, "U12H114T00_NETGEAR"},
	{{BCM47XX_BOARD_NETGEAR_WNR3500L, "Netgear WNR3500L"}, "U12H136T99_NETGEAR"},
	{{BCM47XX_BOARD_NETGEAR_WNR3500L_V2, "Netgear WNR3500L V2"}, "U12H172T00_NETGEAR"},
	{{BCM47XX_BOARD_NETGEAR_WNR3500U, "Netgear WNR3500U"}, "U12H136T00_NETGEAR"},
	{{BCM47XX_BOARD_NETGEAR_WNR3500V2, "Netgear WNR3500 V2"}, "U12H127T00_NETGEAR"},
	{{BCM47XX_BOARD_NETGEAR_WNR3500V2VC, "Netgear WNR3500 V2vc"}, "U12H127T70_NETGEAR"},
@@ -195,6 +196,7 @@ struct bcm47xx_board_type_list3 bcm47xx_board_list_board[] __initconst = {
	{{BCM47XX_BOARD_PHICOMM_M1, "Phicomm M1"}, "0x0590", "80", "0x1104"},
	{{BCM47XX_BOARD_ZTE_H218N, "ZTE H218N"}, "0x053d", "1234", "0x1305"},
	{{BCM47XX_BOARD_NETGEAR_WNR3500L, "Netgear WNR3500L"}, "0x04CF", "3500", "02"},
	{{BCM47XX_BOARD_NETGEAR_WNR3500L_V2, "Netgear WNR3500L V2"}, "0x052b", "3500L", "02"},
	{{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101, "Linksys WRT54G/GS/GL"}, "0x0101", "42", "0x10"},
	{{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467, "Linksys WRT54G/GS/GL"}, "0x0467", "42", "0x10"},
	{{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0708, "Linksys WRT54G/GS/GL"}, "0x0708", "42", "0x10"},
+10 −0
Original line number Diff line number Diff line
@@ -459,6 +459,13 @@ bcm47xx_buttons_netgear_wnr3500lv1[] __initconst = {
	BCM47XX_GPIO_KEY(6, KEY_WPS_BUTTON),
};

static const struct gpio_keys_button
bcm47xx_buttons_netgear_wnr3500lv2[] __initconst = {
	BCM47XX_GPIO_KEY(4, KEY_RESTART),
	BCM47XX_GPIO_KEY(6, KEY_WPS_BUTTON),
	BCM47XX_GPIO_KEY(8, KEY_RFKILL),
};

static const struct gpio_keys_button
bcm47xx_buttons_netgear_wnr834bv2[] __initconst = {
	BCM47XX_GPIO_KEY(6, KEY_RESTART),
@@ -736,6 +743,9 @@ int __init bcm47xx_buttons_register(void)
	case BCM47XX_BOARD_NETGEAR_WNR3500L:
		err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wnr3500lv1);
		break;
	case BCM47XX_BOARD_NETGEAR_WNR3500L_V2:
		err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wnr3500lv2);
		break;
	case BCM47XX_BOARD_NETGEAR_WNR834BV2:
		err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wnr834bv2);
		break;
+11 −0
Original line number Diff line number Diff line
@@ -527,6 +527,14 @@ bcm47xx_leds_netgear_wnr3500lv1[] __initconst = {
	BCM47XX_GPIO_LED(7, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF),
};

static const struct gpio_led
bcm47xx_leds_netgear_wnr3500lv2[] __initconst = {
	BCM47XX_GPIO_LED(0, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
	BCM47XX_GPIO_LED(1, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
	BCM47XX_GPIO_LED(3, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
	BCM47XX_GPIO_LED(7, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF),
};

static const struct gpio_led
bcm47xx_leds_netgear_wnr834bv2[] __initconst = {
	BCM47XX_GPIO_LED(2, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
@@ -791,6 +799,9 @@ void __init bcm47xx_leds_register(void)
	case BCM47XX_BOARD_NETGEAR_WNR3500L:
		bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr3500lv1);
		break;
	case BCM47XX_BOARD_NETGEAR_WNR3500L_V2:
		bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr3500lv2);
		break;
	case BCM47XX_BOARD_NETGEAR_WNR834BV2:
		bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr834bv2);
		break;
+1 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ void __init bcm47xx_workarounds(void)

	switch (board) {
	case BCM47XX_BOARD_NETGEAR_WNR3500L:
	case BCM47XX_BOARD_NETGEAR_WNR3500L_V2:
		bcm47xx_workarounds_enable_usb_power(12);
		break;
	case BCM47XX_BOARD_NETGEAR_WNDR3400V2:
+1 −0
Original line number Diff line number Diff line
@@ -118,6 +118,7 @@ enum bcm47xx_board {
	BCM47XX_BOARD_NETGEAR_WNR1000_V3,
	BCM47XX_BOARD_NETGEAR_WNR2000,
	BCM47XX_BOARD_NETGEAR_WNR3500L,
	BCM47XX_BOARD_NETGEAR_WNR3500L_V2,
	BCM47XX_BOARD_NETGEAR_WNR3500U,
	BCM47XX_BOARD_NETGEAR_WNR3500V2,
	BCM47XX_BOARD_NETGEAR_WNR3500V2VC,