diff options
author | Wenyou Yang <wenyou.yang@atmel.com> | 2017-09-13 14:58:53 +0800 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2017-09-14 16:02:45 -0400 |
commit | 245cbc583db7c1ca52aa32428b8e86f3449d4af2 (patch) | |
tree | 121815188b7254c2e8a3f8671b0666fdf0d885a7 /arch/arm/mach-at91/armv7/sama5d2_devices.c | |
parent | b5c13daca4f27e537f8d609f5b73b0f1bb4e7a8c (diff) |
ARM: at91: Get the Chip ID of SAMA5D2 SiP
The SAMA5D2 SiP(System in Package) has different Chip IDs in the
CHIPID and CHIP_EXID registers.
Signed-off-by: Wenyou Yang <wenyou.yang@microchip.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'arch/arm/mach-at91/armv7/sama5d2_devices.c')
-rw-r--r-- | arch/arm/mach-at91/armv7/sama5d2_devices.c | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/arch/arm/mach-at91/armv7/sama5d2_devices.c b/arch/arm/mach-at91/armv7/sama5d2_devices.c index 978eac29bd..de1d9b5bfb 100644 --- a/arch/arm/mach-at91/armv7/sama5d2_devices.c +++ b/arch/arm/mach-at91/armv7/sama5d2_devices.c @@ -10,11 +10,20 @@ #include <asm/arch/clk.h> #include <asm/arch/sama5d2.h> -char *get_cpu_name() +int cpu_is_sama5d2(void) { + unsigned int chip_id = get_chip_id(); + + return ((chip_id == ARCH_ID_SAMA5D2) || + (chip_id == ARCH_ID_SAMA5D2_SIP)) ? 1 : 0; +} + +char *get_cpu_name(void) +{ + unsigned int chip_id = get_chip_id(); unsigned int extension_id = get_extension_chip_id(); - if (cpu_is_sama5d2()) { + if (chip_id == ARCH_ID_SAMA5D2) { switch (extension_id) { case ARCH_EXID_SAMA5D21CU: return "SAMA5D21"; @@ -41,6 +50,19 @@ char *get_cpu_name() } } + if ((chip_id == ARCH_ID_SAMA5D2) || (chip_id == ARCH_ID_SAMA5D2_SIP)) { + switch (extension_id) { + case ARCH_EXID_SAMA5D225C_D1M: + return "SAMA5D225 128M bits DDR2 SDRAM"; + case ARCH_EXID_SAMA5D27C_D5M: + return "SAMA5D27 512M bits DDR2 SDRAM"; + case ARCH_EXID_SAMA5D27C_D1G: + return "SAMA5D27 1G bits DDR2 SDRAM"; + case ARCH_EXID_SAMA5D28C_D1G: + return "SAMA5D28 1G bits DDR2 SDRAM"; + } + } + return "Unknown CPU type"; } |