ARM: BCM63XX: add basic support for the Broadcom BCM63138 DSL SoC
authorFlorian Fainelli <f.fainelli@gmail.com>
Thu, 20 Feb 2014 23:53:13 +0000 (15:53 -0800)
committerFlorian Fainelli <f.fainelli@gmail.com>
Wed, 17 Sep 2014 17:56:06 +0000 (10:56 -0700)
This patch adds basic support for the Broadcom BCM63138 DSL SoC which is
using a dual-core Cortex A9 system. Add the very minimum required code
boot Linux on this SoC.

Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Documentation/devicetree/bindings/arm/bcm/bcm63138.txt [new file with mode: 0644]
arch/arm/mach-bcm/Kconfig
arch/arm/mach-bcm/Makefile
arch/arm/mach-bcm/bcm63xx.c [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/arm/bcm/bcm63138.txt b/Documentation/devicetree/bindings/arm/bcm/bcm63138.txt
new file mode 100644 (file)
index 0000000..bd49987
--- /dev/null
@@ -0,0 +1,9 @@
+Broadcom BCM63138 DSL System-on-a-Chip device tree bindings
+-----------------------------------------------------------
+
+Boards compatible with the BCM63138 DSL System-on-a-Chip should have the
+following properties:
+
+Required root node property:
+
+compatible: should be "brcm,bcm63138"
index fc938005ad3997d8d0e9ab28e03f4d5b01772303..2abad742516df753e487721b42e6d9cfdb50d91c 100644 (file)
@@ -99,6 +99,23 @@ config ARCH_BCM_5301X
          different SoC or with the older BCM47XX and BCM53XX based
          network SoC using a MIPS CPU, they are supported by arch/mips/bcm47xx
 
+config ARCH_BCM_63XX
+       bool "Broadcom BCM63xx DSL SoC" if ARCH_MULTI_V7
+       depends on MMU
+       select ARM_ERRATA_754322
+       select ARM_ERRATA_764369 if SMP
+       select ARM_GIC
+       select ARM_GLOBAL_TIMER
+       select CACHE_L2X0
+       select HAVE_ARM_ARCH_TIMER
+       select HAVE_ARM_TWD if SMP
+       select HAVE_ARM_SCU if SMP
+       select HAVE_SMP
+       help
+         This enables support for systems based on Broadcom DSL SoCs.
+         It currently supports the 'BCM63XX' ARM-based family, which includes
+         the BCM63138 variant.
+
 config ARCH_BRCMSTB
        bool "Broadcom BCM7XXX based boards" if ARCH_MULTI_V7
        depends on MMU
index 67c492aabf4d5ebd3769ff01e304e9371acafafc..cbbb0be54554d9e751cbed74ba3ca338a827573f 100644 (file)
@@ -34,6 +34,9 @@ obj-$(CONFIG_ARCH_BCM2835)    += board_bcm2835.o
 # BCM5301X
 obj-$(CONFIG_ARCH_BCM_5301X)   += bcm_5301x.o
 
+# BCM63XXx
+obj-$(CONFIG_ARCH_BCM_63XX)    := bcm63xx.o
+
 ifeq ($(CONFIG_ARCH_BRCMSTB),y)
 obj-y                          += brcmstb.o
 obj-$(CONFIG_SMP)              += headsmp-brcmstb.o platsmp-brcmstb.o
diff --git a/arch/arm/mach-bcm/bcm63xx.c b/arch/arm/mach-bcm/bcm63xx.c
new file mode 100644 (file)
index 0000000..c4c66ae
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2014 Broadcom Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation version 2.
+ *
+ * This program is distributed "as is" WITHOUT ANY WARRANTY of any
+ * kind, whether express or implied; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <linux/of_platform.h>
+
+#include <asm/mach/arch.h>
+
+static const char * const bcm63xx_dt_compat[] = {
+       "brcm,bcm63138",
+       NULL
+};
+
+DT_MACHINE_START(BCM63XXX_DT, "BCM63xx DSL SoC")
+       .dt_compat      = bcm63xx_dt_compat,
+       .l2c_aux_val    = 0,
+       .l2c_aux_mask   = ~0,
+MACHINE_END