aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-mx3
diff options
context:
space:
mode:
authorDaniel Mack <daniel@caiaq.de>2008-07-05 04:02:53 -0400
committerRobert Schwebel <r.schwebel@pengutronix.de>2008-07-05 04:02:53 -0400
commit9a4cd7a5c836e189a1712c9ffd2d76b2302ce212 (patch)
tree9b6548e712f100d3e3c00bf1390ba6231b4044f8 /arch/arm/mach-mx3
parentce8ffef0bfd6e55d5da3923d8e9af27c3b5c4eff (diff)
MX3: Add basic support for LogicPD i.MX31 LiteKit
This patch adds basic support for i.MX31 LiteKit by LogicPD. With printascii() in kernel/printk.c, it boots right into the rootfs-panic. Note: This is a modified version of Daniel's patch to fit into this patch stack. > On 09.06.2008, at 17:26, Russell King - ARM Linux wrote: > > > I would much prefer it if board specific includes were included by the > > code which needs them rather than in asm/arch/hardware.h.  With the > > device model, drivers shouldn't need to include any board specific > > includes - only the board specific C file should need it. > > The new version of this patch (#5102) has been uploaded to the patch > tracker this morning. Signed-off-by: Daniel Mack <daniel@caiaq.de> -- arch/arm/configs/mx31litekit_defconfig | 1100 ++++++++++++++++++++++++++++++ arch/arm/mach-mx3/Kconfig | 7 arch/arm/mach-mx3/Makefile | 1 arch/arm/mach-mx3/mx31lite.c | 96 ++ include/asm-arm/arch-mxc/board-mx31lite.h | 38 + include/asm-arm/arch-mxc/debug-macro.S | 3 6 files changed, 1245 insertions(+)
Diffstat (limited to 'arch/arm/mach-mx3')
-rw-r--r--arch/arm/mach-mx3/Kconfig7
-rw-r--r--arch/arm/mach-mx3/Makefile1
-rw-r--r--arch/arm/mach-mx3/mx31lite.c96
3 files changed, 104 insertions, 0 deletions
diff --git a/arch/arm/mach-mx3/Kconfig b/arch/arm/mach-mx3/Kconfig
index 8b7b49a92923..db9431dee1b4 100644
--- a/arch/arm/mach-mx3/Kconfig
+++ b/arch/arm/mach-mx3/Kconfig
@@ -14,5 +14,12 @@ config MACH_PCM037
14 Include support for Phytec pcm037 platform. This includes 14 Include support for Phytec pcm037 platform. This includes
15 specific configurations for the board and its peripherals. 15 specific configurations for the board and its peripherals.
16 16
17config MACH_MX31LITE
18 bool "Support MX31 LITEKIT (LogicPD)"
19 default n
20 help
21 Include support for MX31 LITEKIT platform. This includes specific
22 configurations for the board and its peripherals.
23
17endmenu 24endmenu
18 25
diff --git a/arch/arm/mach-mx3/Makefile b/arch/arm/mach-mx3/Makefile
index b09ca608349c..8b21abb71fb0 100644
--- a/arch/arm/mach-mx3/Makefile
+++ b/arch/arm/mach-mx3/Makefile
@@ -6,4 +6,5 @@
6 6
7obj-y := mm.o clock.o devices.o iomux.o 7obj-y := mm.o clock.o devices.o iomux.o
8obj-$(CONFIG_MACH_MX31ADS) += mx31ads.o 8obj-$(CONFIG_MACH_MX31ADS) += mx31ads.o
9obj-$(CONFIG_MACH_MX31LITE) += mx31lite.o
9obj-$(CONFIG_MACH_PCM037) += pcm037.o 10obj-$(CONFIG_MACH_PCM037) += pcm037.o
diff --git a/arch/arm/mach-mx3/mx31lite.c b/arch/arm/mach-mx3/mx31lite.c
new file mode 100644
index 000000000000..ea23a8ec6850
--- /dev/null
+++ b/arch/arm/mach-mx3/mx31lite.c
@@ -0,0 +1,96 @@
1/*
2 * Copyright (C) 2000 Deep Blue Solutions Ltd
3 * Copyright (C) 2002 Shane Nay (shane@minirl.com)
4 * Copyright 2005-2007 Freescale Semiconductor, Inc. All Rights Reserved.
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 as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20
21#include <linux/types.h>
22#include <linux/init.h>
23#include <linux/kernel.h>
24#include <linux/memory.h>
25
26#include <asm/hardware.h>
27#include <asm/mach-types.h>
28#include <asm/mach/arch.h>
29#include <asm/mach/map.h>
30#include <asm/arch/common.h>
31#include <asm/page.h>
32#include <asm/setup.h>
33#include <asm/arch/board-mx31lite.h>
34
35/*
36 * This file contains the board-specific initialization routines.
37 */
38
39/*
40 * This structure defines the MX31 memory map.
41 */
42static struct map_desc mx31lite_io_desc[] __initdata = {
43 {
44 .virtual = AIPS1_BASE_ADDR_VIRT,
45 .pfn = __phys_to_pfn(AIPS1_BASE_ADDR),
46 .length = AIPS1_SIZE,
47 .type = MT_NONSHARED_DEVICE
48 }, {
49 .virtual = SPBA0_BASE_ADDR_VIRT,
50 .pfn = __phys_to_pfn(SPBA0_BASE_ADDR),
51 .length = SPBA0_SIZE,
52 .type = MT_NONSHARED_DEVICE
53 }, {
54 .virtual = AIPS2_BASE_ADDR_VIRT,
55 .pfn = __phys_to_pfn(AIPS2_BASE_ADDR),
56 .length = AIPS2_SIZE,
57 .type = MT_NONSHARED_DEVICE
58 }, {
59 .virtual = CS4_BASE_ADDR_VIRT,
60 .pfn = __phys_to_pfn(CS4_BASE_ADDR),
61 .length = CS4_SIZE,
62 .type = MT_DEVICE
63 }
64};
65
66/*
67 * Set up static virtual mappings.
68 */
69void __init mx31lite_map_io(void)
70{
71 mxc_map_io();
72 iotable_init(mx31lite_io_desc, ARRAY_SIZE(mx31lite_io_desc));
73}
74
75/*
76 * Board specific initialization.
77 */
78static void __init mxc_board_init(void)
79{
80}
81
82/*
83 * The following uses standard kernel macros defined in arch.h in order to
84 * initialize __mach_desc_MX31LITE data structure.
85 */
86
87MACHINE_START(MX31LITE, "LogicPD MX31 LITEKIT")
88 /* Maintainer: Freescale Semiconductor, Inc. */
89 .phys_io = AIPS1_BASE_ADDR,
90 .io_pg_offst = ((AIPS1_BASE_ADDR_VIRT) >> 18) & 0xfffc,
91 .boot_params = PHYS_OFFSET + 0x100,
92 .map_io = mx31lite_map_io,
93 .init_irq = mxc_init_irq,
94 .init_machine = mxc_board_init,
95 .timer = &mxc_timer,
96MACHINE_END