From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Date: Fri, 23 Sep 2016 07:36:10 +0000 (+0200)
Subject: ar71xx: add kernel support for the OpenMesh A40 board
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=5e61a8331d53e7119ab1e616808476f585220a6d;p=openwrt%2Fstaging%2Fnbd.git

ar71xx: add kernel support for the OpenMesh A40 board

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
---

diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt
index 8460b0fbda..873befaec8 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt
+++ b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt
@@ -1,5 +1,5 @@
 config ATH79_MACH_A60
-	bool "OpenMesh A60 board support"
+	bool "OpenMesh A40/A60 board support"
 	select SOC_QCA955X
 	select ATH79_DEV_AP9X_PCI if PCI
 	select ATH79_DEV_ETH
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-a60.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-a60.c
index 73fba1e264..2f0a75f7bb 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-a60.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-a60.c
@@ -40,6 +40,19 @@
 
 #define A60_WMAC_CALDATA_OFFSET	0x1000
 
+static struct gpio_led a40_leds_gpio[] __initdata = {
+	{
+		.name		= "a40:red:status",
+		.gpio		= A60_GPIO_LED_RED,
+	}, {
+		.name		= "a40:green:status",
+		.gpio		= A60_GPIO_LED_GREEN,
+	}, {
+		.name		= "a40:blue:status",
+		.gpio		= A60_GPIO_LED_BLUE,
+	}
+};
+
 static struct gpio_led a60_leds_gpio[] __initdata = {
 	{
 		.name		= "a60:red:status",
@@ -151,6 +164,14 @@ static void __init a60_setup_common(void)
 	ath79_register_pci();
 }
 
+static void __init a40_setup(void)
+{
+	ath79_register_leds_gpio(-1, ARRAY_SIZE(a40_leds_gpio), a40_leds_gpio);
+	a60_setup_common();
+}
+
+MIPS_MACHINE(ATH79_MACH_A40, "A40", "OpenMesh A40", a40_setup);
+
 static void __init a60_setup(void)
 {
 	ath79_register_leds_gpio(-1, ARRAY_SIZE(a60_leds_gpio), a60_leds_gpio);
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
index 23589ab031..2a8d3398fd 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
+++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
@@ -17,6 +17,7 @@
 enum ath79_mach_type {
 	ATH79_MACH_GENERIC_OF = -1,	/* Device tree board */
 	ATH79_MACH_GENERIC = 0,
+	ATH79_MACH_A40,				/* OpenMesh A40 */
 	ATH79_MACH_A60,				/* OpenMesh A60 */
 	ATH79_MACH_ALFA_AP120C,			/* ALFA Network AP120C board */
 	ATH79_MACH_ALFA_AP96,			/* ALFA Network AP96 board */