mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-08 08:02:59 -04:00
Merge tag 'arm-soc/for-6.14/devicetree' of https://github.com/Broadcom/stblinux into soc/dt
This pull request contains Broadcom ARM-based SoCs Device Tree updates for 6.14, please pull the following: - Rob removes some unused and undocumented properties pertaining to the SPI flash controller on Broadcom boards - Linus adds a number of BCM6846 peripherals: HWRNG, watchdog, GPIO, MDIO, LED controller, DMA and then proceeds with adding support for the GEnexsis XG6846B PON router - Rosen sets the MAC address NVMEM reference on the Meraki MR26 platform * tag 'arm-soc/for-6.14/devicetree' of https://github.com/Broadcom/stblinux: ARM: dts: meraki-mr26: set mac address for gmac0 ARM: dts: broadcom: Add Genexis XG6846B DTS file dt-bindings: arm: bcmbca: Add Genexis XG6846B dt-bindings: vendor-prefixes: Add Genexis ARM: dts: bcm6846: Add ARM PL081 DMA block ARM: dts: bcm6846: Add LED controller ARM: dts: bcm6846: Add MDIO control block ARM: dts: bcm6846: Add GPIO blocks ARM: dts: bcm6846: Enable watchdog ARM: dts: bcm6846: Add iproc rng arm: dts: broadcom: Remove unused and undocumented properties Link: https://lore.kernel.org/r/20250109224756.3632025-1-florian.fainelli@broadcom.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
@@ -115,6 +115,7 @@ properties:
|
||||
items:
|
||||
- enum:
|
||||
- brcm,bcm96846
|
||||
- genexis,xg6846b
|
||||
- const: brcm,bcm6846
|
||||
- const: brcm,bcmbca
|
||||
|
||||
|
||||
@@ -575,6 +575,8 @@ patternProperties:
|
||||
description: Gemtek Technology Co., Ltd.
|
||||
"^genesys,.*":
|
||||
description: Genesys Logic, Inc.
|
||||
"^genexis,.*":
|
||||
description: Genexis BV/AB
|
||||
"^geniatech,.*":
|
||||
description: Geniatech, Inc.
|
||||
"^giantec,.*":
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -59,6 +59,9 @@ &uart1 {
|
||||
|
||||
&gmac0 {
|
||||
status = "okay";
|
||||
|
||||
nvmem-cells = <&macaddr_board_config_66>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&gmac1 {
|
||||
@@ -102,8 +105,25 @@ partition@600000 {
|
||||
};
|
||||
|
||||
partition@800000 {
|
||||
compatible = "linux,ubi";
|
||||
label = "ubi";
|
||||
reg = <0x800000 0x7780000>;
|
||||
|
||||
volumes {
|
||||
ubi-volume-board-config {
|
||||
volname = "board-config";
|
||||
|
||||
nvmem-layout {
|
||||
compatible = "fixed-layout";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_board_config_66: macaddr@66 {
|
||||
reg = <0x66 0x6>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -32,7 +32,6 @@ &uart1 {
|
||||
|
||||
&qspi {
|
||||
status = "okay";
|
||||
bspi-sel = <0>;
|
||||
|
||||
flash: flash@0 {
|
||||
compatible = "m25p80";
|
||||
|
||||
244
arch/arm/boot/dts/broadcom/bcm6846-genexis-xg6846b.dts
Normal file
244
arch/arm/boot/dts/broadcom/bcm6846-genexis-xg6846b.dts
Normal file
@@ -0,0 +1,244 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright 2024 Linus Walleij <linus.walleij@linaro.org>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm6846.dtsi"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
/ {
|
||||
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 = <KEY_RESTART>;
|
||||
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_COLOR_ID_GREEN>;
|
||||
};
|
||||
|
||||
led@1 {
|
||||
reg = <1>;
|
||||
active-low;
|
||||
function = "ext";
|
||||
color = <LED_COLOR_ID_AMBER>;
|
||||
};
|
||||
|
||||
led@3 {
|
||||
reg = <3>;
|
||||
active-low;
|
||||
function = LED_FUNCTION_WAN;
|
||||
color = <LED_COLOR_ID_AMBER>;
|
||||
};
|
||||
|
||||
led@4 {
|
||||
reg = <4>;
|
||||
active-low;
|
||||
function = LED_FUNCTION_WAN;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
|
||||
led@5 {
|
||||
reg = <5>;
|
||||
active-low;
|
||||
function = LED_FUNCTION_POWER;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
|
||||
led@6 {
|
||||
reg = <6>;
|
||||
active-low;
|
||||
function = LED_FUNCTION_POWER;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
};
|
||||
|
||||
led@15 {
|
||||
reg = <15>;
|
||||
active-low;
|
||||
function = LED_FUNCTION_USB;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
|
||||
led@7 {
|
||||
/* Activity 03 */
|
||||
reg = <7>;
|
||||
active-low;
|
||||
function = "lan1";
|
||||
color = <LED_COLOR_ID_AMBER>;
|
||||
};
|
||||
|
||||
led@8 {
|
||||
/* Activity 04 */
|
||||
reg = <8>;
|
||||
active-low;
|
||||
function = "lan1";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
|
||||
led@9 {
|
||||
/* Activity 03 */
|
||||
reg = <9>;
|
||||
active-low;
|
||||
function = "lan2";
|
||||
color = <LED_COLOR_ID_AMBER>;
|
||||
};
|
||||
|
||||
led@10 {
|
||||
/* Activity 04 */
|
||||
reg = <10>;
|
||||
active-low;
|
||||
function = "lan2";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
|
||||
led@11 {
|
||||
/* Activity 03 */
|
||||
reg = <11>;
|
||||
active-low;
|
||||
function = "lan3";
|
||||
color = <LED_COLOR_ID_AMBER>;
|
||||
};
|
||||
|
||||
led@12 {
|
||||
/* Activity 04 */
|
||||
reg = <12>;
|
||||
active-low;
|
||||
function = "lan3";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
|
||||
led@13 {
|
||||
/* Activity 03 */
|
||||
reg = <13>;
|
||||
active-low;
|
||||
function = "lan4";
|
||||
color = <LED_COLOR_ID_AMBER>;
|
||||
};
|
||||
|
||||
led@14 {
|
||||
/* Activity 04 */
|
||||
reg = <14>;
|
||||
active-low;
|
||||
function = "lan4";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
};
|
||||
|
||||
&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>;
|
||||
};
|
||||
};
|
||||
@@ -99,6 +99,91 @@ bus@ff800000 {
|
||||
#size-cells = <1>;
|
||||
ranges = <0 0xff800000 0x800000>;
|
||||
|
||||
watchdog@480 {
|
||||
compatible = "brcm,bcm6345-wdt";
|
||||
reg = <0x480 0x10>;
|
||||
};
|
||||
|
||||
/* GPIOs 0 .. 31 */
|
||||
gpio0: gpio@500 {
|
||||
compatible = "brcm,bcm6345-gpio";
|
||||
reg = <0x500 0x04>, <0x520 0x04>;
|
||||
reg-names = "dirout", "dat";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* GPIOs 32 .. 63 */
|
||||
gpio1: gpio@504 {
|
||||
compatible = "brcm,bcm6345-gpio";
|
||||
reg = <0x504 0x04>, <0x524 0x04>;
|
||||
reg-names = "dirout", "dat";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* GPIOs 64 .. 95 */
|
||||
gpio2: gpio@508 {
|
||||
compatible = "brcm,bcm6345-gpio";
|
||||
reg = <0x508 0x04>, <0x528 0x04>;
|
||||
reg-names = "dirout", "dat";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* GPIOs 96 .. 127 */
|
||||
gpio3: gpio@50c {
|
||||
compatible = "brcm,bcm6345-gpio";
|
||||
reg = <0x50c 0x04>, <0x52c 0x04>;
|
||||
reg-names = "dirout", "dat";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* GPIOs 128 .. 159 */
|
||||
gpio4: gpio@510 {
|
||||
compatible = "brcm,bcm6345-gpio";
|
||||
reg = <0x510 0x04>, <0x530 0x04>;
|
||||
reg-names = "dirout", "dat";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* GPIOs 160 .. 191 */
|
||||
gpio5: gpio@514 {
|
||||
compatible = "brcm,bcm6345-gpio";
|
||||
reg = <0x514 0x04>, <0x534 0x04>;
|
||||
reg-names = "dirout", "dat";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* GPIOs 192 .. 223 */
|
||||
gpio6: gpio@518 {
|
||||
compatible = "brcm,bcm6345-gpio";
|
||||
reg = <0x518 0x04>, <0x538 0x04>;
|
||||
reg-names = "dirout", "dat";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* GPIOs 224 .. 255 */
|
||||
gpio7: gpio@51c {
|
||||
compatible = "brcm,bcm6345-gpio";
|
||||
reg = <0x51c 0x04>, <0x53c 0x04>;
|
||||
reg-names = "dirout", "dat";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart0: serial@640 {
|
||||
compatible = "brcm,bcm6345-uart";
|
||||
reg = <0x640 0x1b>;
|
||||
@@ -108,6 +193,19 @@ uart0: serial@640 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
rng@b80 {
|
||||
compatible = "brcm,iproc-rng200";
|
||||
reg = <0xb80 0x28>;
|
||||
};
|
||||
|
||||
leds: led-controller@800 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "brcm,bcm63138-leds";
|
||||
reg = <0x800 0xdc>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hsspi: spi@1000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@@ -133,5 +231,27 @@ nandcs: nand@0 {
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
mdio: mdio@2060 {
|
||||
compatible = "brcm,bcm6846-mdio";
|
||||
reg = <0x02060 0x10>, <0x5a068 0x4>;
|
||||
reg-names = "mdio", "mdio_indir_rw";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pl081_dma: dma-controller@59000 {
|
||||
compatible = "arm,pl081", "arm,primecell";
|
||||
// The magic B105F00D info is missing
|
||||
arm,primecell-periphid = <0x00041081>;
|
||||
reg = <0x59000 0x1000>;
|
||||
interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
|
||||
memcpy-burst-size = <256>;
|
||||
memcpy-bus-width = <32>;
|
||||
clocks = <&periph_clk>;
|
||||
clock-names = "apb_pclk";
|
||||
#dma-cells = <2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -74,7 +74,6 @@ partition@1000000 {
|
||||
&spi_nor {
|
||||
status = "okay";
|
||||
spi-max-frequency = <62500000>;
|
||||
m25p,default-addr-width = <3>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
@@ -84,7 +84,6 @@ partition@1000000 {
|
||||
&spi_nor {
|
||||
status = "okay";
|
||||
spi-max-frequency = <62500000>;
|
||||
m25p,default-addr-width = <3>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
@@ -135,7 +135,6 @@ nand_sel: nand_sel {
|
||||
|
||||
&qspi {
|
||||
status = "okay";
|
||||
bspi-sel = <0>;
|
||||
flash: flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
@@ -135,7 +135,6 @@ nand_sel: nand_sel {
|
||||
|
||||
&qspi {
|
||||
status = "okay";
|
||||
bspi-sel = <0>;
|
||||
flash: flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
@@ -151,7 +151,6 @@ nand_sel: nand_sel {
|
||||
|
||||
&qspi {
|
||||
status = "okay";
|
||||
bspi-sel = <0>;
|
||||
flash: flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
@@ -139,7 +139,6 @@ nand_sel: nand_sel {
|
||||
|
||||
&qspi {
|
||||
status = "okay";
|
||||
bspi-sel = <0>;
|
||||
flash: flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
@@ -143,7 +143,6 @@ &sata_phy0 {
|
||||
|
||||
&qspi {
|
||||
status = "okay";
|
||||
bspi-sel = <0>;
|
||||
flash: flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
@@ -150,7 +150,6 @@ nand_sel: nand_sel {
|
||||
|
||||
&qspi {
|
||||
status = "okay";
|
||||
bspi-sel = <0>;
|
||||
flash: flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
@@ -154,7 +154,6 @@ &pwm {
|
||||
|
||||
&qspi {
|
||||
status = "okay";
|
||||
bspi-sel = <0>;
|
||||
flash: flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
@@ -139,7 +139,6 @@ nand_sel: nand_sel {
|
||||
|
||||
&qspi {
|
||||
status = "okay";
|
||||
bspi-sel = <0>;
|
||||
flash: flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
Reference in New Issue
Block a user