From c3563fbea602b4472c3b36c73dc462d26fcd6839 Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sun, 24 Feb 2013 17:56:00 +0000
Subject: [PATCH] broadcom-diag: Detection of WNDR3400v1

nvram variable "boardtype" is unique for now.
-button gpio were taken from nvram.
-led information was taken from dd-wrt
( http://svn.dd-wrt.com/browser/src/router/libutils/utils.c )

I hope that I changed the values correctly.

Signed-off-by: Dirk Neukirchen <dirkneukirchen@web.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 35765
---
 package/broadcom-diag/src/diag.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/package/broadcom-diag/src/diag.c b/package/broadcom-diag/src/diag.c
index 823b9b7d08..774f0cefd0 100644
--- a/package/broadcom-diag/src/diag.c
+++ b/package/broadcom-diag/src/diag.c
@@ -121,6 +121,7 @@ enum {
 	WGT634U,
 	WNR834BV1,
 	WNR834BV2,
+	WNDR3400V1,
 
 	/* Trendware */
 	TEW411BRPP,
@@ -897,6 +898,22 @@ static struct platform_t __initdata platforms[] = {
 			{ .name = "connected",	.gpio = 1 << 7, .polarity = NORMAL },
 		},
 	},
+	[WNDR3400V1] = {
+		.name		= "Netgear WNDR3400 V1",
+		.buttons	= {
+			/* nvram get gpio5=robo_reset */
+			{ .name = "reset",	.gpio = 1 << 4 },
+			{ .name = "wps",	.gpio = 1 << 6 },
+			{ .name = "wlan",	.gpio = 1 << 8 },
+		},
+		.leds		= {
+			{ .name = "wlan",	.gpio = 0 << 0, .polarity = NORMAL },
+			{ .name = "connected",	.gpio = 1 << 0, .polarity = NORMAL },
+			{ .name = "power",	.gpio = 1 << 3, .polarity = NORMAL },
+			{ .name = "diag",	.gpio = 1 << 7, .polarity = NORMAL },
+			{ .name = "usb",	.gpio = 1 << 2, .polarity = REVERSE },
+		},
+	},
 	/* Trendware */
 	[TEW411BRPP] = {
 		.name           = "Trendware TEW411BRP+",
@@ -1274,6 +1291,8 @@ static struct platform_t __init *platform_detect(void)
 		return &platforms[WR850GP];
 	case BCM47XX_BOARD_MOTOROLA_WR850GV2V3:
 		return &platforms[WR850GV2V3];
+	case BCM47XX_BOARD_NETGEAR_WNDR3400V1:
+		return &platforms[WNDR3400V1];
 	case BCM47XX_BOARD_UNKNOWN:
 	case BCM47XX_BOARD_NON:
 		printk(MODULE_NAME ": unknown board found, try legacy detect\n");
-- 
GitLab