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: 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>
This commit is contained in:
Родитель
a90921185f
Коммит
1c37fa10b2
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -0,0 +1 @@
|
|||
obj-y += berlin.o
|
|
@ -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
|
Загрузка…
Ссылка в новой задаче