ARM: Kirkwood: add DT support for Sheevaplug and Sheevaplug eSATA
authorSimon Baatz <gmbnomis@gmail.com>
Mon, 13 May 2013 21:19:01 +0000 (23:19 +0200)
committerJason Cooper <jason@lakedaemon.net>
Wed, 15 May 2013 00:33:18 +0000 (00:33 +0000)
Signed-off-by: Simon Baatz <gmbnomis@gmail.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
arch/arm/mach-kirkwood/Kconfig
arch/arm/mach-kirkwood/Makefile
arch/arm/mach-kirkwood/board-dt.c
arch/arm/mach-kirkwood/board-sheevaplug.c [new file with mode: 0644]
arch/arm/mach-kirkwood/common.h

index 7509a89..58518a2 100644 (file)
@@ -296,6 +296,13 @@ config MACH_READYNAS_DT
          Say 'Y' here if you want your kernel to support the
          NETGEAR ReadyNAS Duo v2 using Fattened Device Tree.
 
+config MACH_SHEEVAPLUG_DT
+       bool "Marvell (eSATA) SheevaPlug (Flattened Device Tree)"
+       select ARCH_KIRKWOOD_DT
+       help
+         Say 'Y' here if you want your kernel to support the
+         Marvell (eSATA) SheevaPlug (Flattened Device Tree).
+
 config MACH_TOPKICK_DT
        bool "USI Topkick (Flattened Device Tree)"
        select ARCH_KIRKWOOD_DT
index e1f3735..8846abf 100644 (file)
@@ -40,5 +40,6 @@ obj-$(CONFIG_MACH_NETSPACE_V2_DT)     += board-ns2.o
 obj-$(CONFIG_MACH_NSA310_DT)           += board-nsa310.o
 obj-$(CONFIG_MACH_OPENBLOCKS_A6_DT)    += board-openblocks_a6.o
 obj-$(CONFIG_MACH_READYNAS_DT)         += board-readynas.o
+obj-$(CONFIG_MACH_SHEEVAPLUG_DT)       += board-sheevaplug.o
 obj-$(CONFIG_MACH_TOPKICK_DT)          += board-usi_topkick.o
 obj-$(CONFIG_MACH_TS219_DT)            += board-ts219.o tsx1x-common.o
index e9647b8..a09dbac 100644 (file)
@@ -112,6 +112,9 @@ static void __init kirkwood_dt_init(void)
        if (of_machine_is_compatible("globalscale,guruplug"))
                guruplug_dt_init();
 
+       if (of_machine_is_compatible("globalscale,sheevaplug"))
+               sheevaplug_dt_init();
+
        if (of_machine_is_compatible("dlink,dns-kirkwood"))
                dnskw_init();
 
@@ -165,6 +168,7 @@ static void __init kirkwood_dt_init(void)
 static const char * const kirkwood_dt_board_compat[] = {
        "globalscale,dreamplug",
        "globalscale,guruplug",
+       "globalscale,sheevaplug",
        "dlink,dns-320",
        "dlink,dns-325",
        "iom,iconnect",
diff --git a/arch/arm/mach-kirkwood/board-sheevaplug.c b/arch/arm/mach-kirkwood/board-sheevaplug.c
new file mode 100644 (file)
index 0000000..fa38937
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * arch/arm/mach-kirkwood/board-sheevaplug.c
+ *
+ * Marvell Sheevaplug Reference Board Init for drivers not converted to
+ * flattened device tree yet.
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/mv643xx_eth.h>
+#include "common.h"
+
+static struct mv643xx_eth_platform_data sheevaplug_ge00_data = {
+       .phy_addr       = MV643XX_ETH_PHY_ADDR(0),
+};
+
+void __init sheevaplug_dt_init(void)
+{
+       /*
+        * Basic setup. Needs to be called early.
+        */
+       kirkwood_ge00_init(&sheevaplug_ge00_data);
+}
index 21da3b1..974442e 100644 (file)
@@ -65,6 +65,11 @@ void guruplug_dt_init(void);
 #else
 static inline void guruplug_dt_init(void) {};
 #endif
+#ifdef CONFIG_MACH_SHEEVAPLUG_DT
+void sheevaplug_dt_init(void);
+#else
+static inline void sheevaplug_dt_init(void) {};
+#endif
 #ifdef CONFIG_MACH_TS219_DT
 void qnap_dt_ts219_init(void);
 #else