mvebu: Add rudimental MV78230 support
authorPhil Sutter <phil@nwl.cc>
Fri, 25 Dec 2015 13:41:24 +0000 (14:41 +0100)
committerStefan Roese <sr@denx.de>
Thu, 14 Jan 2016 13:08:59 +0000 (14:08 +0100)
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>
arch/arm/mach-mvebu/cpu.c
arch/arm/mach-mvebu/include/mach/soc.h
arch/arm/mach-mvebu/serdes/axp/high_speed_env_lib.c

index 84499ea16225b5c486220363246c68e948460e62..30b175c64657111fcd536bb6a7bf80f0c7553490 100644 (file)
@@ -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;
index 9f6a2a407e3762069503f262a01e54d32bcaad59..cb216bc2cc61d5c2a14139d4538afcaefa43f70a 100644 (file)
@@ -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
index 633b89997e9f765fada097b3832d93cb2d263471..afc0cefda3c17072fde24bc7896ce52f0987236b 100644 (file)
@@ -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: