diff options
author | Eric Miao <eric.miao@marvell.com> | 2009-03-20 01:27:30 -0400 |
---|---|---|
committer | Eric Miao <eric.miao@marvell.com> | 2009-03-22 22:11:38 -0400 |
commit | a3929f31cb2300f1ab190a0168e55bb55222ee40 (patch) | |
tree | b8e5d24f9c33ad037d92bfa7261bfcce9bd6915c /arch | |
parent | 14c6b5e7add9ec393ad61bceb6106b47c7f14bd3 (diff) |
[ARM] pxa: add base support for pxa910-based TavorEVB
Signed-off-by: Bin Yang <bin.yang@marvell.com>
Signed-off-by: Eric Miao <eric.miao@marvell.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-mmp/Kconfig | 7 | ||||
-rw-r--r-- | arch/arm/mach-mmp/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/mach-mmp/tavorevb.c | 109 |
3 files changed, 117 insertions, 0 deletions
diff --git a/arch/arm/mach-mmp/Kconfig b/arch/arm/mach-mmp/Kconfig index ba2e377484f7..e77db550907e 100644 --- a/arch/arm/mach-mmp/Kconfig +++ b/arch/arm/mach-mmp/Kconfig | |||
@@ -16,6 +16,13 @@ config MACH_ZYLONITE2 | |||
16 | Say 'Y' here if you want to support the Marvell PXA168-based | 16 | Say 'Y' here if you want to support the Marvell PXA168-based |
17 | Zylonite2 Development Board. | 17 | Zylonite2 Development Board. |
18 | 18 | ||
19 | config MACH_TAVOREVB | ||
20 | bool "Marvell's PXA910 TavorEVB Development Board" | ||
21 | select CPU_PXA910 | ||
22 | help | ||
23 | Say 'Y' here if you want to support the Marvell PXA910-based | ||
24 | TavorEVB Development Board. | ||
25 | |||
19 | endmenu | 26 | endmenu |
20 | 27 | ||
21 | config CPU_PXA168 | 28 | config CPU_PXA168 |
diff --git a/arch/arm/mach-mmp/Makefile b/arch/arm/mach-mmp/Makefile index 93d2bc7459d6..542aafae5b11 100644 --- a/arch/arm/mach-mmp/Makefile +++ b/arch/arm/mach-mmp/Makefile | |||
@@ -11,3 +11,4 @@ obj-$(CONFIG_CPU_PXA910) += pxa910.o | |||
11 | # board support | 11 | # board support |
12 | obj-$(CONFIG_MACH_ASPENITE) += aspenite.o | 12 | obj-$(CONFIG_MACH_ASPENITE) += aspenite.o |
13 | obj-$(CONFIG_MACH_ZYLONITE2) += aspenite.o | 13 | obj-$(CONFIG_MACH_ZYLONITE2) += aspenite.o |
14 | obj-$(CONFIG_MACH_TAVOREVB) += tavorevb.o | ||
diff --git a/arch/arm/mach-mmp/tavorevb.c b/arch/arm/mach-mmp/tavorevb.c new file mode 100644 index 000000000000..0e0c9220eaba --- /dev/null +++ b/arch/arm/mach-mmp/tavorevb.c | |||
@@ -0,0 +1,109 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/mach-mmp/tavorevb.c | ||
3 | * | ||
4 | * Support for the Marvell PXA910-based TavorEVB Development Platform. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * publishhed by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | #include <linux/init.h> | ||
12 | #include <linux/kernel.h> | ||
13 | #include <linux/platform_device.h> | ||
14 | #include <linux/smc91x.h> | ||
15 | |||
16 | #include <asm/mach-types.h> | ||
17 | #include <asm/mach/arch.h> | ||
18 | #include <mach/addr-map.h> | ||
19 | #include <mach/mfp-pxa910.h> | ||
20 | #include <mach/pxa910.h> | ||
21 | #include <mach/gpio.h> | ||
22 | |||
23 | #include "common.h" | ||
24 | |||
25 | static unsigned long tavorevb_pin_config[] __initdata = { | ||
26 | /* UART2 */ | ||
27 | GPIO47_UART2_RXD, | ||
28 | GPIO48_UART2_TXD, | ||
29 | |||
30 | /* SMC */ | ||
31 | SM_nCS0_nCS0, | ||
32 | SM_ADV_SM_ADV, | ||
33 | SM_SCLK_SM_SCLK, | ||
34 | SM_SCLK_SM_SCLK, | ||
35 | SM_BE0_SM_BE0, | ||
36 | SM_BE1_SM_BE1, | ||
37 | |||
38 | /* DFI */ | ||
39 | DF_IO0_ND_IO0, | ||
40 | DF_IO1_ND_IO1, | ||
41 | DF_IO2_ND_IO2, | ||
42 | DF_IO3_ND_IO3, | ||
43 | DF_IO4_ND_IO4, | ||
44 | DF_IO5_ND_IO5, | ||
45 | DF_IO6_ND_IO6, | ||
46 | DF_IO7_ND_IO7, | ||
47 | DF_IO8_ND_IO8, | ||
48 | DF_IO9_ND_IO9, | ||
49 | DF_IO10_ND_IO10, | ||
50 | DF_IO11_ND_IO11, | ||
51 | DF_IO12_ND_IO12, | ||
52 | DF_IO13_ND_IO13, | ||
53 | DF_IO14_ND_IO14, | ||
54 | DF_IO15_ND_IO15, | ||
55 | DF_nCS0_SM_nCS2_nCS0, | ||
56 | DF_ALE_SM_WEn_ND_ALE, | ||
57 | DF_CLE_SM_OEn_ND_CLE, | ||
58 | DF_WEn_DF_WEn, | ||
59 | DF_REn_DF_REn, | ||
60 | DF_RDY0_DF_RDY0, | ||
61 | }; | ||
62 | |||
63 | static struct smc91x_platdata tavorevb_smc91x_info = { | ||
64 | .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT, | ||
65 | }; | ||
66 | |||
67 | static struct resource smc91x_resources[] = { | ||
68 | [0] = { | ||
69 | .start = SMC_CS1_PHYS_BASE + 0x300, | ||
70 | .end = SMC_CS1_PHYS_BASE + 0xfffff, | ||
71 | .flags = IORESOURCE_MEM, | ||
72 | }, | ||
73 | [1] = { | ||
74 | .start = gpio_to_irq(80), | ||
75 | .end = gpio_to_irq(80), | ||
76 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE, | ||
77 | } | ||
78 | }; | ||
79 | |||
80 | static struct platform_device smc91x_device = { | ||
81 | .name = "smc91x", | ||
82 | .id = 0, | ||
83 | .dev = { | ||
84 | .platform_data = &tavorevb_smc91x_info, | ||
85 | }, | ||
86 | .num_resources = ARRAY_SIZE(smc91x_resources), | ||
87 | .resource = smc91x_resources, | ||
88 | }; | ||
89 | |||
90 | static void __init tavorevb_init(void) | ||
91 | { | ||
92 | mfp_config(ARRAY_AND_SIZE(tavorevb_pin_config)); | ||
93 | |||
94 | /* on-chip devices */ | ||
95 | pxa910_add_uart(1); | ||
96 | |||
97 | /* off-chip devices */ | ||
98 | platform_device_register(&smc91x_device); | ||
99 | } | ||
100 | |||
101 | MACHINE_START(TAVOREVB, "PXA910 Evaluation Board (aka TavorEVB)") | ||
102 | .phys_io = APB_PHYS_BASE, | ||
103 | .boot_params = 0x00000100, | ||
104 | .io_pg_offst = (APB_VIRT_BASE >> 18) & 0xfffc, | ||
105 | .map_io = pxa_map_io, | ||
106 | .init_irq = pxa910_init_irq, | ||
107 | .timer = &pxa910_timer, | ||
108 | .init_machine = tavorevb_init, | ||
109 | MACHINE_END | ||