Add support for the WL-500gP v2
[openwrt/svn-archive/archive.git] / package / broadcom-diag / src / diag.c
index b842ed6bcb1ca7cbee339a14d85e233d8aa8c84d..b670944e02d3c5c1a8f6aa67c1611f95c7268013 100644 (file)
@@ -68,7 +68,9 @@ enum {
        WL500G,
        WL500GD,
        WL500GP,
+       WL500GPV2,
        WL500W,
+       WL520GU,
        ASUS_4702,
        WL700GE,
 
@@ -282,6 +284,17 @@ static struct platform_t __initdata platforms[] = {
                        { .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        = {
@@ -292,6 +305,17 @@ static struct platform_t __initdata platforms[] = {
                        { .name = "power",      .gpio = 1 << 5, .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        = {
@@ -659,6 +683,14 @@ static struct platform_t __init *platform_detect(void)
                        return &platforms[WL700GE];
        }
 
+       /* Based on "hardware_version" */
+       if (buf = nvram_get("hardware_version")) {
+               if (startswith(buf,"WL500GPV2-")) /* WL500GPV2-* */
+                       return &platforms[WL500GPV2];
+               if (startswith(buf,"WL520GU-")) /* WL520GU-* */
+                       return &platforms[WL520GU];
+       }
+
        /* Based on "ModelId" */
        if (buf = nvram_get("ModelId")) {
                if (!strcmp(buf, "WR850GP"))