|
|
@ -59,6 +59,8 @@ enum { |
|
|
|
WRT600N, |
|
|
|
WRT600N, |
|
|
|
WRT600NV11, |
|
|
|
WRT600NV11, |
|
|
|
WRT610N, |
|
|
|
WRT610N, |
|
|
|
|
|
|
|
WRT610NV2, |
|
|
|
|
|
|
|
E3000V1, |
|
|
|
|
|
|
|
|
|
|
|
/* ASUS */ |
|
|
|
/* ASUS */ |
|
|
|
WLHDD, |
|
|
|
WLHDD, |
|
|
@ -74,6 +76,7 @@ enum { |
|
|
|
WL520GU, |
|
|
|
WL520GU, |
|
|
|
ASUS_4702, |
|
|
|
ASUS_4702, |
|
|
|
WL700GE, |
|
|
|
WL700GE, |
|
|
|
|
|
|
|
RTN16, |
|
|
|
|
|
|
|
|
|
|
|
/* Buffalo */ |
|
|
|
/* Buffalo */ |
|
|
|
WBR2_G54, |
|
|
|
WBR2_G54, |
|
|
@ -107,6 +110,7 @@ enum { |
|
|
|
|
|
|
|
|
|
|
|
/* Belkin */ |
|
|
|
/* Belkin */ |
|
|
|
BELKIN_UNKNOWN, |
|
|
|
BELKIN_UNKNOWN, |
|
|
|
|
|
|
|
BELKIN_F7D4301, |
|
|
|
|
|
|
|
|
|
|
|
/* Netgear */ |
|
|
|
/* Netgear */ |
|
|
|
WGT634U, |
|
|
|
WGT634U, |
|
|
@ -364,6 +368,34 @@ static struct platform_t __initdata platforms[] = { |
|
|
|
{ .name = "ses_blue", .gpio = 1 << 9, .polarity = REVERSE }, // WiFi protected setup LED blue
|
|
|
|
{ .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
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
[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
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
}, |
|
|
|
/* Asus */ |
|
|
|
/* Asus */ |
|
|
|
[WLHDD] = { |
|
|
|
[WLHDD] = { |
|
|
|
.name = "ASUS WL-HDD", |
|
|
|
.name = "ASUS WL-HDD", |
|
|
@ -503,6 +535,17 @@ static struct platform_t __initdata platforms[] = { |
|
|
|
}, |
|
|
|
}, |
|
|
|
.platform_init = bcm4780_init, |
|
|
|
.platform_init = bcm4780_init, |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
[RTN16] = { |
|
|
|
|
|
|
|
.name = "ASUS RT-N16", |
|
|
|
|
|
|
|
.buttons = { |
|
|
|
|
|
|
|
{ .name = "reset", .gpio = 1 << 8 }, |
|
|
|
|
|
|
|
{ .name = "ses", .gpio = 1 << 5 }, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
.leds = { |
|
|
|
|
|
|
|
{ .name = "power", .gpio = 1 << 1, .polarity = REVERSE }, |
|
|
|
|
|
|
|
{ .name = "wlan", .gpio = 1 << 7, .polarity = NORMAL }, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
}, |
|
|
|
/* Buffalo */ |
|
|
|
/* Buffalo */ |
|
|
|
[WHR_G54S] = { |
|
|
|
[WHR_G54S] = { |
|
|
|
.name = "Buffalo WHR-G54S", |
|
|
|
.name = "Buffalo WHR-G54S", |
|
|
@ -749,6 +792,19 @@ static struct platform_t __initdata platforms[] = { |
|
|
|
{ .name = "connected", .gpio = 1 << 0, .polarity = NORMAL }, |
|
|
|
{ .name = "connected", .gpio = 1 << 0, .polarity = NORMAL }, |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
[BELKIN_F7D4301] = { |
|
|
|
|
|
|
|
.name = "Belkin PlayMax F7D4301", |
|
|
|
|
|
|
|
.buttons = { |
|
|
|
|
|
|
|
{ .name = "reset", .gpio = 1 << 6 }, |
|
|
|
|
|
|
|
{ .name = "wps", .gpio = 1 << 8 }, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
.leds = { |
|
|
|
|
|
|
|
{ .name = "power", .gpio = 1 << 11, .polarity = REVERSE }, |
|
|
|
|
|
|
|
{ .name = "wlan", .gpio = 1 << 13, .polarity = REVERSE }, |
|
|
|
|
|
|
|
{ .name = "led0", .gpio = 1 << 14, .polarity = REVERSE }, |
|
|
|
|
|
|
|
{ .name = "led1", .gpio = 1 << 15, .polarity = REVERSE }, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
}, |
|
|
|
/* Netgear */ |
|
|
|
/* Netgear */ |
|
|
|
[WGT634U] = { |
|
|
|
[WGT634U] = { |
|
|
|
.name = "Netgear WGT634U", |
|
|
|
.name = "Netgear WGT634U", |
|
|
@ -962,6 +1018,10 @@ static struct platform_t __init *platform_detect(void) |
|
|
|
return &platforms[WL520GU]; |
|
|
|
return &platforms[WL520GU]; |
|
|
|
if (startswith(buf,"WL330GE-")) /* WL330GE-* */ |
|
|
|
if (startswith(buf,"WL330GE-")) /* WL330GE-* */ |
|
|
|
return &platforms[WL330GE]; |
|
|
|
return &platforms[WL330GE]; |
|
|
|
|
|
|
|
if (startswith(buf,"RT-N16-")) /* RT-N16-* */ |
|
|
|
|
|
|
|
return &platforms[RTN16]; |
|
|
|
|
|
|
|
if (startswith(buf,"F7D4301")) /* F7D4301* */ |
|
|
|
|
|
|
|
return &platforms[BELKIN_F7D4301]; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* Based on "ModelId" */ |
|
|
|
/* Based on "ModelId" */ |
|
|
@ -1011,6 +1071,19 @@ static struct platform_t __init *platform_detect(void) |
|
|
|
return &platforms[WRT600N]; |
|
|
|
return &platforms[WRT600N]; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
* Normally, these would go inside the "CFE based - newer hardware" block below; however, during early init, the |
|
|
|
|
|
|
|
* "pmon_ver" variable is not available on the E3000v1 (and probably the WRT610Nv2 also). Until this is figured out, |
|
|
|
|
|
|
|
* these will need to remain here in order for platform detection to work. |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
if (!strcmp(boardnum, "42")) { /* Linksys */ |
|
|
|
|
|
|
|
if (!strcmp(boardtype, "0x04cf") && !strcmp(getvar("boot_hw_model"), "E300") && !strcmp(getvar("boot_hw_ver"), "1.0")) |
|
|
|
|
|
|
|
return &platforms[E3000V1]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!strcmp(boardtype, "0x04cf") && !strcmp(getvar("boot_hw_model"), "WRT610N") && !strcmp(getvar("boot_hw_ver"), "2.0")) |
|
|
|
|
|
|
|
return &platforms[WRT610NV2]; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (startswith(getvar("pmon_ver"), "CFE")) { |
|
|
|
if (startswith(getvar("pmon_ver"), "CFE")) { |
|
|
|
/* CFE based - newer hardware */ |
|
|
|
/* CFE based - newer hardware */ |
|
|
|
if (!strcmp(boardnum, "42")) { /* Linksys */ |
|
|
|
if (!strcmp(boardnum, "42")) { /* Linksys */ |
|
|
|