aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-kirkwood
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2013-06-01 01:44:13 -0400
committerOlof Johansson <olof@lixom.net>2013-06-01 01:44:13 -0400
commit75ae47f9de39cdea1efc7b5908d5a9ee580ee892 (patch)
tree2447b5475cb712b2ff0ea165c1d4c115d6d3b852 /arch/arm/mach-kirkwood
parente4aa937ec75df0eea0bee03bffa3303ad36c986b (diff)
parent391a16c7783a64309dc930c6d454372d7a8beb12 (diff)
Merge tag 'boards-3.11-2' of git://git.infradead.org/users/jcooper/linux into next/boards
From Jason Cooper, mvebu board changes for v3.11. Signed-off-by: Olof Johansson <olof@lixom.net> * tag 'boards-3.11-2' of git://git.infradead.org/users/jcooper/linux: ARM: Kirkwood: Convert LSXL to restart-poweroff driver. ARM: Kirkwood: Make use of the QNAP Power off driver. ARM: Kirkwood: add DT support for Sheevaplug and Sheevaplug eSATA
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 acb0187c7ee1..10fb3974de5a 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,8 +37,6 @@ 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}
44 41
45/* FIXME: Will not work with DT. Maybe use MPP40_GPIO? */ 42/* FIXME: Will not work with DT. Maybe use MPP40_GPIO? */
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