@ -75,55 +75,18 @@ enum {
WAP54GV3 ,
WRT54GV1 ,
WRT54G ,
WRTSL54GS ,
WRT54G3G ,
WRT54G3GV2_VF ,
WRT150NV1 ,
WRT150NV11 ,
WRT160NV1 ,
WRT160NV3 ,
WRT300NV11 ,
WRT310NV1 ,
WRT350N ,
WRT600N ,
WRT600NV11 ,
WRT610N ,
WRT610NV2 ,
E1000V1 ,
E1000V21 ,
E2000V1 ,
E3000V1 ,
E3200V1 ,
E4200V1 ,
/* ASUS */
WLHDD ,
WL300G ,
WL320GE ,
WL330GE ,
WL500G ,
WL500GD ,
WL500GP ,
WL500GPV2 ,
WL500W ,
WL520GC ,
WL520GU ,
ASUS_4702 ,
WL700GE ,
RTN12 ,
RTN16 ,
RTN66U ,
/* Buffalo */
WBR2_G54 ,
WHR_G54S ,
WHR_HP_G54 ,
WHR_G125 ,
WHR2_A54G54 ,
WLA2_G54L ,
WZR_G300N ,
WZR_RS_G54 ,
WZR_RS_G54HP ,
BUFFALO_UNKNOWN_4710 ,
/* Siemens */
@ -134,23 +97,14 @@ enum {
USR5461 ,
/* Dell */
TM2300 ,
TM2300V2 ,
/* Motorola */
WE800G ,
WR850GV1 ,
WR850GV2V3 ,
WR850GP ,
/* Belkin */
BELKIN_F7D4301 ,
/* Netgear */
WGT634U ,
WNR834BV1 ,
WNR834BV2 ,
WNDR3400V1 ,
WNDR3700V3 ,
/* Trendware */
@ -160,9 +114,7 @@ enum {
STI_NAS ,
/* D-Link */
DIR130 ,
DIR320 ,
DIR330 ,
DWL3150 ,
/* Sitecom */
@ -184,7 +136,6 @@ enum {
PS1208MFG ,
/* Huawei */
HUAWEI_E970 ,
} ;
static void __init bcm4780_init ( void ) {
@ -216,15 +167,6 @@ static void __init NetCenter_init(void) {
bcm4780_init ( ) ;
}
static void __init bcm57xx_init ( void ) {
int pin = 1 < < 2 ;
/* FIXME: switch comes up, but port mappings/vlans not right */
bcm47xx_gpio_outen ( pin , pin ) ;
bcm47xx_gpio_control ( pin , 0 ) ;
bcm47xx_gpio_out ( pin , pin ) ;
}
static struct platform_t __initdata platforms [ ] = {
/* Linksys */
[ WAP54GV1 ] = {
@ -283,19 +225,6 @@ static struct platform_t __initdata platforms[] = {
{ . name = " wlan " , . gpio = 1 < < 0 , . polarity = REVERSE } ,
} ,
} ,
[ WRTSL54GS ] = {
. name = " Linksys WRTSL54GS " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
{ . name = " ses " , . gpio = 1 < < 4 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 1 , . polarity = NORMAL } ,
{ . name = " dmz " , . gpio = 1 < < 0 , . polarity = REVERSE } ,
{ . name = " ses_white " , . gpio = 1 < < 5 , . polarity = REVERSE } ,
{ . name = " ses_orange " , . gpio = 1 < < 7 , . polarity = REVERSE } ,
} ,
} ,
[ WRT54G3G ] = {
. name = " Linksys WRT54G3G " ,
. buttons = {
@ -310,91 +239,6 @@ static struct platform_t __initdata platforms[] = {
{ . name = " 3g_blink " , . gpio = 1 < < 5 , . polarity = NORMAL } ,
} ,
} ,
[ WRT54G3GV2_VF ] = {
. name = " Linksys WRT54G3GV2-VF " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
{ . name = " 3g " , . gpio = 1 < < 5 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 1 , . polarity = NORMAL } ,
{ . name = " 3g_green " , . gpio = 1 < < 2 , . polarity = NORMAL } ,
{ . name = " 3g_blue " , . gpio = 1 < < 3 , . polarity = NORMAL } ,
} ,
} ,
[ WRT150NV1 ] = {
. name = " Linksys WRT150N V1 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
{ . name = " ses " , . gpio = 1 < < 4 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 1 , . polarity = NORMAL } ,
{ . name = " ses_green " , . gpio = 1 < < 5 , . polarity = REVERSE } ,
{ . name = " ses_amber " , . gpio = 1 < < 3 , . polarity = REVERSE } ,
} ,
} ,
[ WRT150NV11 ] = {
. name = " Linksys WRT150N V1.1 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
{ . name = " ses " , . gpio = 1 < < 4 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 1 , . polarity = NORMAL } ,
{ . name = " ses_green " , . gpio = 1 < < 5 , . polarity = REVERSE } ,
{ . name = " ses_amber " , . gpio = 1 < < 3 , . polarity = REVERSE } ,
} ,
} ,
[ WRT160NV1 ] = {
. name = " Linksys WRT160N v1.x " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
{ . name = " ses " , . gpio = 1 < < 4 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 1 , . polarity = NORMAL } ,
{ . name = " ses_blue " , . gpio = 1 < < 5 , . polarity = REVERSE } ,
{ . name = " ses_orange " , . gpio = 1 < < 3 , . polarity = REVERSE } ,
} ,
} ,
[ WRT160NV3 ] = {
. name = " Linksys WRT160N V3 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
{ . name = " ses " , . gpio = 1 < < 5 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 1 , . polarity = NORMAL } ,
{ . name = " ses_blue " , . gpio = 1 < < 4 , . polarity = REVERSE } ,
{ . name = " ses_orange " , . gpio = 1 < < 2 , . polarity = REVERSE } ,
} ,
} ,
[ WRT300NV11 ] = {
. name = " Linksys WRT300N V1.1 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } , // "Reset" on back panel
{ . name = " ses " , . gpio = 1 < < 4 } , // "Reserved" on top panel
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 1 , . polarity = NORMAL } , // "Power"
{ . name = " ses_amber " , . gpio = 1 < < 3 , . polarity = REVERSE } , // "Security" Amber
{ . name = " ses_green " , . gpio = 1 < < 5 , . polarity = REVERSE } , // "Security" Green
} ,
. platform_init = bcm57xx_init ,
} ,
[ WRT310NV1 ] = {
. name = " Linksys WRT310N V1 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } , // "Reset" on back panel
{ . name = " ses " , . gpio = 1 < < 8 } , // "Reserved" on top panel
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 1 , . polarity = NORMAL } , // Power LED
{ . name = " ses_amber " , . gpio = 1 < < 3 , . polarity = REVERSE } , // "Security" Amber
{ . name = " ses_blue " , . gpio = 1 < < 9 , . polarity = REVERSE } , // "Security" Blue
} ,
} ,
[ WRT350N ] = {
. name = " Linksys WRT350N " ,
. buttons = {
@ -408,7 +252,6 @@ static struct platform_t __initdata platforms[] = {
{ . name = " usb_blink " , . gpio = 1 < < 10 , . polarity = REVERSE } ,
{ . name = " usb " , . gpio = 1 < < 11 , . polarity = REVERSE } ,
} ,
. platform_init = bcm57xx_init ,
} ,
[ WRT600N ] = {
. name = " Linksys WRT600N " ,
@ -424,7 +267,6 @@ static struct platform_t __initdata platforms[] = {
{ . name = " wl1_ses_amber " , . gpio = 1 < < 10 , . polarity = REVERSE } , // 5.6Ghz LED Amber
{ . name = " wl1_ses_green " , . gpio = 1 < < 11 , . polarity = REVERSE } , // 5.6Ghz LED Green
} ,
. platform_init = bcm57xx_init ,
} ,
[ WRT600NV11 ] = {
. name = " Linksys WRT600N V1.1 " ,
@ -440,156 +282,8 @@ static struct platform_t __initdata platforms[] = {
{ . name = " wl1_ses_amber " , . gpio = 1 < < 10 , . polarity = REVERSE } , // 5.6Ghz LED Amber
{ . name = " wl1_ses_green " , . gpio = 1 < < 11 , . polarity = REVERSE } , // 5.6Ghz LED Green
} ,
. platform_init = bcm57xx_init ,
} ,
[ WRT610N ] = {
. name = " Linksys WRT610N " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
{ . name = " ses " , . gpio = 1 < < 8 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 1 , . polarity = NORMAL } , // Power LED
{ . name = " usb " , . gpio = 1 < < 0 , . polarity = REVERSE } , // USB LED
{ . name = " ses_amber " , . gpio = 1 < < 3 , . polarity = REVERSE } , // WiFi protected setup LED amber
{ . name = " ses_blue " , . gpio = 1 < < 9 , . polarity = REVERSE } , // WiFi protected setup LED blue
} ,
} ,
[ WRT610NV2 ] = {
. name = " Linksys WRT610N V2 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
{ . name = " ses " , . gpio = 1 < < 4 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 5 , . polarity = NORMAL } , // Power LED
{ . name = " usb " , . gpio = 1 < < 7 , . polarity = NORMAL } , // USB LED
{ . name = " ses_amber " , . gpio = 1 < < 0 , . polarity = REVERSE } , // WiFi protected setup LED amber
{ . name = " ses_blue " , . gpio = 1 < < 3 , . polarity = REVERSE } , // WiFi protected setup LED blue
{ . name = " wlan " , . gpio = 1 < < 1 , . polarity = NORMAL } , // Wireless LED
} ,
} ,
/* same hardware as WRT160NV3 and Cisco Valet M10V1, but different board detection, combine? */
[ E1000V1 ] = {
. name = " Linksys E1000 V1 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
{ . name = " wps " , . gpio = 1 < < 5 } , /* nvram get gpio5=wps_button */
} ,
. leds = {
/** turns on leds for all ethernet ports (wan too)
* this also disconnects some , or maybe all , ethernet ports
* 1 : leds work normally
* 0 : all lit all the time */
/* nvram get gpio3=robo_reset */
{ . name = " wlan " , . gpio = 1 < < 0 , . polarity = NORMAL } ,
{ . name = " power " , . gpio = 1 < < 1 , . polarity = NORMAL } ,
{ . name = " ses_blue " , . gpio = 1 < < 4 , . polarity = REVERSE } , /* nvram get gpio4=wps_led */
{ . name = " ses_orange " , . gpio = 1 < < 2 , . polarity = REVERSE } , /* nvram get gpio2=wps_status_led */
} ,
} ,
[ E1000V21 ] = {
. name = " Linksys E1000 V2.1 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 10 } , /* nvram get reset_gpio=10 */
{ . name = " wps " , . gpio = 1 < < 9 } , /* nvram get gpio9=wps_button */
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 6 , . polarity = REVERSE } ,
{ . name = " wlan " , . gpio = 1 < < 5 , . polarity = NORMAL } ,
{ . name = " ses_blue " , . gpio = 1 < < 8 , . polarity = NORMAL } , /* nvram get gpio8=wps_led */
{ . name = " ses_orange " , . gpio = 1 < < 7 , . polarity = NORMAL } , /* nvram get gpio7=wps_status_led */
} ,
} ,
[ E2000V1 ] = {
. name = " Linksys E2000 V1 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 8 } ,
{ . name = " ses " , . gpio = 1 < < 5 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 2 , . polarity = NORMAL } ,
{ . name = " ses_amber " , . gpio = 1 < < 4 , . polarity = REVERSE } ,
{ . name = " ses_blue " , . gpio = 1 < < 3 , . polarity = REVERSE } ,
{ . name = " wlan " , . gpio = 1 < < 1 , . polarity = NORMAL } ,
} ,
} ,
[ E3000V1 ] = {
. name = " Linksys E3000 V1 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
{ . name = " ses " , . gpio = 1 < < 4 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 5 , . polarity = NORMAL } , // Power LED
{ . name = " usb " , . gpio = 1 < < 7 , . polarity = NORMAL } , // USB LED
{ . name = " ses_amber " , . gpio = 1 < < 0 , . polarity = REVERSE } , // WiFi protected setup LED amber
{ . name = " ses_blue " , . gpio = 1 < < 3 , . polarity = REVERSE } , // WiFi protected setup LED blue
{ . name = " wlan " , . gpio = 1 < < 1 , . polarity = NORMAL } , // Wireless LED
} ,
} ,
[ E3200V1 ] = {
. name = " Linksys E3200 V1 " ,
. buttons = {
/* { .name = "switch", .gpio = 1 << 4 },*/ /* nvram get gpio4=robo_reset */
{ . name = " reset " , . gpio = 1 < < 5 } , /* nvram get reset_gpio=5 */
{ . name = " wps " , . gpio = 1 < < 8 } , /* nvram get gpio8=wps_button */
/* { .name = "wombo", .gpio = 1 << 23 },*/ /* nvram get gpio23=wombo_reset - wireless on motherboard */
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 3 , . polarity = REVERSE } , /* Power LED */
} ,
} ,
[ E4200V1 ] = {
. name = " Linksys E4200 V1 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
{ . name = " wps " , . gpio = 1 < < 4 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 5 , . polarity = REVERSE } ,
} ,
} ,
/* Asus */
[ WLHDD ] = {
. name = " ASUS WL-HDD " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 0 , . polarity = REVERSE } ,
{ . name = " usb " , . gpio = 1 < < 2 , . polarity = REVERSE } ,
} ,
} ,
[ WL300G ] = {
. name = " ASUS WL-300g " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 0 , . polarity = REVERSE } ,
} ,
} ,
[ WL320GE ] = {
. name = " ASUS WL-320gE/WL-320gP " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
} ,
. leds = {
{ . name = " wlan " , . gpio = 1 < < 0 , . polarity = REVERSE } ,
{ . name = " power " , . gpio = 1 < < 2 , . polarity = REVERSE } ,
{ . name = " link " , . gpio = 1 < < 11 , . polarity = REVERSE } ,
} ,
} ,
[ WL330GE ] = {
. name = " ASUS WL-330gE " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 2 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 0 , . polarity = REVERSE } ,
} ,
} ,
[ WL500G ] = {
. name = " ASUS WL-500g " ,
. buttons = {
@ -599,68 +293,6 @@ static struct platform_t __initdata platforms[] = {
{ . name = " power " , . gpio = 1 < < 0 , . polarity = REVERSE } ,
} ,
} ,
[ WL500GD ] = {
. name = " ASUS WL-500g Deluxe " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 0 , . polarity = REVERSE } ,
} ,
} ,
[ WL500GP ] = {
. name = " ASUS WL-500g Premium " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 0 } ,
{ . name = " ses " , . gpio = 1 < < 4 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 1 , . polarity = REVERSE } ,
} ,
} ,
[ WL500GPV2 ] = {
. name = " ASUS WL-500g Premium V2 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 2 } ,
{ . name = " ses " , . gpio = 1 < < 3 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 0 , . polarity = REVERSE } ,
{ . name = " wlan " , . gpio = 1 < < 1 , . polarity = REVERSE } ,
} ,
} ,
[ WL500W ] = {
. name = " ASUS WL-500W " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
{ . name = " ses " , . gpio = 1 < < 7 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 5 , . polarity = REVERSE } ,
} ,
} ,
[ WL520GC ] = {
. name = " ASUS WL-520GC " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 2 } ,
{ . name = " ses " , . gpio = 1 < < 3 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 0 , . polarity = REVERSE } ,
{ . name = " wlan " , . gpio = 1 < < 1 , . polarity = REVERSE } ,
} ,
} ,
[ WL520GU ] = {
. name = " ASUS WL-520gU " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 2 } ,
{ . name = " ses " , . gpio = 1 < < 3 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 0 , . polarity = REVERSE } ,
{ . name = " wlan " , . gpio = 1 < < 1 , . polarity = REVERSE } ,
} ,
} ,
[ ASUS_4702 ] = {
. name = " ASUS (unknown, BCM4702) " ,
. buttons = {
@ -670,80 +302,7 @@ static struct platform_t __initdata platforms[] = {
{ . name = " power " , . gpio = 1 < < 0 , . polarity = REVERSE } ,
} ,
} ,
[ WL700GE ] = {
. name = " ASUS WL-700gE " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 7 } , // on back, hardwired, always resets device regardless OS state
{ . name = " ses " , . gpio = 1 < < 4 } , // on back, actual name ezsetup
{ . name = " power " , . gpio = 1 < < 0 } , // on front
{ . name = " copy " , . gpio = 1 < < 6 } , // on front
} ,
. leds = {
#if 0
// GPIO that controls power led also enables/disables some essential functions
// - power to HDD
// - switch leds
{ . name = " power " , . gpio = 1 < < 3 , . polarity = NORMAL } , // actual name power
# endif
{ . name = " diag " , . gpio = 1 < < 1 , . polarity = REVERSE } , // actual name ready
} ,
. platform_init = bcm4780_init ,
} ,
[ RTN12 ] = {
. name = " ASUS RT-N12 " ,
. buttons = {
{ . name = " wps " , . gpio = 1 < < 0 } ,
{ . name = " reset " , . gpio = 1 < < 1 } ,
// this is the router/repeater/ap switch
{ . name = " sw1 " , . gpio = 1 < < 4 } ,
{ . name = " sw2 " , . gpio = 1 < < 5 } ,
{ . name = " sw3 " , . gpio = 1 < < 6 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 2 , . polarity = REVERSE } ,
{ . name = " wlan " , . gpio = 1 < < 7 , . polarity = NORMAL } ,
// gpio3 forces WAN and LAN1-4 all on
//{ .name = "eth", .gpio = 1 << 3, .polarity = REVERSE },
} ,
} ,
[ RTN16 ] = {
. name = " ASUS RT-N16 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 8 } ,
{ . name = " ses " , . gpio = 1 < < 6 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 1 , . polarity = REVERSE } ,
{ . name = " wlan " , . gpio = 1 < < 7 , . polarity = NORMAL } ,
} ,
} ,
[ RTN66U ] = {
. name = " ASUS RT-N66U " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 9 } ,
{ . name = " wps " , . gpio = 1 < < 4 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 12 , . polarity = REVERSE } ,
{ . name = " usb " , . gpio = 1 < < 15 , . polarity = REVERSE } ,
} ,
} ,
/* Buffalo */
[ WHR_G54S ] = {
. name = " Buffalo WHR-G54S " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 4 } ,
{ . name = " bridge " , . gpio = 1 < < 5 } ,
{ . name = " ses " , . gpio = 1 < < 0 } ,
} ,
. leds = {
{ . name = " diag " , . gpio = 1 < < 7 , . polarity = REVERSE } ,
{ . name = " internal " , . gpio = 1 < < 3 , . polarity = REVERSE } ,
{ . name = " ses " , . gpio = 1 < < 6 , . polarity = REVERSE } ,
{ . name = " bridge " , . gpio = 1 < < 1 , . polarity = REVERSE } ,
{ . name = " wlan " , . gpio = 1 < < 2 , . polarity = REVERSE } ,
} ,
} ,
[ WBR2_G54 ] = {
. name = " Buffalo WBR2-G54 " ,
/* FIXME: verify */
@ -754,45 +313,6 @@ static struct platform_t __initdata platforms[] = {
{ . name = " diag " , . gpio = 1 < < 1 , . polarity = REVERSE } ,
} ,
} ,
[ WHR_HP_G54 ] = {
. name = " Buffalo WHR-HP-G54 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 4 } ,
{ . name = " bridge " , . gpio = 1 < < 5 } ,
{ . name = " ses " , . gpio = 1 < < 0 } ,
} ,
. leds = {
{ . name = " diag " , . gpio = 1 < < 7 , . polarity = REVERSE } ,
{ . name = " internal " , . gpio = 1 < < 3 , . polarity = REVERSE } ,
{ . name = " bridge " , . gpio = 1 < < 1 , . polarity = REVERSE } ,
{ . name = " ses " , . gpio = 1 < < 6 , . polarity = REVERSE } ,
{ . name = " wlan " , . gpio = 1 < < 2 , . polarity = REVERSE } ,
} ,
} ,
[ WHR_G125 ] = {
. name = " Buffalo WHR-G125 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 4 } ,
{ . name = " bridge " , . gpio = 1 < < 5 } ,
{ . name = " ses " , . gpio = 1 < < 0 } ,
} ,
. leds = {
{ . name = " diag " , . gpio = 1 < < 7 , . polarity = REVERSE } ,
{ . name = " internal " , . gpio = 1 < < 3 , . polarity = REVERSE } ,
{ . name = " bridge " , . gpio = 1 < < 1 , . polarity = REVERSE } ,
{ . name = " ses " , . gpio = 1 < < 6 , . polarity = REVERSE } ,
{ . name = " wlan " , . gpio = 1 < < 2 , . polarity = REVERSE } ,
} ,
} ,
[ WHR2_A54G54 ] = {
. name = " Buffalo WHR2-A54G54 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 4 } ,
} ,
. leds = {
{ . name = " diag " , . gpio = 1 < < 7 , . polarity = REVERSE } ,
} ,
} ,
[ WLA2_G54L ] = {
. name = " Buffalo WLA2-G54L " ,
/* FIXME: verify */
@ -803,41 +323,6 @@ static struct platform_t __initdata platforms[] = {
{ . name = " diag " , . gpio = 1 < < 1 , . polarity = REVERSE } ,
} ,
} ,
[ WZR_G300N ] = {
. name = " Buffalo WZR-G300N " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 4 } ,
} ,
. leds = {
{ . name = " diag " , . gpio = 1 < < 7 , . polarity = REVERSE } ,
{ . name = " bridge " , . gpio = 1 < < 1 , . polarity = REVERSE } ,
{ . name = " ses " , . gpio = 1 < < 6 , . polarity = REVERSE } ,
} ,
} ,
[ WZR_RS_G54 ] = {
. name = " Buffalo WZR-RS-G54 " ,
. buttons = {
{ . name = " ses " , . gpio = 1 < < 0 } ,
{ . name = " reset " , . gpio = 1 < < 4 } ,
} ,
. leds = {
{ . name = " diag " , . gpio = 1 < < 7 , . polarity = REVERSE } ,
{ . name = " ses " , . gpio = 1 < < 6 , . polarity = REVERSE } ,
{ . name = " vpn " , . gpio = 1 < < 1 , . polarity = REVERSE } ,
} ,
} ,
[ WZR_RS_G54HP ] = {
. name = " Buffalo WZR-RS-G54HP " ,
. buttons = {
{ . name = " ses " , . gpio = 1 < < 0 } ,
{ . name = " reset " , . gpio = 1 < < 4 } ,
} ,
. leds = {
{ . name = " diag " , . gpio = 1 < < 7 , . polarity = REVERSE } ,
{ . name = " ses " , . gpio = 1 < < 6 , . polarity = REVERSE } ,
{ . name = " vpn " , . gpio = 1 < < 1 , . polarity = REVERSE } ,
} ,
} ,
[ BUFFALO_UNKNOWN_4710 ] = {
. name = " Buffalo (unknown, BCM4710) " ,
. buttons = {
@ -882,16 +367,6 @@ static struct platform_t __initdata platforms[] = {
} ,
} ,
/* Dell */
[ TM2300 ] = {
. name = " Dell TrueMobile 2300 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 0 } ,
} ,
. leds = {
{ . name = " wlan " , . gpio = 1 < < 6 , . polarity = REVERSE } ,
{ . name = " power " , . gpio = 1 < < 7 , . polarity = REVERSE } ,
} ,
} ,
[ TM2300V2 ] = {
. name = " Dell TrueMobile 2300 v2 " ,
. buttons = {
@ -903,17 +378,6 @@ static struct platform_t __initdata platforms[] = {
} ,
} ,
/* Motorola */
[ WE800G ] = {
. name = " Motorola WE800G " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 0 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 4 , . polarity = NORMAL } ,
{ . name = " diag " , . gpio = 1 < < 2 , . polarity = REVERSE } ,
{ . name = " wlan_amber " , . gpio = 1 < < 1 , . polarity = NORMAL } ,
} ,
} ,
[ WR850GV1 ] = {
. name = " Motorola WR850G V1 " ,
. buttons = {
@ -927,47 +391,7 @@ static struct platform_t __initdata platforms[] = {
{ . name = " wlan_green " , . gpio = 1 < < 7 , . polarity = REVERSE } ,
} ,
} ,
[ WR850GV2V3 ] = {
. name = " Motorola WR850G V2/V3 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 5 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 1 , . polarity = NORMAL } ,
{ . name = " wlan " , . gpio = 1 < < 0 , . polarity = REVERSE } ,
{ . name = " wan " , . gpio = 1 < < 6 , . polarity = INPUT } ,
{ . name = " diag " , . gpio = 1 < < 7 , . polarity = REVERSE } ,
} ,
} ,
[ WR850GP ] = {
. name = " Motorola WR850GP " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 5 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 1 , . polarity = NORMAL } ,
{ . name = " wlan " , . gpio = 1 < < 0 , . polarity = REVERSE } ,
{ . name = " dmz " , . gpio = 1 < < 6 , . polarity = REVERSE } ,
{ . name = " diag " , . gpio = 1 < < 7 , . polarity = REVERSE } ,
} ,
} ,
/* Belkin */
[ BELKIN_F7D4301 ] = {
. name = " Belkin PlayMax F7D4301 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
{ . name = " wps " , . gpio = 1 < < 8 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 10 , . polarity = REVERSE } ,
{ . name = " warn " , . gpio = 1 < < 11 , . polarity = REVERSE } ,
{ . name = " wps " , . gpio = 1 < < 12 , . polarity = REVERSE } ,
{ . name = " wlan " , . gpio = 1 < < 13 , . polarity = REVERSE } ,
{ . name = " usb0 " , . gpio = 1 < < 14 , . polarity = REVERSE } ,
{ . name = " usb1 " , . gpio = 1 < < 15 , . polarity = REVERSE } ,
} ,
} ,
/* Netgear */
[ WGT634U ] = {
. name = " Netgear WGT634U " ,
@ -989,33 +413,6 @@ static struct platform_t __initdata platforms[] = {
} ,
} ,
/* Netgear */
[ WNR834BV2 ] = {
. name = " Netgear WNR834B V2 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
} ,
. leds = {
{ . name = " power " , . gpio = 1 < < 2 , . polarity = NORMAL } ,
{ . name = " diag " , . gpio = 1 < < 3 , . polarity = NORMAL } ,
{ . name = " connected " , . gpio = 1 < < 7 , . polarity = NORMAL } ,
} ,
} ,
[ WNDR3400V1 ] = {
. name = " Netgear WNDR3400 V1 " ,
. buttons = {
/* nvram get gpio5=robo_reset */
{ . name = " reset " , . gpio = 1 < < 4 } ,
{ . name = " wps " , . gpio = 1 < < 6 } ,
{ . name = " wlan " , . gpio = 1 < < 8 } ,
} ,
. leds = {
{ . name = " wlan " , . gpio = 0 < < 0 , . polarity = NORMAL } ,
{ . name = " connected " , . gpio = 1 < < 0 , . polarity = NORMAL } ,
{ . name = " power " , . gpio = 1 < < 3 , . polarity = NORMAL } ,
{ . name = " diag " , . gpio = 1 < < 7 , . polarity = NORMAL } ,
{ . name = " usb " , . gpio = 1 < < 2 , . polarity = REVERSE } ,
} ,
} ,
[ WNDR3700V3 ] = {
. name = " Netgear WNDR3700 V3 " ,
. buttons = {
@ -1062,17 +459,6 @@ static struct platform_t __initdata platforms[] = {
. platform_init = bcm4780_init ,
} ,
/* D-Link */
[ DIR130 ] = {
. name = " D-Link DIR-130 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 3 } ,
{ . name = " reserved " , . gpio = 1 < < 7 } ,
} ,
. leds = {
{ . name = " diag " , . gpio = 1 < < 0 } ,
{ . name = " blue " , . gpio = 1 < < 6 } ,
} ,
} ,
[ DIR320 ] = {
. name = " D-Link DIR-320 " ,
. buttons = {
@ -1087,18 +473,6 @@ static struct platform_t __initdata platforms[] = {
{ . name = " usb " , . gpio = 1 < < 5 , . polarity = NORMAL } ,
} ,
} ,
[ DIR330 ] = {
. name = " D-Link DIR-330 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 3 } ,
{ . name = " reserved " , . gpio = 1 < < 7 } ,
} ,
. leds = {
{ . name = " diag " , . gpio = 1 < < 0 } ,
{ . name = " usb " , . gpio = 1 < < 4 } ,
{ . name = " blue " , . gpio = 1 < < 6 } ,
} ,
} ,
[ DWL3150 ] = {
. name = " D-Link DWL-3150 " ,
. buttons = {
@ -1179,15 +553,6 @@ static struct platform_t __initdata platforms[] = {
} ,
} ,
/* Huawei */
[ HUAWEI_E970 ] = {
. name = " Huawei E970 " ,
. buttons = {
{ . name = " reset " , . gpio = 1 < < 6 } ,
} ,
. leds = {
{ . name = " wlan " , . gpio = 1 < < 0 , . polarity = NORMAL } ,
} ,
} ,
} ;
static struct platform_t __init * platform_detect_legacy ( void )
@ -1252,8 +617,6 @@ static struct platform_t __init *platform_detect_legacy(void)
if ( ! strcmp ( boardtype , " 0x0472 " ) & & ! strcmp ( getvar ( " cardbus " ) , " 1 " ) ) { /* Netgear WNR834B V1 and V2*/
if ( ! strcmp ( boardnum , " 08 " ) | | ! strcmp ( boardnum , " 8 " ) )
return & platforms [ WNR834BV1 ] ;
if ( ! strcmp ( boardnum , " 01 " ) | | ! strcmp ( boardnum , " 1 " ) )
return & platforms [ WNR834BV2 ] ;
}
} else { /* PMON based - old stuff */
@ -1300,13 +663,6 @@ static struct platform_t __init *platform_detect_legacy(void)
return & platforms [ BUFFALO_UNKNOWN_4710 ] ;
}
if ( startswith ( getvar ( " CFEver " ) , " MotoWRv2 " ) | |
startswith ( getvar ( " CFEver " ) , " MotoWRv3 " ) | |
! strcmp ( getvar ( " MOTO_BOARD_TYPE " ) , " WR_FEM1 " ) ) {
return & platforms [ WR850GV2V3 ] ;
}
if ( ! strcmp ( boardnum , " 44 " ) & & ! strcmp ( getvar ( " boardflags " ) , " 0x0388 " ) ) { /* Trendware TEW-411BRP+ */
return & platforms [ TEW411BRPP ] ;
}
@ -1333,108 +689,14 @@ static struct platform_t __init *platform_detect(void)
board = bcm47xx_board_get ( ) ;
board_name = bcm47xx_board_get_name ( ) ;
if ( board ! = BCM47XX_BOARD_UNKNOWN & & board ! = BCM47XX_BOARD_NO )
printk ( MODULE_NAME " : kernel found a \" %s \" \n " , board_name ) ;
switch ( board ) {
case BCM47XX_BOARD_ASUS_RTN12 :
return & platforms [ RTN12 ] ;
case BCM47XX_BOARD_ASUS_RTN16 :
return & platforms [ RTN16 ] ;
case BCM47XX_BOARD_ASUS_RTN66U :
return & platforms [ RTN66U ] ;
case BCM47XX_BOARD_ASUS_WL300G :
return & platforms [ WL300G ] ;
case BCM47XX_BOARD_ASUS_WL320GE :
return & platforms [ WL320GE ] ;
case BCM47XX_BOARD_ASUS_WL330GE :
return & platforms [ WL330GE ] ;
case BCM47XX_BOARD_ASUS_WL500GD :
return & platforms [ WL500GD ] ;
case BCM47XX_BOARD_ASUS_WL500GPV1 :
return & platforms [ WL500GP ] ;
case BCM47XX_BOARD_ASUS_WL500GPV2 :
return & platforms [ WL500GPV2 ] ;
case BCM47XX_BOARD_ASUS_WL500W :
return & platforms [ WL500W ] ;
case BCM47XX_BOARD_ASUS_WL520GC :
return & platforms [ WL520GC ] ;
case BCM47XX_BOARD_ASUS_WL520GU :
return & platforms [ WL520GU ] ;
case BCM47XX_BOARD_ASUS_WL700GE :
return & platforms [ WL700GE ] ;
case BCM47XX_BOARD_ASUS_WLHDD :
return & platforms [ WLHDD ] ;
case BCM47XX_BOARD_BELKIN_F7D4301 :
return & platforms [ BELKIN_F7D4301 ] ;
case BCM47XX_BOARD_BUFFALO_WBR2_G54 :
return & platforms [ WBR2_G54 ] ;
case BCM47XX_BOARD_BUFFALO_WHR2_A54G54 :
return & platforms [ WHR2_A54G54 ] ;
case BCM47XX_BOARD_BUFFALO_WHR_G125 :
return & platforms [ WHR_G125 ] ;
case BCM47XX_BOARD_BUFFALO_WHR_G54S :
return & platforms [ WHR_G54S ] ;
case BCM47XX_BOARD_BUFFALO_WHR_HP_G54 :
return & platforms [ WHR_HP_G54 ] ;
case BCM47XX_BOARD_BUFFALO_WLA2_G54L :
return & platforms [ WLA2_G54L ] ;
case BCM47XX_BOARD_BUFFALO_WZR_G300N :
return & platforms [ WZR_G300N ] ;
case BCM47XX_BOARD_BUFFALO_WZR_RS_G54 :
return & platforms [ WZR_RS_G54 ] ;
case BCM47XX_BOARD_BUFFALO_WZR_RS_G54HP :
return & platforms [ WZR_RS_G54HP ] ;
case BCM47XX_BOARD_DELL_TM2300 :
return & platforms [ TM2300 ] ;
case BCM47XX_BOARD_DLINK_DIR130 :
return & platforms [ DIR130 ] ;
case BCM47XX_BOARD_DLINK_DIR330 :
return & platforms [ DIR330 ] ;
case BCM47XX_BOARD_HUAWEI_E970 :
return & platforms [ HUAWEI_E970 ] ;
case BCM47XX_BOARD_LINKSYS_E1000V1 :
return & platforms [ E1000V1 ] ;
case BCM47XX_BOARD_LINKSYS_E1000V21 :
return & platforms [ E1000V21 ] ;
case BCM47XX_BOARD_LINKSYS_E2000V1 :
return & platforms [ E2000V1 ] ;
case BCM47XX_BOARD_LINKSYS_E3000V1 :
return & platforms [ E3000V1 ] ;
case BCM47XX_BOARD_LINKSYS_E3200V1 :
return & platforms [ E3200V1 ] ;
case BCM47XX_BOARD_LINKSYS_E4200V1 :
return & platforms [ E4200V1 ] ;
case BCM47XX_BOARD_LINKSYS_WRT150NV1 :
return & platforms [ WRT150NV1 ] ;
case BCM47XX_BOARD_LINKSYS_WRT150NV11 :
return & platforms [ WRT150NV11 ] ;
case BCM47XX_BOARD_LINKSYS_WRT160NV1 :
return & platforms [ WRT160NV1 ] ;
case BCM47XX_BOARD_LINKSYS_WRT160NV3 :
return & platforms [ WRT160NV3 ] ;
case BCM47XX_BOARD_LINKSYS_WRT300NV11 :
return & platforms [ WRT300NV11 ] ;
case BCM47XX_BOARD_LINKSYS_WRT310NV1 :
return & platforms [ WRT310NV1 ] ;
case BCM47XX_BOARD_LINKSYS_WRT54GSV1 :
return & platforms [ WRT54G ] ;
case BCM47XX_BOARD_LINKSYS_WRT54G3GV2 :
return & platforms [ WRT54G3GV2_VF ] ;
case BCM47XX_BOARD_LINKSYS_WRT610NV1 :
return & platforms [ WRT610N ] ;
case BCM47XX_BOARD_LINKSYS_WRT610NV2 :
return & platforms [ WRT610NV2 ] ;
case BCM47XX_BOARD_LINKSYS_WRTSL54GS :
return & platforms [ WRTSL54GS ] ;
case BCM47XX_BOARD_MOTOROLA_WE800G :
return & platforms [ WE800G ] ;
case BCM47XX_BOARD_MOTOROLA_WR850GP :
return & platforms [ WR850GP ] ;
case BCM47XX_BOARD_MOTOROLA_WR850GV2V3 :
return & platforms [ WR850GV2V3 ] ;
case BCM47XX_BOARD_NETGEAR_WNDR3400V1 :
return & platforms [ WNDR3400V1 ] ;
case BCM47XX_BOARD_NETGEAR_WNDR3700V3 :
return & platforms [ WNDR3700V3 ] ;
case BCM47XX_BOARD_UNKNOWN :
@ -1443,9 +705,8 @@ static struct platform_t __init *platform_detect(void)
printk ( MODULE_NAME " : please open a ticket at https://dev.openwrt.org and attach the complete nvram \n " ) ;
return platform_detect_legacy ( ) ;
default :
printk ( MODULE_NAME " : board was detected as \" %s \" , but not gpio configuration available \n " , board_name ) ;
printk ( MODULE_NAME " : now trying legacy detect \n " ) ;
return platform_detect_legacy ( ) ;
printk ( MODULE_NAME " : board was detected as \" %s \" , and kernel should handle it \n " , board_name ) ;
return NULL ;
}
}