diff options
author | Arnd Bergmann <arnd@arndb.de> | 2021-02-02 17:58:32 +0100 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2021-02-02 17:58:32 +0100 |
commit | 528587ea03b1db948bd3a1b0ecdf42a0b92f0fe7 (patch) | |
tree | 7cdf67fa35c91fc819e335ad875f42821af6c499 | |
parent | af6e05f171145298d6a6aba29c88c595258d2829 (diff) | |
parent | fe119977677e7dd3ddb4ab52678b46b804148eb5 (diff) |
Merge tag 'arm-soc/for-5.12/devicetree-arm64' of https://github.com/Broadcom/stblinux into arm/dt
This pull request contains Broadcom ARM64-based SoCs Device Tree changes
for 5.12 please pull the following:
- Rafal continues to add support for the 4906/4908 SoC family and adds
a Device Tree for the Netgear R8000P router (4906-based), describes
the NAND controller of the 4908 more appropriately (based on the older
63138 DSL SoC), describes the 4908 PCIe reset controller, internal
Ethernet switch (Starfighter 2 switch) and finally the Power
Management Bus (PMB)
- Scott removes all of the SATA-related Device Tree nodes since SATA
is unused on the Stingray product line
* tag 'arm-soc/for-5.12/devicetree-arm64' of https://github.com/Broadcom/stblinux:
arm64: dts: broadcom: Remove SATA from Stingray
arm64: dts: broadcom: bcm4908: describe PMB block
arm64: dts: broadcom: bcm4908: describe internal switch
arm64: dts: broadcom: bcm4908: describe PCIe reset controller
arm64: dts: broadcom: bcm4908: use proper NAND binding
arm64: dts: broadcom: bcm4908: add BCM4906 Netgear R8000P DTS files
dt-bindings: arm: bcm: document Netgear R8000P binding
Link: https://lore.kernel.org/r/20210131221721.685974-4-f.fainelli@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
9 files changed, 239 insertions, 351 deletions
diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm4908.yaml b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm4908.yaml index 5fec063d9a13..e55731f43c84 100644 --- a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm4908.yaml +++ b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm4908.yaml @@ -19,6 +19,8 @@ properties: oneOf: - description: BCM4906 based boards items: + - enum: + - netgear,r8000p - const: brcm,bcm4906 - const: brcm,bcm4908 diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/Makefile b/arch/arm64/boot/dts/broadcom/bcm4908/Makefile index ef26c23603ce..ebebc0cd421f 100644 --- a/arch/arm64/boot/dts/broadcom/bcm4908/Makefile +++ b/arch/arm64/boot/dts/broadcom/bcm4908/Makefile @@ -1,2 +1,3 @@ # SPDX-License-Identifier: GPL-2.0 +dtb-$(CONFIG_ARCH_BCM4908) += bcm4906-netgear-r8000p.dtb dtb-$(CONFIG_ARCH_BCM4908) += bcm4908-asus-gt-ac5300.dtb diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts new file mode 100644 index 000000000000..ee3ed612274c --- /dev/null +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts @@ -0,0 +1,52 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> +#include <dt-bindings/leds/common.h> + +#include "bcm4906.dtsi" + +/ { + compatible = "netgear,r8000p", "brcm,bcm4906", "brcm,bcm4908"; + model = "Netgear R8000P"; + + memory@0 { + device_type = "memory"; + reg = <0x00 0x00 0x00 0x20000000>; + }; + + leds { + compatible = "gpio-leds"; + + wps { + function = LED_FUNCTION_WPS; + color = <LED_COLOR_ID_WHITE>; + gpios = <&gpio0 10 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&nandcs { + nand-ecc-strength = <4>; + nand-ecc-step-size = <512>; + nand-on-flash-bbt; + + #address-cells = <1>; + #size-cells = <0>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "cferom"; + reg = <0x0 0x100000>; + }; + + partition@100000 { + label = "firmware"; + reg = <0x100000 0x4400000>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906.dtsi b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906.dtsi new file mode 100644 index 000000000000..66023d553524 --- /dev/null +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906.dtsi @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "bcm4908.dtsi" + +/ { + cpus { + /delete-node/ cpu@2; + + /delete-node/ cpu@3; + }; + + pmu { + compatible = "arm,cortex-a53-pmu"; + interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; + interrupt-affinity = <&cpu0>, <&cpu1>; + }; +}; diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts index 13c6b86eef21..6e4ad66ff536 100644 --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts @@ -44,6 +44,57 @@ }; }; +&ports { + port@0 { + label = "lan2"; + }; + + port@1 { + label = "lan1"; + }; + + port@2 { + label = "lan6"; + }; + + port@3 { + label = "lan5"; + }; + + /* External BCM53134S switch */ + port@7 { + label = "sw"; + reg = <7>; + + fixed-link { + speed = <1000>; + full-duplex; + }; + }; +}; + +&mdio { + /* lan8 */ + ethernet-phy@0 { + reg = <0>; + }; + + /* lan7 */ + ethernet-phy@1 { + reg = <1>; + }; + + /* lan4 */ + ethernet-phy@2 { + reg = <2>; + }; + + /* lan3 */ + ethernet-phy@3 { + reg = <3>; + }; +}; + &nandcs { nand-ecc-strength = <4>; nand-ecc-step-size = <512>; diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi index f873dc44ce9c..9354077f74cd 100644 --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi @@ -108,7 +108,7 @@ compatible = "simple-bus"; #address-cells = <1>; #size-cells = <1>; - ranges = <0x00 0x00 0x80000000 0x10000>; + ranges = <0x00 0x00 0x80000000 0x281000>; usb@c300 { compatible = "generic-ehci"; @@ -130,6 +130,104 @@ interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; }; + + ethernet-switch@80000 { + compatible = "simple-bus"; + #size-cells = <1>; + #address-cells = <1>; + ranges = <0 0x80000 0x50000>; + + ethernet-switch@0 { + compatible = "brcm,bcm4908-switch"; + reg = <0x0 0x40000>, + <0x40000 0x110>, + <0x40340 0x30>, + <0x40380 0x30>, + <0x40600 0x34>, + <0x40800 0x208>; + reg-names = "core", "reg", "intrl2_0", + "intrl2_1", "fcb", "acb"; + interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; + brcm,num-gphy = <5>; + brcm,num-rgmii-ports = <2>; + + #address-cells = <1>; + #size-cells = <0>; + + ports: ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + phy-mode = "internal"; + phy-handle = <&phy8>; + }; + + port@1 { + reg = <1>; + phy-mode = "internal"; + phy-handle = <&phy9>; + }; + + port@2 { + reg = <2>; + phy-mode = "internal"; + phy-handle = <&phy10>; + }; + + port@3 { + reg = <3>; + phy-mode = "internal"; + phy-handle = <&phy11>; + }; + }; + }; + + mdio: mdio@405c0 { + compatible = "brcm,unimac-mdio"; + reg = <0x405c0 0x8>; + reg-names = "mdio"; + #size-cells = <0>; + #address-cells = <1>; + + phy8: ethernet-phy@8 { + reg = <8>; + }; + + phy9: ethernet-phy@9 { + reg = <9>; + }; + + phy10: ethernet-phy@a { + reg = <10>; + }; + + phy11: ethernet-phy@b { + reg = <11>; + }; + + phy12: ethernet-phy@c { + reg = <12>; + }; + }; + }; + + procmon: syscon@280000 { + compatible = "simple-bus"; + reg = <0x280000 0x1000>; + ranges; + + #address-cells = <1>; + #size-cells = <1>; + + power-controller@2800c0 { + compatible = "brcm,bcm4908-pmb"; + reg = <0x2800c0 0x40>; + #power-domain-cells = <1>; + }; + }; }; bus@ff800000 { @@ -164,7 +262,7 @@ nand@1800 { #address-cells = <1>; #size-cells = <0>; - compatible = "brcm,brcmnand-v7.1", "brcm,brcmnand"; + compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand"; reg = <0x1800 0x600>, <0x2000 0x10>; reg-names = "nand", "nand-int-base"; interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; @@ -177,6 +275,21 @@ }; }; + misc@2600 { + compatible = "brcm,misc", "simple-mfd"; + reg = <0x2600 0xe4>; + + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x00 0x2600 0xe4>; + + reset-controller@2644 { + compatible = "brcm,bcm4908-misc-pcie-reset"; + reg = <0x44 0x04>; + #reset-cells = <1>; + }; + }; + reboot { compatible = "syscon-reboot"; regmap = <&timer>; diff --git a/arch/arm64/boot/dts/broadcom/stingray/bcm958742-base.dtsi b/arch/arm64/boot/dts/broadcom/stingray/bcm958742-base.dtsi index 43aa5e9c0020..8fe7325cfbb2 100644 --- a/arch/arm64/boot/dts/broadcom/stingray/bcm958742-base.dtsi +++ b/arch/arm64/boot/dts/broadcom/stingray/bcm958742-base.dtsi @@ -56,70 +56,6 @@ }; }; -&sata0 { - status = "okay"; -}; - -&sata_phy0{ - status = "okay"; -}; - -&sata1 { - status = "okay"; -}; - -&sata_phy1{ - status = "okay"; -}; - -&sata2 { - status = "okay"; -}; - -&sata_phy2{ - status = "okay"; -}; - -&sata3 { - status = "okay"; -}; - -&sata_phy3{ - status = "okay"; -}; - -&sata4 { - status = "okay"; -}; - -&sata_phy4{ - status = "okay"; -}; - -&sata5 { - status = "okay"; -}; - -&sata_phy5{ - status = "okay"; -}; - -&sata6 { - status = "okay"; -}; - -&sata_phy6{ - status = "okay"; -}; - -&sata7 { - status = "okay"; -}; - -&sata_phy7{ - status = "okay"; -}; - &pwm { status = "okay"; }; diff --git a/arch/arm64/boot/dts/broadcom/stingray/stingray-sata.dtsi b/arch/arm64/boot/dts/broadcom/stingray/stingray-sata.dtsi deleted file mode 100644 index 8c68e0c26f1b..000000000000 --- a/arch/arm64/boot/dts/broadcom/stingray/stingray-sata.dtsi +++ /dev/null @@ -1,278 +0,0 @@ -/* - * BSD LICENSE - * - * Copyright(c) 2016-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 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. - */ - - sata { - compatible = "simple-bus"; - #address-cells = <1>; - #size-cells = <1>; - ranges = <0x0 0x0 0x67d00000 0x00800000>; - - sata0: ahci@0 { - compatible = "brcm,iproc-ahci", "generic-ahci"; - reg = <0x00000000 0x1000>; - reg-names = "ahci"; - interrupts = <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - - sata0_port0: sata-port@0 { - reg = <0>; - phys = <&sata0_phy0>; - phy-names = "sata-phy"; - }; - }; - - sata_phy0: sata_phy@2100 { - compatible = "brcm,iproc-sr-sata-phy"; - reg = <0x00002100 0x1000>; - reg-names = "phy"; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - - sata0_phy0: sata-phy@0 { - reg = <0>; - #phy-cells = <0>; - }; - }; - - sata1: ahci@10000 { - compatible = "brcm,iproc-ahci", "generic-ahci"; - reg = <0x00010000 0x1000>; - reg-names = "ahci"; - interrupts = <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - - sata1_port0: sata-port@0 { - reg = <0>; - phys = <&sata1_phy0>; - phy-names = "sata-phy"; - }; - }; - - sata_phy1: sata_phy@12100 { - compatible = "brcm,iproc-sr-sata-phy"; - reg = <0x00012100 0x1000>; - reg-names = "phy"; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - - sata1_phy0: sata-phy@0 { - reg = <0>; - #phy-cells = <0>; - }; - }; - - sata2: ahci@20000 { - compatible = "brcm,iproc-ahci", "generic-ahci"; - reg = <0x00020000 0x1000>; - reg-names = "ahci"; - interrupts = <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - - sata2_port0: sata-port@0 { - reg = <0>; - phys = <&sata2_phy0>; - phy-names = "sata-phy"; - }; - }; - - sata_phy2: sata_phy@22100 { - compatible = "brcm,iproc-sr-sata-phy"; - reg = <0x00022100 0x1000>; - reg-names = "phy"; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - - sata2_phy0: sata-phy@0 { - reg = <0>; - #phy-cells = <0>; - }; - }; - - sata3: ahci@30000 { - compatible = "brcm,iproc-ahci", "generic-ahci"; - reg = <0x00030000 0x1000>; - reg-names = "ahci"; - interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - - sata3_port0: sata-port@0 { - reg = <0>; - phys = <&sata3_phy0>; - phy-names = "sata-phy"; - }; - }; - - sata_phy3: sata_phy@32100 { - compatible = "brcm,iproc-sr-sata-phy"; - reg = <0x00032100 0x1000>; - reg-names = "phy"; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - - sata3_phy0: sata-phy@0 { - reg = <0>; - #phy-cells = <0>; - }; - }; - - sata4: ahci@100000 { - compatible = "brcm,iproc-ahci", "generic-ahci"; - reg = <0x00100000 0x1000>; - reg-names = "ahci"; - interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - - sata4_port0: sata-port@0 { - reg = <0>; - phys = <&sata4_phy0>; - phy-names = "sata-phy"; - }; - }; - - sata_phy4: sata_phy@102100 { - compatible = "brcm,iproc-sr-sata-phy"; - reg = <0x00102100 0x1000>; - reg-names = "phy"; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - - sata4_phy0: sata-phy@0 { - reg = <0>; - #phy-cells = <0>; - }; - }; - - sata5: ahci@110000 { - compatible = "brcm,iproc-ahci", "generic-ahci"; - reg = <0x00110000 0x1000>; - reg-names = "ahci"; - interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - - sata5_port0: sata-port@0 { - reg = <0>; - phys = <&sata5_phy0>; - phy-names = "sata-phy"; - }; - }; - - sata_phy5: sata_phy@112100 { - compatible = "brcm,iproc-sr-sata-phy"; - reg = <0x00112100 0x1000>; - reg-names = "phy"; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - - sata5_phy0: sata-phy@0 { - reg = <0>; - #phy-cells = <0>; - }; - }; - - sata6: ahci@120000 { - compatible = "brcm,iproc-ahci", "generic-ahci"; - reg = <0x00120000 0x1000>; - reg-names = "ahci"; - interrupts = <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - - sata6_port0: sata-port@0 { - reg = <0>; - phys = <&sata6_phy0>; - phy-names = "sata-phy"; - }; - }; - - sata_phy6: sata_phy@122100 { - compatible = "brcm,iproc-sr-sata-phy"; - reg = <0x00122100 0x1000>; - reg-names = "phy"; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - - sata6_phy0: sata-phy@0 { - reg = <0>; - #phy-cells = <0>; - }; - }; - - sata7: ahci@130000 { - compatible = "brcm,iproc-ahci", "generic-ahci"; - reg = <0x00130000 0x1000>; - reg-names = "ahci"; - interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - - sata7_port0: sata-port@0 { - reg = <0>; - phys = <&sata7_phy0>; - phy-names = "sata-phy"; - }; - }; - - sata_phy7: sata_phy@132100 { - compatible = "brcm,iproc-sr-sata-phy"; - reg = <0x00132100 0x1000>; - reg-names = "phy"; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - - sata7_phy0: sata-phy@0 { - reg = <0>; - #phy-cells = <0>; - }; - }; - }; diff --git a/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi b/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi index b425b12c3ed2..2ffb2c92182a 100644 --- a/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi +++ b/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi @@ -285,7 +285,6 @@ }; #include "stingray-fs4.dtsi" - #include "stingray-sata.dtsi" #include "stingray-pcie.dtsi" #include "stingray-usb.dtsi" @@ -309,12 +308,6 @@ #size-cells = <0>; }; - mdio@2 { /* SATA */ - reg = <0x2>; - #address-cells = <1>; - #size-cells = <0>; - }; - mdio@3 { /* USB */ reg = <0x3>; #address-cells = <1>; |