diff options
author | Philipp Tomsich <philipp.tomsich@theobroma-systems.com> | 2016-09-06 22:51:16 +0200 |
---|---|---|
committer | Klaus Goger <klaus.goger@theobroma-systems.com> | 2016-09-18 15:57:25 +0200 |
commit | 7a050793220758e948380641e3406699369cead1 (patch) | |
tree | a1534ab1d133f7c46ad84fe35789276cd7a3470f /arch | |
parent | ae07c5c0cc8173d198fd2a420ac31958a1bbbf32 (diff) |
sunxi: Support chip-id reading on sun9i (A80)
The chip-id on the sun9i resides in the SID block, but at an offset
from what we'd expect with older variants.
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/cpu/armv7/sunxi/cpu_info.c | 8 | ||||
-rw-r--r-- | arch/arm/include/asm/arch-sunxi/cpu_sun9i.h | 1 |
2 files changed, 8 insertions, 1 deletions
diff --git a/arch/arm/cpu/armv7/sunxi/cpu_info.c b/arch/arm/cpu/armv7/sunxi/cpu_info.c index b9bc70ca86..86340e5792 100644 --- a/arch/arm/cpu/armv7/sunxi/cpu_info.c +++ b/arch/arm/cpu/armv7/sunxi/cpu_info.c @@ -83,6 +83,12 @@ int print_cpuinfo(void) } #endif +#if defined(CONFIG_MACH_SUN9I) +#define SUNXI_SID_CHIPID_OFFSET 0x200 +#else +#define SUNXI_SID_CHIPID_OFFSET 0 +#endif + int sunxi_get_sid(unsigned int *sid) { #ifdef CONFIG_AXP221_POWER @@ -91,7 +97,7 @@ int sunxi_get_sid(unsigned int *sid) int i; for (i = 0; i< 4; i++) - sid[i] = readl(SUNXI_SID_BASE + 4 * i); + sid[i] = readl(SUNXI_SID_BASE + SUNXI_SID_CHIPID_OFFSET + 4 * i); return 0; #else diff --git a/arch/arm/include/asm/arch-sunxi/cpu_sun9i.h b/arch/arm/include/asm/arch-sunxi/cpu_sun9i.h index ec37bb9afb..63dcbdf08f 100644 --- a/arch/arm/include/asm/arch-sunxi/cpu_sun9i.h +++ b/arch/arm/include/asm/arch-sunxi/cpu_sun9i.h @@ -24,6 +24,7 @@ #define SUNXI_TSC_BASE (REGS_AHB0_BASE + 0x4000) #define SUNXI_GTBUS_BASE (REGS_AHB0_BASE + 0x9000) +#define SUNXI_SID_BASE (REGS_AHB0_BASE + 0xE000) #define SUNXI_MMC0_BASE (REGS_AHB0_BASE + 0x0f000) #define SUNXI_MMC1_BASE (REGS_AHB0_BASE + 0x10000) |