| 
									
										
										
										
											2007-02-14 19:20:28 +01:00
										 |  |  | #ifndef __ASMARM_ARCH_SCU_H
 | 
					
						
							|  |  |  | #define __ASMARM_ARCH_SCU_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-04 10:36:39 +00:00
										 |  |  | #define SCU_PM_NORMAL	0
 | 
					
						
							|  |  |  | #define SCU_PM_DORMANT	2
 | 
					
						
							|  |  |  | #define SCU_PM_POWEROFF	3
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef __ASSEMBLER__
 | 
					
						
							| 
									
										
										
										
											2013-01-22 07:52:01 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include <asm/cputype.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline bool scu_a9_has_base(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return read_cpuid_part_number() == ARM_CPU_PART_CORTEX_A9; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline unsigned long scu_a9_get_base(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	unsigned long pa; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	asm("mrc p15, 4, %0, c15, c0, 0" : "=r" (pa)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	return pa; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-26 09:39:47 -05:00
										 |  |  | #ifdef CONFIG_HAVE_ARM_SCU
 | 
					
						
							| 
									
										
										
										
											2009-05-16 11:51:14 +01:00
										 |  |  | unsigned int scu_get_core_count(void __iomem *); | 
					
						
							| 
									
										
										
										
											2011-02-04 10:36:39 +00:00
										 |  |  | int scu_power_mode(void __iomem *, unsigned int); | 
					
						
							| 
									
										
										
										
											2013-06-26 09:39:47 -05:00
										 |  |  | #else
 | 
					
						
							|  |  |  | static inline unsigned int scu_get_core_count(void __iomem *scu_base) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | static inline int scu_power_mode(void __iomem *scu_base, unsigned int mode) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return -EINVAL; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2013-01-31 09:26:06 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-26 09:39:47 -05:00
										 |  |  | #if defined(CONFIG_SMP) && defined(CONFIG_HAVE_ARM_SCU)
 | 
					
						
							| 
									
										
										
										
											2013-01-31 09:26:06 -06:00
										 |  |  | void scu_enable(void __iomem *scu_base); | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | static inline void scu_enable(void __iomem *scu_base) {} | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-04 10:36:39 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2007-02-14 19:20:28 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | #endif
 |