Skip to content

Commit

Permalink
ARM: add initial support for Marvell Berlin SoCs
Browse files Browse the repository at this point in the history
This adds initial support for the Marvell Berlin SoC family with
Armada 1500 (88DE3100) and Armada 1500-mini (88DE3005) SoCs.

Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Reviewed-by: Jason Cooper <jason@lakedaemon.net>
Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
  • Loading branch information
shesselba committed Dec 13, 2013
1 parent a909211 commit 1c37fa1
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 0 deletions.
2 changes: 2 additions & 0 deletions arch/arm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
1 change: 1 addition & 0 deletions arch/arm/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
29 changes: 29 additions & 0 deletions arch/arm/mach-berlin/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
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 change: 1 addition & 0 deletions arch/arm/mach-berlin/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
obj-y += berlin.o
39 changes: 39 additions & 0 deletions arch/arm/mach-berlin/berlin.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/*
* 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

0 comments on commit 1c37fa1

Please sign in to comment.