ARM: Add API to detect SCU base address from CP15
authorHiroshi Doyu <hdoyu@nvidia.com>
Tue, 22 Jan 2013 05:52:01 +0000 (07:52 +0200)
committerStephen Warren <swarren@nvidia.com>
Mon, 28 Jan 2013 17:40:59 +0000 (10:40 -0700)
Add API to detect SCU base address from CP15.

Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
arch/arm/include/asm/smp_scu.h

index 4eb6d005ffaa4b625c9f86fc8532b046d0cf1f6a..006f02681cd8e240738efb823cc904d16abaea6e 100644 (file)
@@ -6,6 +6,23 @@
 #define SCU_PM_POWEROFF        3
 
 #ifndef __ASSEMBLER__
+
+#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;
+}
+
 unsigned int scu_get_core_count(void __iomem *);
 void scu_enable(void __iomem *);
 int scu_power_mode(void __iomem *, unsigned int);