ARM: mach-at91: add support for sama7g5 chip id and extended id definition

Add SAMA7G5 series chip id definitions to align with linux SoC driver.
Add support for SAMA7G5 System-In-Package (SIP):
SAMA7G54D1G, SAMA7G54D2G, SAMA7G54D4G.

Signed-off-by: Mihai Sain <mihai.sain@microchip.com>
This commit is contained in:
Mihai Sain 2022-12-02 09:47:19 +02:00 committed by Eugen Hristev
parent 4df35b38d1
commit a60c5a986e
2 changed files with 53 additions and 1 deletions

View file

@ -4,7 +4,31 @@
* Eugen Hristev <eugen.hristev@microchip.com>
*/
#include <asm/arch/sama7g5.h>
char *get_cpu_name(void)
{
return "SAMA7G5";
unsigned int extension_id = get_extension_chip_id();
if (cpu_is_sama7g5())
switch (extension_id) {
case ARCH_EXID_SAMA7G51:
return "SAMA7G51";
case ARCH_EXID_SAMA7G52:
return "SAMA7G52";
case ARCH_EXID_SAMA7G53:
return "SAMA7G53";
case ARCH_EXID_SAMA7G54:
return "SAMA7G54";
case ARCH_EXID_SAMA7G54_D1G:
return "SAMA7G54 1Gb DDR3L SiP";
case ARCH_EXID_SAMA7G54_D2G:
return "SAMA7G54 2Gb DDR3L SiP";
case ARCH_EXID_SAMA7G54_D4G:
return "SAMA7G54 4Gb DDR3L SiP";
default:
return "Unknown CPU type";
}
else
return "Unknown CPU type";
}

View file

@ -67,7 +67,35 @@
#define ATMEL_BASE_PIT64BC ATMEL_BASE_PIT64B0
/* SAMA7G5 series chip id definitions */
#define ARCH_ID_SAMA7G5 0x80162100
#define ARCH_EXID_SAMA7G51 0x00000003
#define ARCH_EXID_SAMA7G52 0x00000002
#define ARCH_EXID_SAMA7G53 0x00000001
#define ARCH_EXID_SAMA7G54 0x00000000
#define ARCH_EXID_SAMA7G54_D1G 0x00000018
#define ARCH_EXID_SAMA7G54_D2G 0x00000020
#define ARCH_EXID_SAMA7G54_D4G 0x00000028
#define cpu_is_sama7g5() (get_chip_id() == ARCH_ID_SAMA7G5)
#define cpu_is_sama7g51() (cpu_is_sama7g5() && \
(get_extension_chip_id() == ARCH_EXID_SAMA7G51))
#define cpu_is_sama7g52() (cpu_is_sama7g5() && \
(get_extension_chip_id() == ARCH_EXID_SAMA7G52))
#define cpu_is_sama7g53() (cpu_is_sama7g5() && \
(get_extension_chip_id() == ARCH_EXID_SAMA7G53))
#define cpu_is_sama7g54() (cpu_is_sama7g5() && \
(get_extension_chip_id() == ARCH_EXID_SAMA7G54))
#define cpu_is_sama7g54d1g() (cpu_is_sama7g5() && \
(get_extension_chip_id() == ARCH_EXID_SAMA7G54_D1G))
#define cpu_is_sama7g54d2g() (cpu_is_sama7g5() && \
(get_extension_chip_id() == ARCH_EXID_SAMA7G54_D2G))
#define cpu_is_sama7g54d4g() (cpu_is_sama7g5() && \
(get_extension_chip_id() == ARCH_EXID_SAMA7G54_D4G))
#ifndef __ASSEMBLY__
unsigned int get_chip_id(void);
unsigned int get_extension_chip_id(void);
char *get_cpu_name(void);
#endif