summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorJoakim Axelsson <joakim.axelsson@stericsson.com>2010-12-03 13:18:04 +0800
committerMichael BRANDT <michael.brandt@stericsson.com>2010-12-08 16:19:19 +0100
commit568e790d63676b87c9e3be499e09dc3a390cbbfe (patch)
treeafd86821e40db8d4f299ce7e9d54be704f011fdd /board
parentad006f9896b3cc1d8d2b855f27bbd1ad4482abe1 (diff)
db8500: Move cpu identifying function to SoC code
Moved u8500_is_earlydrop() and cpu_is_u8500*() to include/asm-arm/arch-db8500/cpu.h. They are kept in cpu.h as the functions are very small and should be inlined with each use of them. The final binary actually also became around 100 bytes smaller. ST-Ericsson ID: None Signed-off-by: Joakim Axelsson <joakim.axelsson@stericsson.com> Change-Id: Ied553b7c8a004a37c70c3e328a069ae8b2a92b23 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/9893 Reviewed-by: QATOOLS Reviewed-by: Michael BRANDT <michael.brandt@stericsson.com> Tested-by: Michael BRANDT <michael.brandt@stericsson.com>
Diffstat (limited to 'board')
-rw-r--r--board/st/u8500/mcde_hw.c1
-rw-r--r--board/st/u8500/mmc_host.c1
-rw-r--r--board/st/u8500/mmc_utils.c1
-rw-r--r--board/st/u8500/u8500.c51
4 files changed, 4 insertions, 50 deletions
diff --git a/board/st/u8500/mcde_hw.c b/board/st/u8500/mcde_hw.c
index 24b850cd3..e281d874c 100644
--- a/board/st/u8500/mcde_hw.c
+++ b/board/st/u8500/mcde_hw.c
@@ -9,6 +9,7 @@
#include <common.h>
#include <command.h>
+#include <asm/arch/cpu.h>
#include <asm/arch/gpio.h>
#include <tc35892.h>
#include <malloc.h>
diff --git a/board/st/u8500/mmc_host.c b/board/st/u8500/mmc_host.c
index a9023eb10..8a2e0b3dd 100644
--- a/board/st/u8500/mmc_host.c
+++ b/board/st/u8500/mmc_host.c
@@ -15,6 +15,7 @@
#define DBG_LVL_VERBOSE (2)
#include <asm/arch/common.h>
+#include <asm/arch/cpu.h>
#include <mmc.h>
#include <asm/arch/gpio.h>
#include "mmc_host.h"
diff --git a/board/st/u8500/mmc_utils.c b/board/st/u8500/mmc_utils.c
index 976310571..6c5a8150d 100644
--- a/board/st/u8500/mmc_utils.c
+++ b/board/st/u8500/mmc_utils.c
@@ -22,6 +22,7 @@
#include <linux/ctype.h>
#include <asm/arch/common.h>
+#include <asm/arch/cpu.h>
#include <command.h>
#include <mmc.h>
#include <fat.h>
diff --git a/board/st/u8500/u8500.c b/board/st/u8500/u8500.c
index a76825d0e..1eb083585 100644
--- a/board/st/u8500/u8500.c
+++ b/board/st/u8500/u8500.c
@@ -12,6 +12,7 @@
#include <asm/io.h>
#include <asm/errno.h>
#include <asm/arch/clock.h>
+#include <asm/arch/cpu.h>
#include <asm/arch/hardware.h>
#include <asm/arch/ab8500.h>
#include <asm/arch/prcmu.h>
@@ -118,56 +119,6 @@ void show_boot_progress(int progress)
}
#endif
-#define CPUID_DB8500ED 0x410fc090
-#define CPUID_DB8500V1 0x411fc091
-#define CPUID_DB8500V2 0x412fc091
-
-#define ASICID_DB8500V11 0x008500A1
-
-static unsigned int read_cpuid(void)
-{
- unsigned int val;
-
- /* Main ID register (MIDR) */
- asm("mrc p15, 0, %0, c0, c0, 0"
- : "=r" (val)
- :
- : "cc");
-
- return val;
-}
-
-static unsigned int read_asicid(void)
-{
- unsigned int *address;
-
- if (u8500_is_earlydrop() || cpu_is_u8500v1())
- address = (void *) U8500_ASIC_ID_LOC_ED_V1;
- else
- address = (void *) U8500_ASIC_ID_LOC_V2;
-
- return readl(address);
-}
-
-int u8500_is_earlydrop(void)
-{
- return read_cpuid() == CPUID_DB8500ED;
-}
-
-int cpu_is_u8500v1(void)
-{
- return read_cpuid() == CPUID_DB8500V1;
-}
-
-int cpu_is_u8500v11(void)
-{
- return read_asicid() == ASICID_DB8500V11;
-}
-
-int cpu_is_u8500v2(void)
-{
- return read_cpuid() == CPUID_DB8500V2;
-}
/*
* Miscellaneous platform dependent initialisations