fix adm switch misdetection, which led to bogus button events that caused the system...
[openwrt/svn-archive/archive.git] / package / broadcom-diag / src / diag.c
index ef586baaedb86f9322d5d17ac514f4ff9eb18c4c..94ab384d306bda3823c3a0766e4c23bf5e205f6a 100644 (file)
@@ -74,6 +74,7 @@ enum {
        WBR2_G54,
        WHR_G54S,
        WHR_HP_G54,
+       WHR_G125,
        WHR2_A54G54,
        WLA2_G54L,
        WZR_G300N,
@@ -343,6 +344,21 @@ static struct platform_t __initdata platforms[] = {
                        { .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        = {
@@ -634,6 +650,8 @@ static struct platform_t __init *platform_detect(void)
                        return &platforms[WLA2_G54L];
                if (!strcmp(buf, "30189"))
                        return &platforms[WHR_HP_G54];
+               if (!strcmp(buf, "32093"))
+                       return &platforms[WHR_G125];
                if (!strcmp(buf, "30182"))
                        return &platforms[WHR_G54S];
                if (!strcmp(buf, "290441dd"))
@@ -713,13 +731,14 @@ static struct platform_t __init *platform_detect(void)
                        return &platforms[BUFFALO_UNKNOWN];
        }
 
-       if (!strcmp(getvar("CFEver"), "MotoWRv203") ||
+       if (!strncmp(getvar("CFEver"), "MotoWRv2", 8) ||
+               !strncmp(getvar("CFEver"), "MotoWRv3", 8) ||
                !strcmp(getvar("MOTO_BOARD_TYPE"), "WR_FEM1")) {
 
                return &platforms[WR850GV2V3];
        }
 
-       if (!strcmp(boardnum, "44")) {  /* Trendware TEW-411BRP+ */
+       if (!strcmp(boardnum, "44") && !strcmp(getvar("boardflags"),"0x0388")) {  /* Trendware TEW-411BRP+ */
                return &platforms[TEW411BRPP];
        }