aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-kirkwood
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-kirkwood')
-rw-r--r--arch/arm/mach-kirkwood/Kconfig9
-rw-r--r--arch/arm/mach-kirkwood/Makefile1
-rw-r--r--arch/arm/mach-kirkwood/board-dt.c4
-rw-r--r--arch/arm/mach-kirkwood/board-lsxl.c16
-rw-r--r--arch/arm/mach-kirkwood/board-sheevaplug.c27
-rw-r--r--arch/arm/mach-kirkwood/board-ts219.c3
-rw-r--r--arch/arm/mach-kirkwood/common.h5
7 files changed, 46 insertions, 19 deletions
diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig
index 7509a89af967..1f7078e453b0 100644
--- a/arch/arm/mach-kirkwood/Kconfig
+++ b/arch/arm/mach-kirkwood/Kconfig
@@ -227,6 +227,7 @@ config MACH_KM_KIRKWOOD_DT
227config MACH_LSXL_DT 227config MACH_LSXL_DT
228 bool "Buffalo Linkstation LS-XHL, LS-CHLv2 (Flattened Device Tree)" 228 bool "Buffalo Linkstation LS-XHL, LS-CHLv2 (Flattened Device Tree)"
229 select ARCH_KIRKWOOD_DT 229 select ARCH_KIRKWOOD_DT
230 select POWER_RESET_RESTART
230 help 231 help
231 Say 'Y' here if you want your kernel to support the 232 Say 'Y' here if you want your kernel to support the
232 Buffalo Linkstation LS-XHL & LS-CHLv2 devices, using 233 Buffalo Linkstation LS-XHL & LS-CHLv2 devices, using
@@ -296,6 +297,13 @@ config MACH_READYNAS_DT
296 Say 'Y' here if you want your kernel to support the 297 Say 'Y' here if you want your kernel to support the
297 NETGEAR ReadyNAS Duo v2 using Fattened Device Tree. 298 NETGEAR ReadyNAS Duo v2 using Fattened Device Tree.
298 299
300config MACH_SHEEVAPLUG_DT
301 bool "Marvell (eSATA) SheevaPlug (Flattened Device Tree)"
302 select ARCH_KIRKWOOD_DT
303 help
304 Say 'Y' here if you want your kernel to support the
305 Marvell (eSATA) SheevaPlug (Flattened Device Tree).
306
299config MACH_TOPKICK_DT 307config MACH_TOPKICK_DT
300 bool "USI Topkick (Flattened Device Tree)" 308 bool "USI Topkick (Flattened Device Tree)"
301 select ARCH_KIRKWOOD_DT 309 select ARCH_KIRKWOOD_DT
@@ -308,6 +316,7 @@ config MACH_TS219_DT
308 select ARCH_KIRKWOOD_DT 316 select ARCH_KIRKWOOD_DT
309 select ARM_APPENDED_DTB 317 select ARM_APPENDED_DTB
310 select ARM_ATAG_DTB_COMPAT 318 select ARM_ATAG_DTB_COMPAT
319 select POWER_RESET_QNAP
311 help 320 help
312 Say 'Y' here if you want your kernel to support the QNAP 321 Say 'Y' here if you want your kernel to support the QNAP
313 TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and 322 TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and
diff --git a/arch/arm/mach-kirkwood/Makefile b/arch/arm/mach-kirkwood/Makefile
index e1f3735d3415..8846abf8fc73 100644
--- a/arch/arm/mach-kirkwood/Makefile
+++ b/arch/arm/mach-kirkwood/Makefile
@@ -40,5 +40,6 @@ obj-$(CONFIG_MACH_NETSPACE_V2_DT) += board-ns2.o
40obj-$(CONFIG_MACH_NSA310_DT) += board-nsa310.o 40obj-$(CONFIG_MACH_NSA310_DT) += board-nsa310.o
41obj-$(CONFIG_MACH_OPENBLOCKS_A6_DT) += board-openblocks_a6.o 41obj-$(CONFIG_MACH_OPENBLOCKS_A6_DT) += board-openblocks_a6.o
42obj-$(CONFIG_MACH_READYNAS_DT) += board-readynas.o 42obj-$(CONFIG_MACH_READYNAS_DT) += board-readynas.o
43obj-$(CONFIG_MACH_SHEEVAPLUG_DT) += board-sheevaplug.o
43obj-$(CONFIG_MACH_TOPKICK_DT) += board-usi_topkick.o 44obj-$(CONFIG_MACH_TOPKICK_DT) += board-usi_topkick.o
44obj-$(CONFIG_MACH_TS219_DT) += board-ts219.o tsx1x-common.o 45obj-$(CONFIG_MACH_TS219_DT) += board-ts219.o tsx1x-common.o
diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c
index e9647b80cb59..a09dbac61efa 100644
--- a/arch/arm/mach-kirkwood/board-dt.c
+++ b/arch/arm/mach-kirkwood/board-dt.c
@@ -112,6 +112,9 @@ static void __init kirkwood_dt_init(void)
112 if (of_machine_is_compatible("globalscale,guruplug")) 112 if (of_machine_is_compatible("globalscale,guruplug"))
113 guruplug_dt_init(); 113 guruplug_dt_init();
114 114
115 if (of_machine_is_compatible("globalscale,sheevaplug"))
116 sheevaplug_dt_init();
117
115 if (of_machine_is_compatible("dlink,dns-kirkwood")) 118 if (of_machine_is_compatible("dlink,dns-kirkwood"))
116 dnskw_init(); 119 dnskw_init();
117 120
@@ -165,6 +168,7 @@ static void __init kirkwood_dt_init(void)
165static const char * const kirkwood_dt_board_compat[] = { 168static const char * const kirkwood_dt_board_compat[] = {
166 "globalscale,dreamplug", 169 "globalscale,dreamplug",
167 "globalscale,guruplug", 170 "globalscale,guruplug",
171 "globalscale,sheevaplug",
168 "dlink,dns-320", 172 "dlink,dns-320",
169 "dlink,dns-325", 173 "dlink,dns-325",
170 "iom,iconnect", 174 "iom,iconnect",
diff --git a/arch/arm/mach-kirkwood/board-lsxl.c b/arch/arm/mach-kirkwood/board-lsxl.c
index 4ec8b7ae784a..348395238df6 100644
--- a/arch/arm/mach-kirkwood/board-lsxl.c
+++ b/arch/arm/mach-kirkwood/board-lsxl.c
@@ -25,19 +25,6 @@ static struct mv643xx_eth_platform_data lsxl_ge01_data = {
25 .phy_addr = MV643XX_ETH_PHY_ADDR(8), 25 .phy_addr = MV643XX_ETH_PHY_ADDR(8),
26}; 26};
27 27
28/*
29 * On the LS-XHL/LS-CHLv2, the shutdown process is following:
30 * - Userland monitors key events until the power switch goes to off position
31 * - The board reboots
32 * - U-boot starts and goes into an idle mode waiting for the user
33 * to move the switch to ON position
34 *
35 */
36static void lsxl_power_off(void)
37{
38 kirkwood_restart('h', NULL);
39}
40
41void __init lsxl_init(void) 28void __init lsxl_init(void)
42{ 29{
43 /* 30 /*
@@ -46,7 +33,4 @@ void __init lsxl_init(void)
46 33
47 kirkwood_ge00_init(&lsxl_ge00_data); 34 kirkwood_ge00_init(&lsxl_ge00_data);
48 kirkwood_ge01_init(&lsxl_ge01_data); 35 kirkwood_ge01_init(&lsxl_ge01_data);
49
50 /* register power-off method */
51 pm_power_off = lsxl_power_off;
52} 36}
diff --git a/arch/arm/mach-kirkwood/board-sheevaplug.c b/arch/arm/mach-kirkwood/board-sheevaplug.c
new file mode 100644
index 000000000000..fa389373ca74
--- /dev/null
+++ b/arch/arm/mach-kirkwood/board-sheevaplug.c
@@ -0,0 +1,27 @@
1/*
2 * arch/arm/mach-kirkwood/board-sheevaplug.c
3 *
4 * Marvell Sheevaplug Reference Board Init for drivers not converted to
5 * flattened device tree yet.
6 *
7 * This file is licensed under the terms of the GNU General Public
8 * License version 2. This program is licensed "as is" without any
9 * warranty of any kind, whether express or implied.
10 */
11
12#include <linux/kernel.h>
13#include <linux/init.h>
14#include <linux/mv643xx_eth.h>
15#include "common.h"
16
17static struct mv643xx_eth_platform_data sheevaplug_ge00_data = {
18 .phy_addr = MV643XX_ETH_PHY_ADDR(0),
19};
20
21void __init sheevaplug_dt_init(void)
22{
23 /*
24 * Basic setup. Needs to be called early.
25 */
26 kirkwood_ge00_init(&sheevaplug_ge00_data);
27}
diff --git a/arch/arm/mach-kirkwood/board-ts219.c b/arch/arm/mach-kirkwood/board-ts219.c
index 4695d5f35fc9..860f44ab457d 100644
--- a/arch/arm/mach-kirkwood/board-ts219.c
+++ b/arch/arm/mach-kirkwood/board-ts219.c
@@ -23,7 +23,6 @@
23#include <asm/mach/arch.h> 23#include <asm/mach/arch.h>
24#include <mach/kirkwood.h> 24#include <mach/kirkwood.h>
25#include "common.h" 25#include "common.h"
26#include "tsx1x-common.h"
27 26
28static struct mv643xx_eth_platform_data qnap_ts219_ge00_data = { 27static struct mv643xx_eth_platform_data qnap_ts219_ge00_data = {
29 .phy_addr = MV643XX_ETH_PHY_ADDR(8), 28 .phy_addr = MV643XX_ETH_PHY_ADDR(8),
@@ -38,6 +37,4 @@ void __init qnap_dt_ts219_init(void)
38 qnap_ts219_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0); 37 qnap_ts219_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0);
39 38
40 kirkwood_ge00_init(&qnap_ts219_ge00_data); 39 kirkwood_ge00_init(&qnap_ts219_ge00_data);
41
42 pm_power_off = qnap_tsx1x_power_off;
43} 40}
diff --git a/arch/arm/mach-kirkwood/common.h b/arch/arm/mach-kirkwood/common.h
index 21da3b1ebd7b..974442eca0c8 100644
--- a/arch/arm/mach-kirkwood/common.h
+++ b/arch/arm/mach-kirkwood/common.h
@@ -65,6 +65,11 @@ void guruplug_dt_init(void);
65#else 65#else
66static inline void guruplug_dt_init(void) {}; 66static inline void guruplug_dt_init(void) {};
67#endif 67#endif
68#ifdef CONFIG_MACH_SHEEVAPLUG_DT
69void sheevaplug_dt_init(void);
70#else
71static inline void sheevaplug_dt_init(void) {};
72#endif
68#ifdef CONFIG_MACH_TS219_DT 73#ifdef CONFIG_MACH_TS219_DT
69void qnap_dt_ts219_init(void); 74void qnap_dt_ts219_init(void);
70#else 75#else