X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/08e8737994db7654157be36585c43c563b2a6735..288c968dab227cc5b83a9e2983d65cfaa605504f:/package/broadcom-diag/src/diag.c diff --git a/package/broadcom-diag/src/diag.c b/package/broadcom-diag/src/diag.c index 55dfa757e..e60b66c91 100644 --- a/package/broadcom-diag/src/diag.c +++ b/package/broadcom-diag/src/diag.c @@ -59,6 +59,8 @@ enum { WRT600N, WRT600NV11, WRT610N, + WRT610NV2, + E3000V1, /* ASUS */ WLHDD, @@ -74,6 +76,7 @@ enum { WL520GU, ASUS_4702, WL700GE, + RTN16, /* Buffalo */ WBR2_G54, @@ -107,9 +110,11 @@ enum { /* Belkin */ BELKIN_UNKNOWN, + BELKIN_F7D4301, /* Netgear */ WGT634U, + WNR834BV1, WNR834BV2, /* Trendware */ @@ -363,6 +368,34 @@ static struct platform_t __initdata platforms[] = { { .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 */ [WLHDD] = { .name = "ASUS WL-HDD", @@ -502,6 +535,17 @@ static struct platform_t __initdata platforms[] = { }, .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 */ [WHR_G54S] = { .name = "Buffalo WHR-G54S", @@ -748,6 +792,19 @@ static struct platform_t __initdata platforms[] = { { .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 */ [WGT634U] = { .name = "Netgear WGT634U", @@ -758,8 +815,19 @@ static struct platform_t __initdata platforms[] = { { .name = "power", .gpio = 1 << 3, .polarity = NORMAL }, }, }, + /* Netgear */ + [WNR834BV1] = { + .name = "Netgear WNR834B V1", + .buttons = { /* TODO: add reset button and confirm LEDs - GPIO from dd-wrt */ }, + .leds = { + { .name = "power", .gpio = 1 << 4, .polarity = REVERSE }, + { .name = "diag", .gpio = 1 << 5, .polarity = REVERSE }, + { .name = "wlan", .gpio = 1 << 6, .polarity = REVERSE }, + }, + }, + /* Netgear */ [WNR834BV2] = { - .name = "Netgear WNR834B V2", + .name = "Netgear WNR834B V2", .buttons = { { .name = "reset", .gpio = 1 << 6 }, }, @@ -950,6 +1018,10 @@ static struct platform_t __init *platform_detect(void) return &platforms[WL520GU]; if (startswith(buf,"WL330GE-")) /* 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" */ @@ -999,6 +1071,19 @@ static struct platform_t __init *platform_detect(void) 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")) { /* CFE based - newer hardware */ if (!strcmp(boardnum, "42")) { /* Linksys */ @@ -1060,10 +1145,11 @@ static struct platform_t __init *platform_detect(void) return &platforms[WDNetCenter]; } - if ((!strcmp(boardnum, "08") || !strcmp(boardnum, "01")) && - !strcmp(boardtype,"0x0472") && !strcmp(getvar("cardbus"), "1")) { /* Netgear WNR834B V1 and V2*/ - /* TODO: Check for version. Default platform is V2 for now. */ - return &platforms[WNR834BV2]; + 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 */