summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-exynos/include/mach/uncompress.h
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-04-10 09:52:59 +0100
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-04-10 09:52:59 +0100
commitb920eb41a8241c54efbbd4f2ed6d074f497b0d9e (patch)
tree5941091817e932add192f8e58dc88d483322e214 /arch/arm/mach-exynos/include/mach/uncompress.h
parenta9d5801041eecc7baceff49a28e82f91f207a961 (diff)
parent0034102808e0dbbf3a2394b82b1bb40b5778de9e (diff)
Merge tag 'v3.4-rc2' into regulator-drivers
Linux 3.4-rc2 contains some fixes that further patches depend upon.
Diffstat (limited to 'arch/arm/mach-exynos/include/mach/uncompress.h')
-rw-r--r--arch/arm/mach-exynos/include/mach/uncompress.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/arch/arm/mach-exynos/include/mach/uncompress.h b/arch/arm/mach-exynos/include/mach/uncompress.h
index 493f4f365dd..2979995d5a6 100644
--- a/arch/arm/mach-exynos/include/mach/uncompress.h
+++ b/arch/arm/mach-exynos/include/mach/uncompress.h
@@ -20,9 +20,24 @@ volatile u8 *uart_base;
#include <plat/uncompress.h>
+static unsigned int __raw_readl(unsigned int ptr)
+{
+ return *((volatile unsigned int *)ptr);
+}
+
static void arch_detect_cpu(void)
{
- if (machine_is_smdk5250())
+ u32 chip_id = __raw_readl(EXYNOS_PA_CHIPID);
+
+ /*
+ * product_id is bits 31:12
+ * bits 23:20 describe the exynosX family
+ *
+ */
+ chip_id >>= 20;
+ chip_id &= 0xf;
+
+ if (chip_id == 0x5)
uart_base = (volatile u8 *)EXYNOS5_PA_UART + (S3C_UART_OFFSET * CONFIG_S3C_LOWLEVEL_UART_PORT);
else
uart_base = (volatile u8 *)EXYNOS4_PA_UART + (S3C_UART_OFFSET * CONFIG_S3C_LOWLEVEL_UART_PORT);