From 58274d68fb1e571fb008a9b7577d68cbddb93cbe Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Fri, 2 Aug 2013 15:44:04 +0000
Subject: [PATCH] broadcom-diag: add support for the ASUS RT-N12

This adds button and led info, which I determined
by manually poking the gpio values.

Signed-off-by: Josh Stone <cuviper@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

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

diff --git a/package/kernel/broadcom-diag/src/diag.c b/package/kernel/broadcom-diag/src/diag.c
index f5c834617f..58d6755389 100644
--- a/package/kernel/broadcom-diag/src/diag.c
+++ b/package/kernel/broadcom-diag/src/diag.c
@@ -106,6 +106,7 @@ enum {
 	WL520GU,
 	ASUS_4702,
 	WL700GE,
+	RTN12,
 	RTN16,
 
 	/* Buffalo */
@@ -634,6 +635,23 @@ static struct platform_t __initdata platforms[] = {
 		},
 		.platform_init = bcm4780_init,
 	},
+	[RTN12] = {
+		.name		= "ASUS RT-N12",
+		.buttons	= {
+			{ .name = "wps",	.gpio = 1 << 0 },
+			{ .name = "reset",	.gpio = 1 << 1 },
+			// this is the router/repeater/ap switch
+			{ .name = "sw1",	.gpio = 1 << 4 },
+			{ .name = "sw2",	.gpio = 1 << 5 },
+			{ .name = "sw3",	.gpio = 1 << 6 },
+		},
+		.leds		= {
+			{ .name = "power",	.gpio = 1 << 2, .polarity = REVERSE },
+			{ .name = "wlan",	.gpio = 1 << 7, .polarity = NORMAL },
+			// gpio3 forces WAN and LAN1-4 all on
+			//{ .name = "eth",	.gpio = 1 << 3, .polarity = REVERSE },
+		},
+	},
 	[RTN16] = {
 		.name		= "ASUS RT-N16",
 		.buttons	= {
@@ -1282,6 +1300,8 @@ static struct platform_t __init *platform_detect(void)
 		printk(MODULE_NAME ": kernel found a \"%s\"\n", board_name);
 
 	switch(board) {
+	case BCM47XX_BOARD_ASUS_RTN12:
+		return &platforms[RTN12];
 	case BCM47XX_BOARD_ASUS_RTN16:
 		return &platforms[RTN16];
 	case BCM47XX_BOARD_ASUS_WL330GE:
-- 
2.30.2