| 
									
										
										
										
											2011-07-08 17:40:12 +08:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2011-09-22 22:51:30 -07:00
										 |  |  |  * Defines machines for CSR SiRFprimaII | 
					
						
							| 
									
										
										
										
											2011-07-08 17:40:12 +08:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Licensed under GPLv2 or later. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 15:27:22 +01:00
										 |  |  | #include <linux/clocksource.h>
 | 
					
						
							| 
									
										
										
										
											2011-07-08 17:40:12 +08:00
										 |  |  | #include <linux/init.h>
 | 
					
						
							|  |  |  | #include <linux/kernel.h>
 | 
					
						
							| 
									
										
										
										
											2011-11-17 22:18:14 +08:00
										 |  |  | #include <asm/sizes.h>
 | 
					
						
							| 
									
										
										
										
											2011-07-08 17:40:12 +08:00
										 |  |  | #include <asm/mach-types.h>
 | 
					
						
							|  |  |  | #include <asm/mach/arch.h>
 | 
					
						
							|  |  |  | #include <linux/of.h>
 | 
					
						
							|  |  |  | #include <linux/of_platform.h>
 | 
					
						
							|  |  |  | #include "common.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-26 20:51:36 +08:00
										 |  |  | void __init sirfsoc_init_late(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	sirfsoc_pm_init(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 15:27:22 +01:00
										 |  |  | static __init void sirfsoc_init_time(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	/* initialize clocking early, we want to set the OS timer */ | 
					
						
							|  |  |  | 	sirfsoc_of_clk_init(); | 
					
						
							|  |  |  | 	clocksource_of_init(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-20 19:37:32 +08:00
										 |  |  | static __init void sirfsoc_map_io(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	sirfsoc_map_lluart(); | 
					
						
							|  |  |  | 	sirfsoc_map_scu(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-18 15:04:38 +08:00
										 |  |  | #ifdef CONFIG_ARCH_ATLAS6
 | 
					
						
							|  |  |  | static const char *atlas6_dt_match[] __initdata = { | 
					
						
							|  |  |  | 	"sirf,atlas6", | 
					
						
							|  |  |  | 	NULL | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DT_MACHINE_START(ATLAS6_DT, "Generic ATLAS6 (Flattened Device Tree)") | 
					
						
							|  |  |  | 	/* Maintainer: Barry Song <baohua.song@csr.com> */ | 
					
						
							|  |  |  | 	.map_io         = sirfsoc_map_io, | 
					
						
							| 
									
										
										
										
											2013-03-19 15:27:22 +01:00
										 |  |  | 	.init_time	= sirfsoc_init_time, | 
					
						
							| 
									
										
										
										
											2013-03-18 15:04:38 +08:00
										 |  |  | 	.init_late	= sirfsoc_init_late, | 
					
						
							|  |  |  | 	.dt_compat      = atlas6_dt_match, | 
					
						
							|  |  |  | 	.restart	= sirfsoc_restart, | 
					
						
							|  |  |  | MACHINE_END | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-08-23 13:41:57 +08:00
										 |  |  | #ifdef CONFIG_ARCH_PRIMA2
 | 
					
						
							|  |  |  | static const char *prima2_dt_match[] __initdata = { | 
					
						
							| 
									
										
										
										
											2013-03-05 11:00:43 +08:00
										 |  |  | 	"sirf,prima2", | 
					
						
							|  |  |  | 	NULL | 
					
						
							| 
									
										
										
										
											2011-07-08 17:40:12 +08:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-08-23 13:41:57 +08:00
										 |  |  | DT_MACHINE_START(PRIMA2_DT, "Generic PRIMA2 (Flattened Device Tree)") | 
					
						
							| 
									
										
										
										
											2011-07-08 17:40:12 +08:00
										 |  |  | 	/* Maintainer: Barry Song <baohua.song@csr.com> */ | 
					
						
							| 
									
										
										
										
											2012-12-20 19:37:32 +08:00
										 |  |  | 	.map_io         = sirfsoc_map_io, | 
					
						
							| 
									
										
										
										
											2013-03-19 15:27:22 +01:00
										 |  |  | 	.init_time	= sirfsoc_init_time, | 
					
						
							| 
									
										
										
										
											2011-09-02 21:05:10 -04:00
										 |  |  | 	.dma_zone_size	= SZ_256M, | 
					
						
							| 
									
										
										
										
											2012-04-26 20:51:36 +08:00
										 |  |  | 	.init_late	= sirfsoc_init_late, | 
					
						
							| 
									
										
										
										
											2012-08-23 13:41:57 +08:00
										 |  |  | 	.dt_compat      = prima2_dt_match, | 
					
						
							| 
									
										
										
										
											2011-11-05 10:23:27 +00:00
										 |  |  | 	.restart	= sirfsoc_restart, | 
					
						
							| 
									
										
										
										
											2011-07-08 17:40:12 +08:00
										 |  |  | MACHINE_END | 
					
						
							| 
									
										
										
										
											2012-08-23 13:41:57 +08:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2012-12-20 19:37:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_ARCH_MARCO
 | 
					
						
							|  |  |  | static const char *marco_dt_match[] __initdata = { | 
					
						
							|  |  |  | 	"sirf,marco", | 
					
						
							|  |  |  | 	NULL | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DT_MACHINE_START(MARCO_DT, "Generic MARCO (Flattened Device Tree)") | 
					
						
							|  |  |  | 	/* Maintainer: Barry Song <baohua.song@csr.com> */ | 
					
						
							|  |  |  | 	.smp            = smp_ops(sirfsoc_smp_ops), | 
					
						
							|  |  |  | 	.map_io         = sirfsoc_map_io, | 
					
						
							| 
									
										
										
										
											2013-03-19 15:27:22 +01:00
										 |  |  | 	.init_time	= sirfsoc_init_time, | 
					
						
							| 
									
										
										
										
											2012-12-20 19:37:32 +08:00
										 |  |  | 	.init_late	= sirfsoc_init_late, | 
					
						
							|  |  |  | 	.dt_compat      = marco_dt_match, | 
					
						
							|  |  |  | 	.restart	= sirfsoc_restart, | 
					
						
							|  |  |  | MACHINE_END | 
					
						
							|  |  |  | #endif
 |