add diag support for the WRT350N
[openwrt/svn-archive/archive.git] / package / broadcom-diag / src / diag.c
index bb25d57581e84fd3dcba81efaacb7dac5ec073d9..92d660ed385d4f88777ff0442398c0e5a36bf549 100644 (file)
@@ -54,6 +54,7 @@ enum {
        WRT54G,
        WRTSL54GS,
        WRT54G3G,
        WRT54G,
        WRTSL54GS,
        WRT54G3G,
+       WRT350N,
        
        /* ASUS */
        WLHDD,
        
        /* ASUS */
        WLHDD,
@@ -92,6 +93,9 @@ enum {
        /* Belkin */
        BELKIN_UNKNOWN,
 
        /* Belkin */
        BELKIN_UNKNOWN,
 
+       /* Netgear */
+       WGT634U,
+
        /* Trendware */
        TEW411BRPP,
 };
        /* Trendware */
        TEW411BRPP,
 };
@@ -171,6 +175,17 @@ static struct platform_t __initdata platforms[] = {
                        { .name = "3g_blink",   .gpio = 1 << 5, .polarity = NORMAL },
                },
        },
                        { .name = "3g_blink",   .gpio = 1 << 5, .polarity = NORMAL },
                },
        },
+       [WRT350N] = {
+               .name           = "Linksys WRT350N",
+               .buttons        = {
+                       { .name = "reset",      .gpio = 1 << 6 },
+                       { .name = "ses",        .gpio = 1 << 8 },
+               },
+               .leds           = {
+                       { .name = "power",      .gpio = 1 << 1, .polarity = NORMAL },
+                       { .name = "ses",        .gpio = 1 << 3, .polarity = REVERSE },
+               },
+       },
        /* Asus */
        [WLHDD] = {
                .name           = "ASUS WL-HDD",
        /* Asus */
        [WLHDD] = {
                .name           = "ASUS WL-HDD",
@@ -419,6 +434,16 @@ static struct platform_t __initdata platforms[] = {
                        { .name = "connected",  .gpio = 1 << 0, .polarity = NORMAL },
                },
        },
                        { .name = "connected",  .gpio = 1 << 0, .polarity = NORMAL },
                },
        },
+       /* Netgear */
+       [WGT634U] = {
+               .name           = "Netgear WGT634U",
+               .buttons        = {
+                       { .name = "reset",      .gpio = 1 << 2 },
+               },
+               .leds           = {
+                       { .name = "power",      .gpio = 1 << 3, .polarity = REVERSE },
+               },
+       },
        /* Trendware */
        [TEW411BRPP] = {
                .name           = "Trendware TEW411BRP+",
        /* Trendware */
        [TEW411BRPP] = {
                .name           = "Trendware TEW411BRP+",
@@ -442,6 +467,9 @@ static struct platform_t __init *platform_detect(void)
        if (strncmp(getvar("pmon_ver"), "CFE", 3) == 0) {
                /* CFE based - newer hardware */
                if (!strcmp(boardnum, "42")) { /* Linksys */
        if (strncmp(getvar("pmon_ver"), "CFE", 3) == 0) {
                /* CFE based - newer hardware */
                if (!strcmp(boardnum, "42")) { /* Linksys */
+                       if (!strcmp(boardtype, "0x478") && !strcmp(getvar("cardbus"), 1))
+                               return &platforms[WRT350N];
+
                        if (!strcmp(boardtype, "0x0101") && !strcmp(getvar("boot_ver"), "v3.6"))
                                return &platforms[WRT54G3G];
 
                        if (!strcmp(boardtype, "0x0101") && !strcmp(getvar("boot_ver"), "v3.6"))
                                return &platforms[WRT54G3G];
 
@@ -517,7 +545,6 @@ static struct platform_t __init *platform_detect(void)
                        return &platforms[BUFFALO_UNKNOWN];
        }
 
                        return &platforms[BUFFALO_UNKNOWN];
        }
 
-
        if (!strcmp(getvar("CFEver"), "MotoWRv203") ||
                !strcmp(getvar("MOTO_BOARD_TYPE"), "WR_FEM1")) {
 
        if (!strcmp(getvar("CFEver"), "MotoWRv203") ||
                !strcmp(getvar("MOTO_BOARD_TYPE"), "WR_FEM1")) {