| 
									
										
										
										
											2009-04-23 10:22:13 +01:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * arch/arm/mach-u300/u300.c | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Copyright (C) 2006-2009 ST-Ericsson AB | 
					
						
							|  |  |  |  * License terms: GNU General Public License (GPL) version 2 | 
					
						
							|  |  |  |  * Platform machine definition. | 
					
						
							|  |  |  |  * Author: Linus Walleij <linus.walleij@stericsson.com> | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #include <linux/kernel.h>
 | 
					
						
							|  |  |  | #include <linux/init.h>
 | 
					
						
							|  |  |  | #include <linux/mm.h>
 | 
					
						
							|  |  |  | #include <linux/sched.h>
 | 
					
						
							|  |  |  | #include <linux/interrupt.h>
 | 
					
						
							|  |  |  | #include <linux/ioport.h>
 | 
					
						
							| 
									
										
										
										
											2010-05-22 19:47:18 +01:00
										 |  |  | #include <linux/memblock.h>
 | 
					
						
							| 
									
										
										
										
											2009-04-23 10:22:13 +01:00
										 |  |  | #include <linux/platform_device.h>
 | 
					
						
							|  |  |  | #include <linux/io.h>
 | 
					
						
							|  |  |  | #include <mach/hardware.h>
 | 
					
						
							|  |  |  | #include <mach/platform.h>
 | 
					
						
							|  |  |  | #include <mach/memory.h>
 | 
					
						
							|  |  |  | #include <asm/mach-types.h>
 | 
					
						
							|  |  |  | #include <asm/mach/arch.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-22 18:18:57 +01:00
										 |  |  | static void __init u300_reserve(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	/*
 | 
					
						
							|  |  |  | 	 * U300 - This platform family can share physical memory | 
					
						
							|  |  |  | 	 * between two ARM cpus, one running Linux and the other | 
					
						
							|  |  |  | 	 * running another OS. | 
					
						
							|  |  |  | 	 */ | 
					
						
							|  |  |  | #ifdef CONFIG_MACH_U300_SINGLE_RAM
 | 
					
						
							|  |  |  | #if ((CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1) == 1) && \
 | 
					
						
							|  |  |  | 	CONFIG_MACH_U300_2MB_ALIGNMENT_FIX | 
					
						
							| 
									
										
										
										
											2010-05-22 19:47:18 +01:00
										 |  |  |         memblock_reserve(PHYS_OFFSET, 0x00100000); | 
					
						
							| 
									
										
										
										
											2010-05-22 18:18:57 +01:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-23 10:22:13 +01:00
										 |  |  | static void __init u300_init_machine(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	u300_init_devices(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_MACH_U300_BS2X
 | 
					
						
							|  |  |  | #define MACH_U300_STRING "Ericsson AB U300 S25/S26/B25/B26 Prototype Board"
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_MACH_U300_BS330
 | 
					
						
							|  |  |  | #define MACH_U300_STRING "Ericsson AB U330 S330/B330 Prototype Board"
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_MACH_U300_BS335
 | 
					
						
							|  |  |  | #define MACH_U300_STRING "Ericsson AB U335 S335/B335 Prototype Board"
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_MACH_U300_BS365
 | 
					
						
							|  |  |  | #define MACH_U300_STRING "Ericsson AB U365 S365/B365 Prototype Board"
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | MACHINE_START(U300, MACH_U300_STRING) | 
					
						
							|  |  |  | 	/* Maintainer: Linus Walleij <linus.walleij@stericsson.com> */ | 
					
						
							|  |  |  | 	.phys_io	= U300_AHB_PER_PHYS_BASE, | 
					
						
							|  |  |  | 	.io_pg_offst	= ((U300_AHB_PER_VIRT_BASE) >> 18) & 0xfffc, | 
					
						
							|  |  |  | 	.boot_params	= BOOT_PARAMS_OFFSET, | 
					
						
							|  |  |  | 	.map_io		= u300_map_io, | 
					
						
							| 
									
										
										
										
											2010-05-22 18:18:57 +01:00
										 |  |  | 	.reserve	= u300_reserve, | 
					
						
							| 
									
										
										
										
											2009-04-23 10:22:13 +01:00
										 |  |  | 	.init_irq	= u300_init_irq, | 
					
						
							|  |  |  | 	.timer		= &u300_timer, | 
					
						
							|  |  |  | 	.init_machine	= u300_init_machine, | 
					
						
							|  |  |  | MACHINE_END |