ARM: bcm: Add support for Broadcom Hurricane 2 SoC
Subsystems (7)
v2 cover ARM: bcm: Add support for Broadcom Hurricane 2 SoC
Hi all,
This patch series adds basic (boot to prompt with essential peripherals working) support for Broadcom's Hurricane 2 SoC which is found in switching applications.
This is also an iProc-family chip with a number of variations, including some in the clock controller that I have not been able to identify yet.
Changes in v2:
- fixed DTC warnings spotted with make dtbs W=1
- added Jon's ack
Florian Fainelli (10):
MAINTAINERS: Update Broadcom iProc regexp with Hurricane 2
dt-bindings: Add documentation for Broadcom Hurricane 2 SoCs
ARM: bcm: Add support for Broadcom Hurricane 2 SoC
dt-bindings: Document Broadcom Hurricane 2 clocks
clk: bcm: Add Broadcom Hurricane 2 clock support
ARM: dts: Add Broadcom Hurricane 2 DTS include file
ARM: debug: Add Hurricane 2 UART2 debug addresses
dt-bindings: Add Ubiquiti Networks vendor prefix
ARM: dts: Hurricane 2: Add basic support for Ubiquiti UniFi Switch 8
ARM: multi_v7_defconfig: Enable CONFIG_ARCH_BCM_HR2
.../devicetree/bindings/arm/bcm/brcm,hr2.txt | 14 + .../bindings/clock/brcm,iproc-clocks.txt | 14 + .../devicetree/bindings/vendor-prefixes.txt | 1 + MAINTAINERS | 1 + arch/arm/Kconfig.debug | 10 +- arch/arm/boot/dts/Makefile | 2 + arch/arm/boot/dts/bcm-hr2.dtsi | 368 +++++++++++++++++++++ arch/arm/boot/dts/bcm53340-ubnt-unifi-switch8.dts | 85 +++++ arch/arm/configs/multi_v7_defconfig | 1 + arch/arm/mach-bcm/Kconfig | 9 + arch/arm/mach-bcm/Makefile | 3 + arch/arm/mach-bcm/bcm_hr2.c | 25 ++ drivers/clk/bcm/Kconfig | 9 + drivers/clk/bcm/Makefile | 1 + drivers/clk/bcm/clk-hr2.c | 27 ++ 15 files changed, 569 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/arm/bcm/brcm,hr2.txt create mode 100644 arch/arm/boot/dts/bcm-hr2.dtsi create mode 100644 arch/arm/boot/dts/bcm53340-ubnt-unifi-switch8.dts create mode 100644 arch/arm/mach-bcm/bcm_hr2.c create mode 100644 drivers/clk/bcm/clk-hr2.c
Signature · 1 line
2.14.1
PATCH v2 1/10 MAINTAINERS: Update Broadcom iProc regexp with Hurricane 2
Update the Broadcom iProc regepx with recently added Hurricane 2 SoC support.
--- MAINTAINERS | 1 + 1 file changed, 1 insertion(+)
MAINTAINERS +1 -0
@@ -2923,6 +2923,7 @@ N: bcm583* N: bcm585* N: bcm586* N: bcm88312 +N: hr2 F: arch/arm64/boot/dts/broadcom/ns2* F: drivers/clk/bcm/clk-ns* F: drivers/pinctrl/bcm/pinctrl-ns*
Signature · 1 line
2.14.1
PATCH v2 1/10 MAINTAINERS: Update Broadcom iProc regexp with Hurricane 2
Quoted 14 lines · Florian Fainelli
Update the Broadcom iProc regepx with recently added Hurricane 2 SoC support.
Acked-by Jon Mason <[email protected]>Signed-off-by Florian Fainelli <[email protected]>--- MAINTAINERS | 1 + 1 file changed, 1 insertion(+)MAINTAINERS +0
-0
MAINTAINERS N: bcm583* · line 2924
Quoted 2 lines
MAINTAINERS +0
-0@@ -2923,6 +2923,7 @@ N: bcm583* N: bcm585* N: bcm586*
These don't match anything
Quoted 5 lines
MAINTAINERS +1
-0N: bcm88312 +N: hr2 F: arch/arm64/boot/dts/broadcom/ns2* F: drivers/clk/bcm/clk-ns* F: drivers/pinctrl/bcm/pinctrl-ns*
PATCH v2 1/10 MAINTAINERS: Update Broadcom iProc regexp with Hurricane 2
Quoted 10 lines · Joe Perches
Quoted 9 lines · Florian Fainelli
Update the Broadcom iProc regepx with recently added Hurricane 2 SoC support.
Acked-by Jon Mason <[email protected]>Signed-off-by Florian Fainelli <[email protected]>--- MAINTAINERS | 1 + 1 file changed, 1 insertion(+)
Quoted 9 lines
MAINTAINERS N: bcm583* · line 2924
Quoted 7 lines
MAINTAINERS +0
-0@@ -2923,6 +2923,7 @@ N: bcm583* N: bcm585* N: bcm586*These don't match anything
This comment is outside the scope of this patch. I'll do a clean-up separate from this series to address the issue.
Thanks,
Jon
Quoted 6 lines
Quoted 6 lines
MAINTAINERS +1
-0N: bcm88312 +N: hr2 F: arch/arm64/boot/dts/broadcom/ns2* F: drivers/clk/bcm/clk-ns* F: drivers/pinctrl/bcm/pinctrl-ns*
Florian Fainelli
AppliedRe: [PATCH v2 01/10] MAINTAINERS: Update Broadcom iProc regexp with Hurricane 2
In reply to Florian FainelliQuoted 6 lines · Florian Fainelli
Update the Broadcom iProc regepx with recently added Hurricane 2 SoC support.
Acked-by Jon Mason <[email protected]>Signed-off-by Florian Fainelli <[email protected]>---
Applied to maintainers/next, thanks!
--
Florian
PATCH v2 2/10 dt-bindings: Add documentation for Broadcom Hurricane 2 SoCs
In reply to Florian FainelliAdd binding documentation for the Broadcom Hurricane 2 SoCs used in switching control planes.
--- Documentation/devicetree/bindings/arm/bcm/brcm,hr2.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/bcm/brcm,hr2.txt
Documentation/devicetree/bindings/arm/bcm/brcm,hr2.txt new file +14 -0
@@ -0,0 +1,14 @@ +Broadcom Hurricane 2 device tree bindings +--------------------------------------- + +Broadcom Hurricane 2 family of SoCs are used for switching control. These SoCs +are based on Broadcom's iProc SoC architecture and feature a single core Cortex +A9 ARM CPUs, DDR2/DDR3 memory, PCIe GEN-2, USB 2.0 and USB 3.0, serial and NAND +flash and a PCIe attached integrated switching engine. + +Boards with Hurricane SoCs shall have the following properties: + +Required root node property: + +BCM53342 +compatible = "brcm,bcm53342", "brcm,hr2";
Signature · 1 line
2.14.1
Re: [PATCH v2 02/10] dt-bindings: Add documentation for Broadcom Hurricane 2 SoCs
Quoted 9 lines · Florian Fainelli
Add binding documentation for the Broadcom Hurricane 2 SoCs used in switching control planes.
Acked-by Jon Mason <[email protected]>Signed-off-by Florian Fainelli <[email protected]>--- Documentation/devicetree/bindings/arm/bcm/brcm,hr2.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/bcm/brcm,hr2.txt
Florian Fainelli
AppliedRe: [PATCH v2 02/10] dt-bindings: Add documentation for Broadcom Hurricane 2 SoCs
In reply to Florian FainelliQuoted 6 lines · Florian Fainelli
Add binding documentation for the Broadcom Hurricane 2 SoCs used in switching control planes.
Acked-by Jon Mason <[email protected]>Signed-off-by Florian Fainelli <[email protected]>---
Applied to devicetree/next, thanks!
--
Florian
PATCH v2 3/10 ARM: bcm: Add support for Broadcom Hurricane 2 SoC
In reply to Florian FainelliAdd a Kconfig entry point and basic machine board code for the Broadcom Hurricane 2 SoCs used in switching products.
--- arch/arm/mach-bcm/Kconfig | 9 +++++++++ arch/arm/mach-bcm/Makefile | 3 +++ arch/arm/mach-bcm/bcm_hr2.c | 25 +++++++++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 arch/arm/mach-bcm/bcm_hr2.c
arch/arm/mach-bcm/Kconfig +9 -0
@@ -36,6 +36,15 @@ config ARCH_BCM_CYGNUS BCM11300, BCM11320, BCM11350, BCM11360, BCM58300, BCM58302, BCM58303, BCM58305. +config ARCH_BCM_HR2 + bool "Broadcom Hurricane 2 SoC support" + depends on ARCH_MULTI_V7 + select ARCH_BCM_IPROC + help + Enable support for the Hurricane 2 family, + which includes the following variants: + BCM53342, BCM53343, BCM53344, BCM53346. + config ARCH_BCM_NSP bool "Broadcom Northstar Plus SoC Support" depends on ARCH_MULTI_V7
arch/arm/mach-bcm/Makefile +3 -0
@@ -13,6 +13,9 @@ # Cygnus obj-$(CONFIG_ARCH_BCM_CYGNUS) += bcm_cygnus.o +# Hurricane 2 +obj-$(CONFIG_ARCH_BCM_HR2) += bcm_hr2.o + # Northstar Plus obj-$(CONFIG_ARCH_BCM_NSP) += bcm_nsp.o
arch/arm/mach-bcm/bcm_hr2.c new file +25 -0
@@ -0,0 +1,25 @@ +/* +* Copyright (C) 2017 Broadcom +* +* 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_hr2_dt_compat[]__initconst = { +"brcm,hr2" , +NULL , +}; + +DT_MACHINE_START (BCM_HR2_DT ,"Broadcom Hurricane 2 SoC" ) + .l2c_aux_val = 0, + .l2c_aux_mask = ~0, + .dt_compat = bcm_hr2_dt_compat, +MACHINE_END
Signature · 1 line
2.14.1
Florian Fainelli
AppliedQuoted 6 lines · Florian Fainelli
Add a
Kconfigentry point and basic machine board code for the Broadcom Hurricane 2 SoCs used in switching products.Acked-by Jon Mason <[email protected]>Signed-off-by Florian Fainelli <[email protected]>---
Applied to soc/next, thanks!
--
Florian
PATCH v2 4/10 dt-bindings: Document Broadcom Hurricane 2 clocks
In reply to Florian FainelliAdd a Device Tree binding document for the Broadcom Hurricane 2 SoC which is an iProc based system.
--- .../devicetree/bindings/clock/brcm,iproc-clocks.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt +14 -0
@@ -137,6 +137,20 @@ These clock IDs are defined in: ch1_audio audiopll 2 BCM_CYGNUS_AUDIOPLL_CH1 ch2_audio audiopll 3 BCM_CYGNUS_AUDIOPLL_CH2 +Hurricane 2 +------ +PLL and leaf clock compatible strings for Hurricane 2 are: + "brcm,hr2-armpll" + +The following table defines the set of PLL/clock for Hurricane 2: + + Clock Source Index ID + --- ----- ----- --------- + crystal N/A N/A N/A + + armpll crystal N/A N/A + + Northstar and Northstar Plus ------ PLL and leaf clock compatible strings for Northstar and Northstar Plus are:
Signature · 1 line
2.14.1
Re: [PATCH v2 04/10] dt-bindings: Document Broadcom Hurricane 2 clocks
Quoted 8 lines · Florian Fainelli
Add a Device Tree binding document for the Broadcom Hurricane 2 SoC which is an iProc based system.
Acked-by Jon Mason <[email protected]>Signed-off-by Florian Fainelli <[email protected]>--- .../devicetree/bindings/clock/brcm,iproc-clocks.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
Florian Fainelli
AppliedRe: [PATCH v2 04/10] dt-bindings: Document Broadcom Hurricane 2 clocks
In reply to Florian FainelliQuoted 6 lines · Florian Fainelli
Add a Device Tree binding document for the Broadcom Hurricane 2 SoC which is an iProc based system.
Acked-by Jon Mason <[email protected]>Signed-off-by Florian Fainelli <[email protected]>---
Applied to devicetree/next, thanks!
--
Florian
PATCH v2 5/10 clk: bcm: Add Broadcom Hurricane 2 clock support
In reply to Florian FainelliAdd support for the Broadcom Hurricane 2 SoC clock controller. We can re-use the existing iProc clock library since the SoC's architecture is largely the same as its predecessors. For now, we just initialize the iProc ARM PLL.
--- drivers/clk/bcm/Kconfig | 9 +++++++++ drivers/clk/bcm/Makefile | 1 + drivers/clk/bcm/clk-hr2.c | 27 +++++++++++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 drivers/clk/bcm/clk-hr2.c
drivers/clk/bcm/Kconfig +9 -0
@@ -30,6 +30,15 @@ config CLK_BCM_CYGNUS help Enable common clock framework support for the Broadcom Cygnus SoC +config CLK_BCM_HR2 + bool "Broadcom Hurricane 2 clock support" + depends on ARCH_BCM_HR2 || COMPILE_TEST + select COMMON_CLK_IPROC + default ARCH_BCM_HR2 + help + Enable common clock framework support for the Broadcom Hurricane 2 + SoC + config CLK_BCM_NSP bool "Broadcom Northstar/Northstar Plus clock support" depends on ARCH_BCM_5301X || ARCH_BCM_NSP || COMPILE_TEST
drivers/clk/bcm/Makefile +1 -0
@@ -8,6 +8,7 @@ obj-$(CONFIG_ARCH_BCM2835) += clk-bcm2835.o obj-$(CONFIG_ARCH_BCM2835) += clk-bcm2835-aux.o obj-$(CONFIG_ARCH_BCM_53573) += clk-bcm53573-ilp.o obj-$(CONFIG_CLK_BCM_CYGNUS) += clk-cygnus.o +obj-$(CONFIG_CLK_BCM_HR2) += clk-hr2.o obj-$(CONFIG_CLK_BCM_NSP) += clk-nsp.o obj-$(CONFIG_CLK_BCM_NS2) += clk-ns2.o obj-$(CONFIG_CLK_BCM_SR) += clk-sr.o
drivers/clk/bcm/clk-hr2.c new file +27 -0
@@ -0,0 +1,27 @@ +/* +* Copyright (C) 2017 Broadcom +* +* 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/kernel.h> +#include <linux/err.h> +#include <linux/clk-provider.h> +#include <linux/io.h> +#include <linux/of.h> +#include <linux/of_address.h> + +#include "clk-iproc.h" + +static void __init hr2_armpll_init (struct device_node *node) +{ +iproc_armpll_setup (node); +} +CLK_OF_DECLARE (hr2_armpll,"brcm,hr2-armpll" , hr2_armpll_init);
Signature · 1 line
2.14.1
Re: [PATCH v2 05/10] clk: bcm: Add Broadcom Hurricane 2 clock support
Quoted 8 lines · Florian Fainelli
Add support for the Broadcom Hurricane 2 SoC clock controller. We can re-use the existing iProc clock library since the SoC's architecture is largely the same as its predecessors. For now, we just initialize the iProc ARM PLL.
Acked-by Jon Mason <[email protected]>Signed-off-by Florian Fainelli <[email protected]>---
Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
Florian Fainelli
AppliedRe: [PATCH v2 05/10] clk: bcm: Add Broadcom Hurricane 2 clock support
In reply to Florian FainelliQuoted 8 lines · Florian Fainelli
Add support for the Broadcom Hurricane 2 SoC clock controller. We can re-use the existing iProc clock library since the SoC's architecture is largely the same as its predecessors. For now, we just initialize the iProc ARM PLL.
Acked-by Jon Mason <[email protected]>Signed-off-by Florian Fainelli <[email protected]>---
Applied to drivers/next, thanks!
--
Florian
PATCH v2 6/10 ARM: dts: Add Broadcom Hurricane 2 DTS include file
In reply to Florian FainelliDescribe the Broadcom Hurricane 2 SoC comprised of a Cortex-A9 CPU complex along with standard iProc peripherals:
* timers
* SPI controller
* NAND controller
* a single AMAC (Ethernet MAC controller)
* dual PCIe controllers
The design is largely similar to existing iProc-based SoCs such as Northstar Plus.
--- arch/arm/boot/dts/bcm-hr2.dtsi | 368 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 368 insertions(+) create mode 100644 arch/arm/boot/dts/bcm-hr2.dtsi
arch/arm/boot/dts/bcm-hr2.dtsi new file +368 -0
@@ -0,0 +1,368 @@ +/* + * BSD LICENSE + * + * Copyright(c) 2017 Broadcom. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Broadcom Corporation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <dt-bindings/interrupt-controller/arm-gic.h> +#include <dt-bindings/interrupt-controller/irq.h> + +/ { + compatible = "brcm,hr2"; + model = "Broadcom Hurricane 2 SoC"; + interrupt-parent = <&gic>; + #address-cells = <1>; + #size-cells = <1>; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu0: cpu at 0 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + next-level-cache = <&L2>; + reg = <0x0>; + }; + }; + + pmu { + compatible = "arm,cortex-a9-pmu"; + interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; + interrupt-affinity = <&cpu0>; + }; + + mpcore at 19000000 { + compatible = "simple-bus"; + ranges = <0x00000000 0x19000000 0x00023000>; + #address-cells = <1>; + #size-cells = <1>; + + a9pll: arm_clk at 0 { + #clock-cells = <0>; + compatible = "brcm,hr2-armpll"; + clocks = <&osc>; + reg = <0x0 0x1000>; + }; + + timer at 20200 { + compatible = "arm,cortex-a9-global-timer"; + reg = <0x20200 0x100>; + interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&periph_clk>; + }; + + twd-timer at 20600 { + compatible = "arm,cortex-a9-twd-timer"; + reg = <0x20600 0x20>; + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | + IRQ_TYPE_LEVEL_HIGH)>; + clocks = <&periph_clk>; + }; + + twd-watchdog at 20620 { + compatible = "arm,cortex-a9-twd-wdt"; + reg = <0x20620 0x20>; + interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | + IRQ_TYPE_LEVEL_HIGH)>; + clocks = <&periph_clk>; + }; + + gic: interrupt-controller at 21000 { + compatible = "arm,cortex-a9-gic"; + #interrupt-cells = <3>; + #address-cells = <0>; + interrupt-controller; + reg = <0x21000 0x1000>, + <0x20100 0x100>; + }; + + L2: l2-cache at 22000 { + compatible = "arm,pl310-cache"; + reg = <0x22000 0x1000>; + cache-unified; + cache-level = <2>; + }; + }; + + clocks { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + osc: oscillator { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <25000000>; + }; + + periph_clk: periph_clk { + #clock-cells = <0>; + compatible = "fixed-factor-clock"; + clocks = <&a9pll>; + clock-div = <2>; + clock-mult = <1>; + }; + }; + + axi at 18000000 { + compatible = "simple-bus"; + ranges = <0x00000000 0x18000000 0x0011c40c>; + #address-cells = <1>; + #size-cells = <1>; + + uart0: serial at 300 { + compatible = "ns16550a"; + reg = <0x0300 0x100>; + interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&osc>; + status = "disabled"; + }; + + uart1: serial at 400 { + compatible = "ns16550a"; + reg = <0x0400 0x100>; + interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&osc>; + status = "disabled"; + }; + + dma at 20000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0x20000 0x1000>; + interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; + #dma-cells = <1>; + status = "disabled"; + }; + + amac0: ethernet at 22000 { + compatible = "brcm,nsp-amac"; + reg = <0x22000 0x1000>, + <0x110000 0x1000>; + reg-names = "amac_base", "idm_base"; + interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>; + status = "disabled"; + }; + + nand: nand at 26000 { + compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1"; + reg = <0x26000 0x600>, + <0x11b408 0x600>, + <0x026f00 0x20>; + reg-names = "nand", "iproc-idm", "iproc-ext"; + interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; + + #address-cells = <1>; + #size-cells = <0>; + + brcm,nand-has-wp; + }; + + gpiob: gpio at 30000 { + compatible = "brcm,iproc-hr2-gpio", "brcm,iproc-gpio"; + reg = <0x30000 0x50>; + #gpio-cells = <2>; + gpio-controller; + ngpios = <4>; + interrupt-controller; + interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; + }; + + pwm: pwm at 31000 { + compatible = "brcm,iproc-pwm"; + reg = <0x31000 0x28>; + clocks = <&osc>; + #pwm-cells = <3>; + status = "disabled"; + }; + + rng: rng at 33000 { + compatible = "brcm,bcm-nsp-rng"; + reg = <0x33000 0x14>; + }; + + qspi: qspi at 27200 { + compatible = "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi"; + reg = <0x027200 0x184>, + <0x027000 0x124>, + <0x11c408 0x004>, + <0x0273a0 0x01c>; + reg-names = "mspi", "bspi", "intr_regs", + "intr_status_reg"; + interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "spi_lr_fullness_reached", + "spi_lr_session_aborted", + "spi_lr_impatient", + "spi_lr_session_done", + "spi_lr_overhead", + "mspi_done", + "mspi_halted"; + num-cs = <2>; + #address-cells = <1>; + #size-cells = <0>; + + /* partitions defined in board DTS */ + }; + + ccbtimer0: timer at 34000 { + compatible = "arm,sp804"; + reg = <0x34000 0x1000>; + interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; + }; + + ccbtimer1: timer at 35000 { + compatible = "arm,sp804"; + reg = <0x35000 0x1000>; + interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; + }; + + i2c0: i2c at 38000 { + compatible = "brcm,iproc-i2c"; + reg = <0x38000 0x50>; + #address-cells = <1>; + #size-cells = <0>; + interrupts = <GIC_SPI 95 IRQ_TYPE_NONE>; + clock-frequency = <100000>; + }; + + watchdog at 39000 { + compatible = "arm,sp805", "arm,primecell"; + reg = <0x39000 0x1000>; + interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>; + }; + + i2c1: i2c at 3b000 { + compatible = "brcm,iproc-i2c"; + reg = <0x3b000 0x50>; + #address-cells = <1>; + #size-cells = <0>; + interrupts = <GIC_SPI 96 IRQ_TYPE_NONE>; + clock-frequency = <100000>; + }; + }; + + pflash: nor at 20000000 { + compatible = "cfi-flash", "jedec-flash"; + reg = <0x20000000 0x04000000>; + status = "disabled"; + #address-cells = <1>; + #size-cells = <1>; + + /* partitions defined in board DTS */ + }; + + pcie0: pcie at 18012000 { + compatible = "brcm,iproc-pcie"; + reg = <0x18012000 0x1000>; + + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 0>; + interrupt-map = <0 0 0 0 &gic GIC_SPI 186 IRQ_TYPE_NONE>; + + linux,pci-domain = <0>; + + bus-range = <0x00 0xff>; + + #address-cells = <3>; + #size-cells = <2>; + device_type = "pci"; + + /* Note: The HW does not support I/O resources. So, + * only the memory resource range is being specified. + */ + ranges = <0x82000000 0 0x08000000 0x08000000 0 0x8000000>; + + status = "disabled"; + + msi-parent = <&msi0>; + msi0: msi-controller { + compatible = "brcm,iproc-msi"; + msi-controller; + interrupt-parent = <&gic>; + interrupts = <GIC_SPI 182 IRQ_TYPE_NONE>, + <GIC_SPI 183 IRQ_TYPE_NONE>, + <GIC_SPI 184 IRQ_TYPE_NONE>, + <GIC_SPI 185 IRQ_TYPE_NONE>; + brcm,pcie-msi-inten; + }; + }; + + pcie1: pcie at 18013000 { + compatible = "brcm,iproc-pcie"; + reg = <0x18013000 0x1000>; + + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 0>; + interrupt-map = <0 0 0 0 &gic GIC_SPI 192 IRQ_TYPE_NONE>; + + linux,pci-domain = <1>; + + bus-range = <0x00 0xff>; + + #address-cells = <3>; + #size-cells = <2>; + device_type = "pci"; + + /* Note: The HW does not support I/O resources. So, + * only the memory resource range is being specified. + */ + ranges = <0x82000000 0 0x40000000 0x40000000 0 0x8000000>; + + status = "disabled"; + + msi-parent = <&msi1>; + msi1: msi-controller { + compatible = "brcm,iproc-msi"; + msi-controller; + interrupt-parent = <&gic>; + interrupts = <GIC_SPI 188 IRQ_TYPE_NONE>, + <GIC_SPI 189 IRQ_TYPE_NONE>, + <GIC_SPI 190 IRQ_TYPE_NONE>, + <GIC_SPI 191 IRQ_TYPE_NONE>; + brcm,pcie-msi-inten; + }; + }; +};
Signature · 1 line
2.14.1
Florian Fainelli
AppliedRe: [PATCH v2 06/10] ARM: dts: Add Broadcom Hurricane 2 DTS include file
Quoted 9 lines · Florian Fainelli
Describe the Broadcom Hurricane 2 SoC comprised of a Cortex-A9 CPU complex along with standard iProc peripherals:
* timers
* SPI controller
* NAND controller
* a single AMAC (Ethernet MAC controller)
* dual PCIe controllers
Quoted 6 lines
The design is largely similar to existing iProc-based SoCs such as Northstar Plus.
Acked-by Jon Mason <[email protected]>Signed-off-by Florian Fainelli <[email protected]>---
Applied to devicetree/next, thanks!
--
Florian
PATCH v2 7/10 ARM: debug: Add Hurricane 2 UART2 debug addresses
In reply to Florian FainelliBroadcom Hurricane 2 SoCs typically use their secondary UART for debug/console, provide a known good location for that.
--- arch/arm/Kconfig.debug | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
arch/arm/Kconfig.debug +9 -1
@@ -169,6 +169,11 @@ choice depends on ARCH_BCM_5301X || ARCH_BCM_NSP select DEBUG_UART_8250 + config DEBUG_BCM_HR2 + bool "Kernel low-level debugging on Hurricane 2 UART2" + depends on ARCH_BCM_HR2 + select DEBUG_UART_8250 + config DEBUG_BCM_KONA_UART bool "Kernel low-level debugging messages via BCM KONA UART" depends on ARCH_BCM_MOBILE
@@ -1508,6 +1513,7 @@ config DEBUG_UART_PHYS default 0x11009000 if DEBUG_MT8135_UART3 default 0x16000000 if DEBUG_INTEGRATOR default 0x18000300 if DEBUG_BCM_5301X + default 0x18000400 if DEBUG_BCM_HR2 default 0x18010000 if DEBUG_SIRFATLAS7_UART0 default 0x18020000 if DEBUG_SIRFATLAS7_UART1 default 0x1c090000 if DEBUG_VEXPRESS_UART0_RS1
@@ -1623,6 +1629,7 @@ config DEBUG_UART_VIRT default 0xf01fb000 if DEBUG_NOMADIK_UART default 0xf0201000 if DEBUG_BCM2835 || DEBUG_BCM2836 default 0xf1000300 if DEBUG_BCM_5301X + default 0xf1000400 if DEBUG_BCM_HR2 default 0xf1002000 if DEBUG_MT8127_UART0 default 0xf1006000 if DEBUG_MT6589_UART0 default 0xf1009000 if DEBUG_MT8135_UART3
@@ -1728,7 +1735,8 @@ config DEBUG_UART_8250_SHIFT int "Register offset shift for the 8250 debug UART" depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250 default 0 if DEBUG_FOOTBRIDGE_COM1 || ARCH_IOP32X || DEBUG_BCM_5301X || \ - DEBUG_OMAP7XXUART1 || DEBUG_OMAP7XXUART2 || DEBUG_OMAP7XXUART3 + DEBUG_BCM_HR2 || DEBUG_OMAP7XXUART1 || DEBUG_OMAP7XXUART2 || \ + DEBUG_OMAP7XXUART3 default 2 config DEBUG_UART_8250_WORD
Signature · 1 line
2.14.1
Florian Fainelli
AppliedRe: [PATCH v2 07/10] ARM: debug: Add Hurricane 2 UART2 debug addresses
Quoted 6 lines · Florian Fainelli
Broadcom Hurricane 2 SoCs typically use their secondary UART for debug/console, provide a known good location for that.
Acked-by Jon Mason <[email protected]>Signed-off-by Florian Fainelli <[email protected]>---
Applied to soc/next, thanks!
--
Florian
PATCH v2 8/10 dt-bindings: Add Ubiquiti Networks vendor prefix
In reply to Florian FainelliUse the stock ticker: UBNT as the vendor prefix for Ubiquiti Networks.
--- Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/vendor-prefixes.txt +1 -0
@@ -351,6 +351,7 @@ truly Truly Semiconductors Limited tsd Theobroma Systems Design und Consulting GmbH tyan Tyan Computer Corporation ucrobotics uCRobotics +ubnt Ubiquiti Networks udoo Udoo uniwest United Western Technologies Corp (UniWest) upisemi uPI Semiconductor Corp.
Signature · 1 line
2.14.1
Re: [PATCH v2 08/10] dt-bindings: Add Ubiquiti Networks vendor prefix
Quoted 7 lines · Florian Fainelli
Use the stock ticker: UBNT as the vendor prefix for Ubiquiti Networks.
Acked-by Jon Mason <[email protected]>Signed-off-by Florian Fainelli <[email protected]>--- Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+)
Florian Fainelli
AppliedRe: [PATCH v2 08/10] dt-bindings: Add Ubiquiti Networks vendor prefix
In reply to Florian FainelliQuoted 5 lines · Florian Fainelli
Use the stock ticker: UBNT as the vendor prefix for Ubiquiti Networks.
Acked-by Jon Mason <[email protected]>Signed-off-by Florian Fainelli <[email protected]>---
Applied to devicetree/next, thanks!
--
Florian
PATCH v2 9/10 ARM: dts: Hurricane 2: Add basic support for Ubiquiti UniFi Switch 8
In reply to Florian FainelliAdd basic board support for the Ubiquiti UniFi Switch 8 port model. This is a small home and office use managed switch based on the BCM53342 switching control SoC.
--- arch/arm/boot/dts/Makefile | 2 + arch/arm/boot/dts/bcm53340-ubnt-unifi-switch8.dts | 85 +++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 arch/arm/boot/dts/bcm53340-ubnt-unifi-switch8.dts
arch/arm/boot/dts/Makefile +2 -0
@@ -117,6 +117,8 @@ dtb-$(CONFIG_ARCH_BCM_CYGNUS) += \ bcm911360k.dtb \ bcm958300k.dtb \ bcm958305k.dtb +dtb-$(CONFIG_ARCH_BCM_HR2) += \ + bcm53340-ubnt-unifi-switch8.dtb dtb-$(CONFIG_ARCH_BCM_MOBILE) += \ bcm28155-ap.dtb \ bcm21664-garnet.dtb \
arch/arm/boot/dts/bcm53340-ubnt-unifi-switch8.dts new file +85 -0
85 lines not on this page · raw message
Signature · 1 line
2.14.1
Florian Fainelli
AppliedRe: [PATCH v2 09/10] ARM: dts: Hurricane 2: Add basic support for Ubiquiti UniFi Switch 8
Quoted 7 lines · Florian Fainelli
Add basic board support for the Ubiquiti UniFi Switch 8 port model. This is a small home and office use managed switch based on the BCM53342 switching control SoC.
Acked-by Jon Mason <[email protected]>Signed-off-by Florian Fainelli <[email protected]>---
Applied to devicetree/next, thanks!
--
Florian
PATCH v2 10/10 ARM: multi_v7_defconfig: Enable CONFIG_ARCH_BCM_HR2
In reply to Florian FainelliTurn on Broadcom Hurrican 2 SoC support by default to get access to its drivers.
--- arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+)
arch/arm/configs/multi_v7_defconfig +1 -0
@@ -31,6 +31,7 @@ CONFIG_SOC_SAMA5D3=y CONFIG_SOC_SAMA5D4=y CONFIG_ARCH_BCM=y CONFIG_ARCH_BCM_CYGNUS=y +CONFIG_ARCH_BCM_HR2=y CONFIG_ARCH_BCM_NSP=y CONFIG_ARCH_BCM_21664=y CONFIG_ARCH_BCM_281XX=y
Signature · 1 line
2.14.1
Florian Fainelli
AppliedRe: [PATCH v2 10/10] ARM: multi_v7_defconfig: Enable CONFIG_ARCH_BCM_HR2
Quoted 6 lines · Florian Fainelli
Turn on Broadcom Hurrican 2 SoC support by default to get access to its drivers.
Acked-by Jon Mason <[email protected]>Signed-off-by Florian Fainelli <[email protected]>---
Applied to defconfig/next, thanks!
--
Florian