Linux 3.1-rc1
[linux-kbuild.git] / arch / arm / mach-u300 / u300.c
blob48b3b7f399660b4e2c1b65ae79ca1b681c924cb4
1 /*
3 * arch/arm/mach-u300/u300.c
6 * Copyright (C) 2006-2009 ST-Ericsson AB
7 * License terms: GNU General Public License (GPL) version 2
8 * Platform machine definition.
9 * Author: Linus Walleij <linus.walleij@stericsson.com>
11 #include <linux/kernel.h>
12 #include <linux/init.h>
13 #include <linux/mm.h>
14 #include <linux/sched.h>
15 #include <linux/interrupt.h>
16 #include <linux/ioport.h>
17 #include <linux/memblock.h>
18 #include <linux/platform_device.h>
19 #include <linux/io.h>
20 #include <mach/hardware.h>
21 #include <mach/platform.h>
22 #include <asm/mach-types.h>
23 #include <asm/mach/arch.h>
24 #include <asm/memory.h>
26 static void __init u300_reserve(void)
29 * U300 - This platform family can share physical memory
30 * between two ARM cpus, one running Linux and the other
31 * running another OS.
33 #ifdef CONFIG_MACH_U300_SINGLE_RAM
34 #if ((CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1) == 1) && \
35 CONFIG_MACH_U300_2MB_ALIGNMENT_FIX
36 memblock_reserve(PHYS_OFFSET, 0x00100000);
37 #endif
38 #endif
41 static void __init u300_init_machine(void)
43 u300_init_devices();
46 #ifdef CONFIG_MACH_U300_BS2X
47 #define MACH_U300_STRING "Ericsson AB U300 S25/S26/B25/B26 Prototype Board"
48 #endif
50 #ifdef CONFIG_MACH_U300_BS330
51 #define MACH_U300_STRING "Ericsson AB U330 S330/B330 Prototype Board"
52 #endif
54 #ifdef CONFIG_MACH_U300_BS335
55 #define MACH_U300_STRING "Ericsson AB U335 S335/B335 Prototype Board"
56 #endif
58 #ifdef CONFIG_MACH_U300_BS365
59 #define MACH_U300_STRING "Ericsson AB U365 S365/B365 Prototype Board"
60 #endif
62 MACHINE_START(U300, MACH_U300_STRING)
63 /* Maintainer: Linus Walleij <linus.walleij@stericsson.com> */
64 .boot_params = BOOT_PARAMS_OFFSET,
65 .map_io = u300_map_io,
66 .reserve = u300_reserve,
67 .init_irq = u300_init_irq,
68 .timer = &u300_timer,
69 .init_machine = u300_init_machine,
70 MACHINE_END