[diag] add missing hunks to recognize the Microsoft MN-700 device (#6749)
authorFlorian Fainelli <florian@openwrt.org>
Sun, 28 Feb 2010 11:09:50 +0000 (11:09 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Sun, 28 Feb 2010 11:09:50 +0000 (11:09 +0000)
SVN-Revision: 19896

package/broadcom-diag/src/diag.c

index 8f296248bebf0ef44fdcfec79eda84fd4a7ad528..7df009e7c0e06c8064b2d9da2efc99eccdd92462 100644 (file)
@@ -141,6 +141,9 @@ enum {
 
        /* OvisLink */
        WL1600GL,
+
+       /* Microsoft */
+       MN700,
 };
 
 static void __init bcm4780_init(void) {
@@ -868,6 +871,16 @@ static struct platform_t __initdata platforms[] = {
                        { .name = "connected",  .gpio = 1 << 0, .polarity = REVERSE },
                },
        },
+       /* Microsoft */
+       [MN700] = {
+               .name   = "Microsoft MN-700",
+               .buttons        = {
+                       { .name = "reset",      .gpio = 1 << 7 },
+               },
+               .leds     = {
+                       { .name = "power",      .gpio = 1 << 6, .polarity = NORMAL },
+               },
+       },
 };
 
 static struct platform_t __init *platform_detect(void)
@@ -1027,8 +1040,13 @@ static struct platform_t __init *platform_detect(void)
                        if (simple_strtoul(boardnum, NULL, 0) == 2)
                                return &platforms[WAP54GV1];
                }
-               if (startswith(getvar("hardware_version"), "WL500-"))
-                       return &platforms[WL500G];
+               /* MN-700 has also hardware_version 'WL500-...', so use boardnum */
+               if (startswith(getvar("hardware_version"), "WL500-")) {
+                       if (!strcmp(getvar("boardnum"), "mn700"))
+                               return &platforms[MN700];
+                       else
+                               return &platforms[WL500G];
+               }
                if (startswith(getvar("hardware_version"), "WL300-")) {
                        /* Either WL-300g or WL-HDD, do more extensive checks */
                        if ((simple_strtoul(getvar("et0phyaddr"), NULL, 0) == 0) &&