aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorDhaval Vasa <dhaval.vasa@einfochips.com>2009-08-10 08:07:34 -0400
committerNicolas Pitre <nico@cam.org>2009-08-10 18:03:59 -0400
commit7eeae54c68e91c46ec170e764d1cceac81f35969 (patch)
tree3d21326331368ae3b6f068aba2cfe12a010f66ef /arch/arm
parent7153c360ebe5bcfb1e6b7980b90584c75c8c8e4d (diff)
[ARM] Kirkwood: Marvell OpenRD-Base board support
reference: http://open-rd.org http://code.google.com/p/openrd This patch is tested for: 1. Boot from DRAM/NAND flash 2. NAND read/write/erase 3. GbE0 4. USB read/write FIXME: 1. SD/UART1 selection 2. MPP configuration (currently, default) 3. PEX Signed-off-by: Dhaval Vasa <dhaval.vasa@einfochips.com> Signed-off-by: Nicolas Pitre <nico@marvell.com>
Diffstat (limited to 'arch/arm')
-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