From: Linus Walleij Date: Sat, 19 Oct 2024 20:39:38 +0000 (+0200) Subject: ARM: dts: broadcom: Add Genexis XG6846B DTS file X-Git-Tag: v6.14-rc1~103^2~11^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=618775c9007d663ab1b2d600324f377e6ba21771;p=thirdparty%2Flinux.git ARM: dts: broadcom: Add Genexis XG6846B DTS file This adds a device tree for the Genexis XG6846B router. Signed-off-by: Linus Walleij Link: https://lore.kernel.org/r/20241019-genexis-xg6846b-base-v3-9-8375a0e1f89f@linaro.org Signed-off-by: Florian Fainelli --- diff --git a/arch/arm/boot/dts/broadcom/Makefile b/arch/arm/boot/dts/broadcom/Makefile index 5881bcc95eba6..d23cf466127b0 100644 --- a/arch/arm/boot/dts/broadcom/Makefile +++ b/arch/arm/boot/dts/broadcom/Makefile @@ -36,6 +36,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \ bcm2835-rpi-zero.dtb \ bcm2835-rpi-zero-w.dtb dtb-$(CONFIG_ARCH_BCMBCA) += \ + bcm6846-genexis-xg6846b.dtb \ bcm947622.dtb \ bcm963138.dtb \ bcm963138dvt.dtb \ diff --git a/arch/arm/boot/dts/broadcom/bcm6846-genexis-xg6846b.dts b/arch/arm/boot/dts/broadcom/bcm6846-genexis-xg6846b.dts new file mode 100644 index 0000000000000..a3616fb7b3a8d --- /dev/null +++ b/arch/arm/boot/dts/broadcom/bcm6846-genexis-xg6846b.dts @@ -0,0 +1,244 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright 2024 Linus Walleij + */ + +/dts-v1/; + +#include "bcm6846.dtsi" +#include +#include +#include + +/ { + model = "Genexis XG6846B Ethernet layer 2/3 router"; + compatible = "genexis,xg6846b", "brcm,bcm6846", "brcm,bcmbca"; + + aliases { + serial0 = &uart0; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + /* Micron D9PTK 256 MB RAM */ + memory@0 { + device_type = "memory"; + reg = <0x0 0x10000000>; + }; + + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + secondary-boot@0 { + no-map; + reg = <0x00000000 0x00008000>; + }; + pmc3-firmware@8000 { + no-map; + reg = <0x00008000 0x00100000>; + }; + }; + + gpio-keys { + compatible = "gpio-keys-polled"; + poll-interval = <20000>; + + /* Called "canyon rescue button" in the vendor DTB */ + button-restart { + label = "Reset"; + linux,code = ; + gpios = <&gpio0 41 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&gpio0 { + status = "okay"; +}; + +&gpio1 { + status = "okay"; +}; + +&gpio2 { + status = "okay"; + /* Totally 79 GPIOs are available */ + ngpios = <15>; +}; + +&uart0 { + status = "okay"; +}; + +&leds { + status = "okay"; + brcm,serial-shift-bits = <16>; + + led@0 { + reg = <0>; + active-low; + function = "ext"; + color = ; + }; + + led@1 { + reg = <1>; + active-low; + function = "ext"; + color = ; + }; + + led@3 { + reg = <3>; + active-low; + function = LED_FUNCTION_WAN; + color = ; + }; + + led@4 { + reg = <4>; + active-low; + function = LED_FUNCTION_WAN; + color = ; + }; + + led@5 { + reg = <5>; + active-low; + function = LED_FUNCTION_POWER; + color = ; + }; + + led@6 { + reg = <6>; + active-low; + function = LED_FUNCTION_POWER; + color = ; + }; + + led@15 { + reg = <15>; + active-low; + function = LED_FUNCTION_USB; + color = ; + }; + + led@7 { + /* Activity 03 */ + reg = <7>; + active-low; + function = "lan1"; + color = ; + }; + + led@8 { + /* Activity 04 */ + reg = <8>; + active-low; + function = "lan1"; + color = ; + }; + + led@9 { + /* Activity 03 */ + reg = <9>; + active-low; + function = "lan2"; + color = ; + }; + + led@10 { + /* Activity 04 */ + reg = <10>; + active-low; + function = "lan2"; + color = ; + }; + + led@11 { + /* Activity 03 */ + reg = <11>; + active-low; + function = "lan3"; + color = ; + }; + + led@12 { + /* Activity 04 */ + reg = <12>; + active-low; + function = "lan3"; + color = ; + }; + + led@13 { + /* Activity 03 */ + reg = <13>; + active-low; + function = "lan4"; + color = ; + }; + + led@14 { + /* Activity 04 */ + reg = <14>; + active-low; + function = "lan4"; + color = ; + }; +}; + +&hsspi { + status = "okay"; +}; + +&nand_controller { + brcm,wp-not-connected; + status = "okay"; +}; + +&nandcs { + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; + + /* Winbond W29N02GV, 256MB with 128KB erase blocks */ + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + loader@0 { + label = "loader"; + reg = <0x00000000 0x00400000>; + }; + image@400000 { + label = "image"; + reg = <0x00400000 0x0fb00000>; + }; + /* 0x00ff0000-0x00ffffff: bad block list */ + }; +}; + +&mdio { + status = "okay"; + + phy1: ethernet-phy@1 { + reg = <1>; + }; + phy2: ethernet-phy@2 { + reg = <2>; + }; + phy3: ethernet-phy@3 { + reg = <3>; + }; + phy4: ethernet-phy@4 { + reg = <4>; + }; + phy21: ethernet-phy@21 { + reg = <21>; + }; +};