Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+388 -11
+1
Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml
··· 115 115 items: 116 116 - enum: 117 117 - brcm,bcm96846 118 + - genexis,xg6846b 118 119 - const: brcm,bcm6846 119 120 - const: brcm,bcmbca 120 121
+2
Documentation/devicetree/bindings/vendor-prefixes.yaml
··· 575 575 description: Gemtek Technology Co., Ltd. 576 576 "^genesys,.*": 577 577 description: Genesys Logic, Inc. 578 + "^genexis,.*": 579 + description: Genexis BV/AB 578 580 "^geniatech,.*": 579 581 description: Geniatech, Inc. 580 582 "^giantec,.*":
+1
arch/arm/boot/dts/broadcom/Makefile
··· 36 36 bcm2835-rpi-zero.dtb \ 37 37 bcm2835-rpi-zero-w.dtb 38 38 dtb-$(CONFIG_ARCH_BCMBCA) += \ 39 + bcm6846-genexis-xg6846b.dtb \ 39 40 bcm947622.dtb \ 40 41 bcm963138.dtb \ 41 42 bcm963138dvt.dtb \
+20
arch/arm/boot/dts/broadcom/bcm53015-meraki-mr26.dts
··· 59 59 60 60 &gmac0 { 61 61 status = "okay"; 62 + 63 + nvmem-cells = <&macaddr_board_config_66>; 64 + nvmem-cell-names = "mac-address"; 62 65 }; 63 66 64 67 &gmac1 { ··· 105 102 }; 106 103 107 104 partition@800000 { 105 + compatible = "linux,ubi"; 108 106 label = "ubi"; 109 107 reg = <0x800000 0x7780000>; 108 + 109 + volumes { 110 + ubi-volume-board-config { 111 + volname = "board-config"; 112 + 113 + nvmem-layout { 114 + compatible = "fixed-layout"; 115 + #address-cells = <1>; 116 + #size-cells = <1>; 117 + 118 + macaddr_board_config_66: macaddr@66 { 119 + reg = <0x66 0x6>; 120 + }; 121 + }; 122 + }; 123 + }; 110 124 }; 111 125 }; 112 126 };
-1
arch/arm/boot/dts/broadcom/bcm53340-ubnt-unifi-switch8.dts
··· 32 32 33 33 &qspi { 34 34 status = "okay"; 35 - bspi-sel = <0>; 36 35 37 36 flash: flash@0 { 38 37 compatible = "m25p80";
+244
arch/arm/boot/dts/broadcom/bcm6846-genexis-xg6846b.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright 2024 Linus Walleij <linus.walleij@linaro.org> 4 + */ 5 + 6 + /dts-v1/; 7 + 8 + #include "bcm6846.dtsi" 9 + #include <dt-bindings/gpio/gpio.h> 10 + #include <dt-bindings/input/input.h> 11 + #include <dt-bindings/leds/common.h> 12 + 13 + / { 14 + model = "Genexis XG6846B Ethernet layer 2/3 router"; 15 + compatible = "genexis,xg6846b", "brcm,bcm6846", "brcm,bcmbca"; 16 + 17 + aliases { 18 + serial0 = &uart0; 19 + }; 20 + 21 + chosen { 22 + stdout-path = "serial0:115200n8"; 23 + }; 24 + 25 + /* Micron D9PTK 256 MB RAM */ 26 + memory@0 { 27 + device_type = "memory"; 28 + reg = <0x0 0x10000000>; 29 + }; 30 + 31 + reserved-memory { 32 + #address-cells = <1>; 33 + #size-cells = <1>; 34 + ranges; 35 + 36 + secondary-boot@0 { 37 + no-map; 38 + reg = <0x00000000 0x00008000>; 39 + }; 40 + pmc3-firmware@8000 { 41 + no-map; 42 + reg = <0x00008000 0x00100000>; 43 + }; 44 + }; 45 + 46 + gpio-keys { 47 + compatible = "gpio-keys-polled"; 48 + poll-interval = <20000>; 49 + 50 + /* Called "canyon rescue button" in the vendor DTB */ 51 + button-restart { 52 + label = "Reset"; 53 + linux,code = <KEY_RESTART>; 54 + gpios = <&gpio0 41 GPIO_ACTIVE_LOW>; 55 + }; 56 + }; 57 + }; 58 + 59 + &gpio0 { 60 + status = "okay"; 61 + }; 62 + 63 + &gpio1 { 64 + status = "okay"; 65 + }; 66 + 67 + &gpio2 { 68 + status = "okay"; 69 + /* Totally 79 GPIOs are available */ 70 + ngpios = <15>; 71 + }; 72 + 73 + &uart0 { 74 + status = "okay"; 75 + }; 76 + 77 + &leds { 78 + status = "okay"; 79 + brcm,serial-shift-bits = <16>; 80 + 81 + led@0 { 82 + reg = <0>; 83 + active-low; 84 + function = "ext"; 85 + color = <LED_COLOR_ID_GREEN>; 86 + }; 87 + 88 + led@1 { 89 + reg = <1>; 90 + active-low; 91 + function = "ext"; 92 + color = <LED_COLOR_ID_AMBER>; 93 + }; 94 + 95 + led@3 { 96 + reg = <3>; 97 + active-low; 98 + function = LED_FUNCTION_WAN; 99 + color = <LED_COLOR_ID_AMBER>; 100 + }; 101 + 102 + led@4 { 103 + reg = <4>; 104 + active-low; 105 + function = LED_FUNCTION_WAN; 106 + color = <LED_COLOR_ID_GREEN>; 107 + }; 108 + 109 + led@5 { 110 + reg = <5>; 111 + active-low; 112 + function = LED_FUNCTION_POWER; 113 + color = <LED_COLOR_ID_GREEN>; 114 + }; 115 + 116 + led@6 { 117 + reg = <6>; 118 + active-low; 119 + function = LED_FUNCTION_POWER; 120 + color = <LED_COLOR_ID_RED>; 121 + }; 122 + 123 + led@15 { 124 + reg = <15>; 125 + active-low; 126 + function = LED_FUNCTION_USB; 127 + color = <LED_COLOR_ID_GREEN>; 128 + }; 129 + 130 + led@7 { 131 + /* Activity 03 */ 132 + reg = <7>; 133 + active-low; 134 + function = "lan1"; 135 + color = <LED_COLOR_ID_AMBER>; 136 + }; 137 + 138 + led@8 { 139 + /* Activity 04 */ 140 + reg = <8>; 141 + active-low; 142 + function = "lan1"; 143 + color = <LED_COLOR_ID_GREEN>; 144 + }; 145 + 146 + led@9 { 147 + /* Activity 03 */ 148 + reg = <9>; 149 + active-low; 150 + function = "lan2"; 151 + color = <LED_COLOR_ID_AMBER>; 152 + }; 153 + 154 + led@10 { 155 + /* Activity 04 */ 156 + reg = <10>; 157 + active-low; 158 + function = "lan2"; 159 + color = <LED_COLOR_ID_GREEN>; 160 + }; 161 + 162 + led@11 { 163 + /* Activity 03 */ 164 + reg = <11>; 165 + active-low; 166 + function = "lan3"; 167 + color = <LED_COLOR_ID_AMBER>; 168 + }; 169 + 170 + led@12 { 171 + /* Activity 04 */ 172 + reg = <12>; 173 + active-low; 174 + function = "lan3"; 175 + color = <LED_COLOR_ID_GREEN>; 176 + }; 177 + 178 + led@13 { 179 + /* Activity 03 */ 180 + reg = <13>; 181 + active-low; 182 + function = "lan4"; 183 + color = <LED_COLOR_ID_AMBER>; 184 + }; 185 + 186 + led@14 { 187 + /* Activity 04 */ 188 + reg = <14>; 189 + active-low; 190 + function = "lan4"; 191 + color = <LED_COLOR_ID_GREEN>; 192 + }; 193 + }; 194 + 195 + &hsspi { 196 + status = "okay"; 197 + }; 198 + 199 + &nand_controller { 200 + brcm,wp-not-connected; 201 + status = "okay"; 202 + }; 203 + 204 + &nandcs { 205 + nand-on-flash-bbt; 206 + brcm,nand-ecc-use-strap; 207 + 208 + /* Winbond W29N02GV, 256MB with 128KB erase blocks */ 209 + partitions { 210 + compatible = "fixed-partitions"; 211 + #address-cells = <1>; 212 + #size-cells = <1>; 213 + 214 + loader@0 { 215 + label = "loader"; 216 + reg = <0x00000000 0x00400000>; 217 + }; 218 + image@400000 { 219 + label = "image"; 220 + reg = <0x00400000 0x0fb00000>; 221 + }; 222 + /* 0x00ff0000-0x00ffffff: bad block list */ 223 + }; 224 + }; 225 + 226 + &mdio { 227 + status = "okay"; 228 + 229 + phy1: ethernet-phy@1 { 230 + reg = <1>; 231 + }; 232 + phy2: ethernet-phy@2 { 233 + reg = <2>; 234 + }; 235 + phy3: ethernet-phy@3 { 236 + reg = <3>; 237 + }; 238 + phy4: ethernet-phy@4 { 239 + reg = <4>; 240 + }; 241 + phy21: ethernet-phy@21 { 242 + reg = <21>; 243 + }; 244 + };
+120
arch/arm/boot/dts/broadcom/bcm6846.dtsi
··· 99 99 #size-cells = <1>; 100 100 ranges = <0 0xff800000 0x800000>; 101 101 102 + watchdog@480 { 103 + compatible = "brcm,bcm6345-wdt"; 104 + reg = <0x480 0x10>; 105 + }; 106 + 107 + /* GPIOs 0 .. 31 */ 108 + gpio0: gpio@500 { 109 + compatible = "brcm,bcm6345-gpio"; 110 + reg = <0x500 0x04>, <0x520 0x04>; 111 + reg-names = "dirout", "dat"; 112 + gpio-controller; 113 + #gpio-cells = <2>; 114 + status = "disabled"; 115 + }; 116 + 117 + /* GPIOs 32 .. 63 */ 118 + gpio1: gpio@504 { 119 + compatible = "brcm,bcm6345-gpio"; 120 + reg = <0x504 0x04>, <0x524 0x04>; 121 + reg-names = "dirout", "dat"; 122 + gpio-controller; 123 + #gpio-cells = <2>; 124 + status = "disabled"; 125 + }; 126 + 127 + /* GPIOs 64 .. 95 */ 128 + gpio2: gpio@508 { 129 + compatible = "brcm,bcm6345-gpio"; 130 + reg = <0x508 0x04>, <0x528 0x04>; 131 + reg-names = "dirout", "dat"; 132 + gpio-controller; 133 + #gpio-cells = <2>; 134 + status = "disabled"; 135 + }; 136 + 137 + /* GPIOs 96 .. 127 */ 138 + gpio3: gpio@50c { 139 + compatible = "brcm,bcm6345-gpio"; 140 + reg = <0x50c 0x04>, <0x52c 0x04>; 141 + reg-names = "dirout", "dat"; 142 + gpio-controller; 143 + #gpio-cells = <2>; 144 + status = "disabled"; 145 + }; 146 + 147 + /* GPIOs 128 .. 159 */ 148 + gpio4: gpio@510 { 149 + compatible = "brcm,bcm6345-gpio"; 150 + reg = <0x510 0x04>, <0x530 0x04>; 151 + reg-names = "dirout", "dat"; 152 + gpio-controller; 153 + #gpio-cells = <2>; 154 + status = "disabled"; 155 + }; 156 + 157 + /* GPIOs 160 .. 191 */ 158 + gpio5: gpio@514 { 159 + compatible = "brcm,bcm6345-gpio"; 160 + reg = <0x514 0x04>, <0x534 0x04>; 161 + reg-names = "dirout", "dat"; 162 + gpio-controller; 163 + #gpio-cells = <2>; 164 + status = "disabled"; 165 + }; 166 + 167 + /* GPIOs 192 .. 223 */ 168 + gpio6: gpio@518 { 169 + compatible = "brcm,bcm6345-gpio"; 170 + reg = <0x518 0x04>, <0x538 0x04>; 171 + reg-names = "dirout", "dat"; 172 + gpio-controller; 173 + #gpio-cells = <2>; 174 + status = "disabled"; 175 + }; 176 + 177 + /* GPIOs 224 .. 255 */ 178 + gpio7: gpio@51c { 179 + compatible = "brcm,bcm6345-gpio"; 180 + reg = <0x51c 0x04>, <0x53c 0x04>; 181 + reg-names = "dirout", "dat"; 182 + gpio-controller; 183 + #gpio-cells = <2>; 184 + status = "disabled"; 185 + }; 186 + 102 187 uart0: serial@640 { 103 188 compatible = "brcm,bcm6345-uart"; 104 189 reg = <0x640 0x1b>; 105 190 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; 106 191 clocks = <&periph_clk>; 107 192 clock-names = "refclk"; 193 + status = "disabled"; 194 + }; 195 + 196 + rng@b80 { 197 + compatible = "brcm,iproc-rng200"; 198 + reg = <0xb80 0x28>; 199 + }; 200 + 201 + leds: led-controller@800 { 202 + #address-cells = <1>; 203 + #size-cells = <0>; 204 + compatible = "brcm,bcm63138-leds"; 205 + reg = <0x800 0xdc>; 108 206 status = "disabled"; 109 207 }; 110 208 ··· 230 132 compatible = "brcm,nandcs"; 231 133 reg = <0>; 232 134 }; 135 + }; 136 + 137 + mdio: mdio@2060 { 138 + compatible = "brcm,bcm6846-mdio"; 139 + reg = <0x02060 0x10>, <0x5a068 0x4>; 140 + reg-names = "mdio", "mdio_indir_rw"; 141 + #address-cells = <1>; 142 + #size-cells = <0>; 143 + status = "disabled"; 144 + }; 145 + 146 + pl081_dma: dma-controller@59000 { 147 + compatible = "arm,pl081", "arm,primecell"; 148 + // The magic B105F00D info is missing 149 + arm,primecell-periphid = <0x00041081>; 150 + reg = <0x59000 0x1000>; 151 + interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 152 + memcpy-burst-size = <256>; 153 + memcpy-bus-width = <32>; 154 + clocks = <&periph_clk>; 155 + clock-names = "apb_pclk"; 156 + #dma-cells = <2>; 233 157 }; 234 158 }; 235 159 };
-1
arch/arm/boot/dts/broadcom/bcm953012hr.dts
··· 74 74 &spi_nor { 75 75 status = "okay"; 76 76 spi-max-frequency = <62500000>; 77 - m25p,default-addr-width = <3>; 78 77 79 78 #address-cells = <1>; 80 79 #size-cells = <1>;
-1
arch/arm/boot/dts/broadcom/bcm953012k.dts
··· 84 84 &spi_nor { 85 85 status = "okay"; 86 86 spi-max-frequency = <62500000>; 87 - m25p,default-addr-width = <3>; 88 87 89 88 #address-cells = <1>; 90 89 #size-cells = <1>;
-1
arch/arm/boot/dts/broadcom/bcm958522er.dts
··· 135 135 136 136 &qspi { 137 137 status = "okay"; 138 - bspi-sel = <0>; 139 138 flash: flash@0 { 140 139 #address-cells = <1>; 141 140 #size-cells = <1>;
-1
arch/arm/boot/dts/broadcom/bcm958525er.dts
··· 135 135 136 136 &qspi { 137 137 status = "okay"; 138 - bspi-sel = <0>; 139 138 flash: flash@0 { 140 139 #address-cells = <1>; 141 140 #size-cells = <1>;
-1
arch/arm/boot/dts/broadcom/bcm958525xmc.dts
··· 151 151 152 152 &qspi { 153 153 status = "okay"; 154 - bspi-sel = <0>; 155 154 flash: flash@0 { 156 155 #address-cells = <1>; 157 156 #size-cells = <1>;
-1
arch/arm/boot/dts/broadcom/bcm958622hr.dts
··· 139 139 140 140 &qspi { 141 141 status = "okay"; 142 - bspi-sel = <0>; 143 142 flash: flash@0 { 144 143 #address-cells = <1>; 145 144 #size-cells = <1>;
-1
arch/arm/boot/dts/broadcom/bcm958623hr.dts
··· 143 143 144 144 &qspi { 145 145 status = "okay"; 146 - bspi-sel = <0>; 147 146 flash: flash@0 { 148 147 #address-cells = <1>; 149 148 #size-cells = <1>;
-1
arch/arm/boot/dts/broadcom/bcm958625hr.dts
··· 150 150 151 151 &qspi { 152 152 status = "okay"; 153 - bspi-sel = <0>; 154 153 flash: flash@0 { 155 154 #address-cells = <1>; 156 155 #size-cells = <1>;
-1
arch/arm/boot/dts/broadcom/bcm958625k.dts
··· 154 154 155 155 &qspi { 156 156 status = "okay"; 157 - bspi-sel = <0>; 158 157 flash: flash@0 { 159 158 #address-cells = <1>; 160 159 #size-cells = <1>;
-1
arch/arm/boot/dts/broadcom/bcm988312hr.dts
··· 139 139 140 140 &qspi { 141 141 status = "okay"; 142 - bspi-sel = <0>; 143 142 flash: flash@0 { 144 143 #address-cells = <1>; 145 144 #size-cells = <1>;