aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-kirkwood/Kconfig6
-rw-r--r--arch/arm/mach-kirkwood/Makefile1
-rw-r--r--arch/arm/mach-kirkwood/openrd_base-setup.c78
3 files changed, 85 insertions, 0 deletions
diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig
index 25100f7acf4c..0aca451b216d 100644
--- a/arch/arm/mach-kirkwood/Kconfig
+++ b/arch/arm/mach-kirkwood/Kconfig
@@ -38,6 +38,12 @@ config MACH_TS219
38 Say 'Y' here if you want your kernel to support the 38 Say 'Y' here if you want your kernel to support the
39 QNAP TS-119 and TS-219 Turbo NAS devices. 39 QNAP TS-119 and TS-219 Turbo NAS devices.
40 40
41config MACH_OPENRD_BASE
42 bool "Marvell OpenRD Base Board"
43 help
44 Say 'Y' here if you want your kernel to support the
45 Marvell OpenRD Base Board.
46
41endmenu 47endmenu
42 48
43endif 49endif
diff --git a/arch/arm/mach-kirkwood/Makefile b/arch/arm/mach-kirkwood/Makefile
index 9dd680e964d6..80ab0ec90ee1 100644
--- a/arch/arm/mach-kirkwood/Makefile
+++ b/arch/arm/mach-kirkwood/Makefile
@@ -6,5 +6,6 @@ obj-$(CONFIG_MACH_RD88F6281) += rd88f6281-setup.o
6obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o 6obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o
7obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o 7obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o
8obj-$(CONFIG_MACH_TS219) += ts219-setup.o 8obj-$(CONFIG_MACH_TS219) += ts219-setup.o
9obj-$(CONFIG_MACH_OPENRD_BASE) += openrd_base-setup.o
9 10
10obj-$(CONFIG_CPU_IDLE) += cpuidle.o 11obj-$(CONFIG_CPU_IDLE) += cpuidle.o
diff --git a/arch/arm/mach-kirkwood/openrd_base-setup.c b/arch/arm/mach-kirkwood/openrd_base-setup.c
new file mode 100644
index 000000000000..3144bb875789
--- /dev/null
+++ b/arch/arm/mach-kirkwood/openrd_base-setup.c
@@ -0,0 +1,78 @@
1/*
2 * arch/arm/mach-kirkwood/openrd_base-setup.c
3 *
4 * Marvell OpenRD Base Board Setup
5 *
6 * This file is licensed under the terms of the GNU General Public
7 * License version 2. This program is licensed "as is" without any
8 * warranty of any kind, whether express or implied.
9 */
10
11#include <linux/kernel.h>
12#include <linux/init.h>
13#include <linux/platform_device.h>
14#include <linux/mtd/partitions.h>
15#include <linux/mv643xx_eth.h>
16#include <asm/mach-types.h>
17#include <asm/mach/arch.h>
18#include <mach/kirkwood.h>
19#include <plat/mvsdio.h>
20#include "common.h"
21#include "mpp.h"
22
23static struct mtd_partition openrd_base_nand_parts[] = {
24 {
25 .name = "u-boot",
26 .offset = 0,
27 .size = SZ_1M
28 }, {
29 .name = "uImage",
30 .offset = MTDPART_OFS_NXTBLK,
31 .size = SZ_4M
32 }, {
33 .name = "root",
34 .offset = MTDPART_OFS_NXTBLK,
35 .size = MTDPART_SIZ_FULL
36 },
37};
38
39static struct mv643xx_eth_platform_data openrd_base_ge00_data = {
40 .phy_addr = MV643XX_ETH_PHY_ADDR(8),
41};
42
43static struct mvsdio_platform_data openrd_base_mvsdio_data = {
44 .gpio_card_detect = 29, /* MPP29 used as SD card detect */
45};
46
47static unsigned int openrd_base_mpp_config[] __initdata = {
48 MPP29_GPIO,
49 0
50};
51
52static void __init openrd_base_init(void)
53{
54 /*
55 * Basic setup. Needs to be called early.
56 */
57 kirkwood_init();
58 kirkwood_mpp_conf(openrd_base_mpp_config);
59
60 kirkwood_uart0_init();
61 kirkwood_nand_init(ARRAY_AND_SIZE(openrd_base_nand_parts), 25);
62
63 kirkwood_ehci_init();
64
65 kirkwood_ge00_init(&openrd_base_ge00_data);
66 kirkwood_sdio_init(&openrd_base_mvsdio_data);
67}
68
69MACHINE_START(OPENRD_BASE, "Marvell OpenRD Base Board")
70 /* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */
71 .phys_io = KIRKWOOD_REGS_PHYS_BASE,
72 .io_pg_offst = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc,
73 .boot_params = 0x00000100,
74 .init_machine = openrd_base_init,
75 .map_io = kirkwood_map_io,
76 .init_irq = kirkwood_init_irq,
77 .timer = &kirkwood_timer,
78MACHINE_END