Commit 1c37fa10 authored by Sebastian Hesselbarth's avatar Sebastian Hesselbarth
Browse files

ARM: add initial support for Marvell Berlin SoCs



This adds initial support for the Marvell Berlin SoC family with
Armada 1500 (88DE3100) and Armada 1500-mini (88DE3005) SoCs.

Signed-off-by: default avatarSebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Reviewed-by: default avatarJason Cooper <jason@lakedaemon.net>
Reviewed-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: default avatarArnd Bergmann <arnd@arndb.de>
parent a9092118
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -911,6 +911,8 @@ source "arch/arm/mach-bcm/Kconfig"

source "arch/arm/mach-bcm2835/Kconfig"

source "arch/arm/mach-berlin/Kconfig"

source "arch/arm/mach-clps711x/Kconfig"

source "arch/arm/mach-cns3xxx/Kconfig"
+1 −0
Original line number Diff line number Diff line
@@ -148,6 +148,7 @@ textofs-$(CONFIG_ARCH_MSM8960) := 0x00208000
machine-$(CONFIG_ARCH_AT91)		+= at91
machine-$(CONFIG_ARCH_BCM)		+= bcm
machine-$(CONFIG_ARCH_BCM2835)		+= bcm2835
machine-$(CONFIG_ARCH_BERLIN)		+= berlin
machine-$(CONFIG_ARCH_CLPS711X)		+= clps711x
machine-$(CONFIG_ARCH_CNS3XXX)		+= cns3xxx
machine-$(CONFIG_ARCH_DAVINCI)		+= davinci
+29 −0
Original line number Diff line number Diff line
config ARCH_BERLIN
	bool "Marvell Berlin SoCs" if ARCH_MULTI_V7
	select ARM_GIC
	select GENERIC_CLOCKEVENTS
	select GENERIC_IRQ_CHIP
	select COMMON_CLK
	select DW_APB_ICTL
	select DW_APB_TIMER_OF

if ARCH_BERLIN

menu "Marvell Berlin SoC variants"

config MACH_BERLIN_BG2
	bool "Marvell Armada 1500 (BG2)"
	select CACHE_L2X0
	select CPU_PJ4B
	select HAVE_ARM_TWD if SMP
	select HAVE_SMP

config MACH_BERLIN_BG2CD
	bool "Marvell Armada 1500-mini (BG2CD)"
	select CACHE_L2X0
	select CPU_V7
	select HAVE_ARM_TWD if SMP

endmenu

endif
+1 −0
Original line number Diff line number Diff line
obj-y += berlin.o
+39 −0
Original line number Diff line number Diff line
/*
 * Device Tree support for Marvell Berlin SoCs.
 *
 * Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
 *
 * based on GPL'ed 2.6 kernel sources
 *  (c) Marvell International Ltd.
 *
 * This file is licensed under the terms of the GNU General Public
 * License version 2.  This program is licensed "as is" without any
 * warranty of any kind, whether express or implied.
 */

#include <linux/init.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/of_platform.h>
#include <asm/hardware/cache-l2x0.h>
#include <asm/mach/arch.h>

static void __init berlin_init_machine(void)
{
	/*
	 * with DT probing for L2CCs, berlin_init_machine can be removed.
	 * Note: 88DE3005 (Armada 1500-mini) uses pl310 l2cc
	 */
	l2x0_of_init(0x70c00000, 0xfeffffff);
	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
}

static const char * const berlin_dt_compat[] = {
	"marvell,berlin",
	NULL,
};

DT_MACHINE_START(BERLIN_DT, "Marvell Berlin")
	.dt_compat	= berlin_dt_compat,
	.init_machine	= berlin_init_machine,
MACHINE_END