Commit d72b7128 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'arm-soc/for-4.4/soc' of http://github.com/Broadcom/stblinux into next/soc

Merge "Broadcom soc changes for v4.4 (try 2)" from Florian Fainelli:

This pull request contains the following Broadcom SoC platform and driver changes:

- Brian Norris create a drivers/soc/brcmstb/ stub as a place holder for SoC-specific
  code which is coming next

- Florian Fainelli adds support for configuring the BCM7xxx SoCs Bus Interface Unit
  with their specific write-pairing setting, which must be saved and restored during
  system-wide suspend/resume, and consequently updates the brcmstb machine code to
  initialize the BIU

- Jon Mason adds support for the Northstar Plus SoCs by introducing a custom machine
  descriptor matching their compatible string and setting up the PL310 L2 cache and
  enabling the relevant ARM errata for their Cortex-A9

* tag 'arm-soc/for-4.4/soc' of http://github.com/Broadcom/stblinux:
  ARM: brcmstb: Setup BIU control registers during boot
  soc: brcmstb: Add Bus Interface Unit control setup
  soc: add stubs for brcmstb SoC's
  ARM: NSP: Add basic support for Broadcom Northstar Plus SoC
parents aebd774d c4a8ea9e
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -35,6 +35,20 @@ config ARCH_BCM_CYGNUS
	  BCM11300, BCM11320, BCM11350, BCM11360,
	  BCM58300, BCM58302, BCM58303, BCM58305.

config ARCH_BCM_NSP
	bool "Broadcom Northstar Plus SoC Support" if ARCH_MULTI_V7
	select ARCH_BCM_IPROC
	select ARM_ERRATA_754322
	select ARM_ERRATA_775420
	help
	  Support for Broadcom Northstar Plus SoC.
	  Broadcom Northstar Plus family of SoCs are used for switching control
	  and management applications as well as residential router/gateway
	  applications. The SoC features dual core Cortex A9 ARM CPUs,
	  integrating several peripheral interfaces including multiple Gigabit
	  Ethernet PHYs, DDR3 memory, PCIE Gen-2, USB 2.0 and USB 3.0, serial and
	  NAND flash, SATA and several other IO controllers.

config ARCH_BCM_5301X
	bool "Broadcom BCM470X / BCM5301X ARM SoC" if ARCH_MULTI_V7
	select ARCH_BCM_IPROC
@@ -147,6 +161,7 @@ config ARCH_BRCMSTB
	select BCM7120_L2_IRQ
	select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE
	select ARCH_WANT_OPTIONAL_GPIOLIB
	select SOC_BRCMSTB
	help
	  Say Y if you intend to run the kernel on a Broadcom ARM-based STB
	  chipset.
+4 −1
Original line number Diff line number Diff line
#
# Copyright (C) 2012-2014 Broadcom Corporation
# Copyright (C) 2012-2015 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
@@ -13,6 +13,9 @@
# Cygnus
obj-$(CONFIG_ARCH_BCM_CYGNUS) +=  bcm_cygnus.o

# Northstar Plus
obj-$(CONFIG_ARCH_BCM_NSP) += bcm_nsp.o

# BCM281XX
obj-$(CONFIG_ARCH_BCM_281XX)	+= board_bcm281xx.o

+25 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2015 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 <asm/mach/arch.h>

static const char *const bcm_nsp_dt_compat[] __initconst = {
	"brcm,nsp",
	NULL,
};

DT_MACHINE_START(NSP_DT, "Broadcom Northstar Plus SoC")
	.l2c_aux_val	= 0,
	.l2c_aux_mask	= ~0,
	.dt_compat = bcm_nsp_dt_compat,
MACHINE_END
+9 −0
Original line number Diff line number Diff line
@@ -12,11 +12,19 @@
 */

#include <linux/init.h>
#include <linux/irqchip.h>
#include <linux/of_platform.h>
#include <linux/soc/brcmstb/brcmstb.h>

#include <asm/mach-types.h>
#include <asm/mach/arch.h>

static void __init brcmstb_init_irq(void)
{
	irqchip_init();
	brcmstb_biuctrl_init();
}

static const char *const brcmstb_match[] __initconst = {
	"brcm,bcm7445",
	"brcm,brcmstb",
@@ -25,4 +33,5 @@ static const char *const brcmstb_match[] __initconst = {

DT_MACHINE_START(BRCMSTB, "Broadcom STB (Flattened Device Tree)")
	.dt_compat	= brcmstb_match,
	.init_irq	= brcmstb_init_irq,
MACHINE_END
+1 −0
Original line number Diff line number Diff line
menu "SOC (System On Chip) specific Drivers"

source "drivers/soc/brcmstb/Kconfig"
source "drivers/soc/mediatek/Kconfig"
source "drivers/soc/qcom/Kconfig"
source "drivers/soc/sunxi/Kconfig"
Loading