summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorPhil Sutter <phil@nwl.cc>2015-12-25 14:41:24 +0100
committerStefan Roese <sr@denx.de>2016-01-14 14:08:59 +0100
commit6202953df4feca4bb564141a7efbc8c697531203 (patch)
treeac88c8cf26f141882ac63f4cfedf7c7c4601fa23 /arch
parent4444d230acdf45f2c2d78becec40db2d158757e8 (diff)
downloadu-boot-imx-6202953df4feca4bb564141a7efbc8c697531203.zip
u-boot-imx-6202953df4feca4bb564141a7efbc8c697531203.tar.gz
u-boot-imx-6202953df4feca4bb564141a7efbc8c697531203.tar.bz2
mvebu: Add rudimental MV78230 support
This adds basic support for Marvell's MV78230 SoC which belongs to the Armada XP series. Signed-off-by: Phil Sutter <phil@nwl.cc> Acked-by: Stefan Roese <sr@denx.de> Reviewed-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-mvebu/cpu.c16
-rw-r--r--arch/arm/mach-mvebu/include/mach/soc.h1
-rw-r--r--arch/arm/mach-mvebu/serdes/axp/high_speed_env_lib.c6
3 files changed, 17 insertions, 6 deletions
diff --git a/arch/arm/mach-mvebu/cpu.c b/arch/arm/mach-mvebu/cpu.c
index 84499ea..30b175c 100644
--- a/arch/arm/mach-mvebu/cpu.c
+++ b/arch/arm/mach-mvebu/cpu.c
@@ -49,13 +49,16 @@ int mvebu_soc_family(void)
{
u16 devid = (readl(MVEBU_REG_PCIE_DEVID) >> 16) & 0xffff;
- if ((devid == SOC_MV78260_ID) || (devid == SOC_MV78460_ID))
+ switch (devid) {
+ case SOC_MV78230_ID:
+ case SOC_MV78260_ID:
+ case SOC_MV78460_ID:
return MVEBU_SOC_AXP;
-
- if (devid == SOC_88F6810_ID || devid == SOC_88F6820_ID ||
- devid == SOC_88F6828_ID)
+ case SOC_88F6810_ID:
+ case SOC_88F6820_ID:
+ case SOC_88F6828_ID:
return MVEBU_SOC_A38X;
-
+ }
return MVEBU_SOC_UNKNOWN;
}
@@ -140,6 +143,9 @@ int print_cpuinfo(void)
puts("SoC: ");
switch (devid) {
+ case SOC_MV78230_ID:
+ puts("MV78230-");
+ break;
case SOC_MV78260_ID:
puts("MV78260-");
break;
diff --git a/arch/arm/mach-mvebu/include/mach/soc.h b/arch/arm/mach-mvebu/include/mach/soc.h
index 9f6a2a4..cb216bc 100644
--- a/arch/arm/mach-mvebu/include/mach/soc.h
+++ b/arch/arm/mach-mvebu/include/mach/soc.h
@@ -11,6 +11,7 @@
#ifndef _MVEBU_SOC_H
#define _MVEBU_SOC_H
+#define SOC_MV78230_ID 0x7823
#define SOC_MV78260_ID 0x7826
#define SOC_MV78460_ID 0x7846
#define SOC_88F6810_ID 0x6810
diff --git a/arch/arm/mach-mvebu/serdes/axp/high_speed_env_lib.c b/arch/arm/mach-mvebu/serdes/axp/high_speed_env_lib.c
index 633b899..afc0cef 100644
--- a/arch/arm/mach-mvebu/serdes/axp/high_speed_env_lib.c
+++ b/arch/arm/mach-mvebu/serdes/axp/high_speed_env_lib.c
@@ -199,7 +199,9 @@ u16 ctrl_model_get(void)
* SoC version can't be autodetected. So we need to rely on a define
* from the config system here.
*/
-#ifdef CONFIG_MV78260
+#if defined(CONFIG_MV78230)
+ return MV_78230_DEV_ID;
+#elif defined(CONFIG_MV78260)
return MV_78260_DEV_ID;
#else
return MV_78460_DEV_ID;
@@ -217,6 +219,8 @@ u32 get_line_cfg(u32 line_num, MV_BIN_SERDES_CFG *info)
static int serdes_max_lines_get(void)
{
switch (ctrl_model_get()) {
+ case MV_78230_DEV_ID:
+ return 7;
case MV_78260_DEV_ID:
return 12;
case MV_78460_DEV_ID: