Skip to content

Commit ab6efed

Browse files
committed
Merge tag 'arm-soc/for-6.14/devicetree-arm64' of https://github.com/Broadcom/stblinux into soc/dt
This pull request contains Broadcom ARM64-based SoCs Device Tree updates for 6.14: - Dave adds the display pipeline DT nodes on BCM2712 (Raspberry Pi 5) - Rob removes some undocumented properties - Same ensures that the CFE stub area is reserved to allow secondary CPUs to be successfully brought up in Linux, also making sure that the address used in the spin table is also carved out. Finally he adds support for the Zyxel EX3510-B router using BCM4906 - Rosen converts the BCM4908 platforms to use the more flexible nvmem-layout representation * tag 'arm-soc/for-6.14/devicetree-arm64' of https://github.com/Broadcom/stblinux: arm64: dts: bcm4908: nvmem-layout conversion arm64: dts: broadcom: bcmbca: bcm4908: Add DT for Zyxel EX3510-B dt-bindings: arm64: bcmbca: Add Zyxel EX3510-B based on BCM4906 arm64: dts: broadcom: bcmbca: bcm4908: Protect cpu-release-addr arm64: dts: broadcom: bcmbca: bcm4908: Reserve CFE stub area arm64: dts: broadcom: Remove unused and undocumented properties arm64: dts: broadcom: Add DT for D-step version of BCM2712 arm64: dts: broadcom: Add display pipeline support to BCM2712 arm64: dts: broadcom: Add firmware clocks and power nodes to Pi5 DT Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Arnd Bergmann <[email protected]>
2 parents 14d773b + f5ce990 commit ab6efed

File tree

12 files changed

+488
-18
lines changed

12 files changed

+488
-18
lines changed

Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ properties:
3434
- enum:
3535
- netgear,r8000p
3636
- tplink,archer-c2300-v1
37+
- zyxel,ex3510b
3738
- const: brcm,bcm4906
3839
- const: brcm,bcm4908
3940
- const: brcm,bcmbca

arch/arm64/boot/dts/broadcom/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-400.dtb \
77
bcm2711-rpi-4-b.dtb \
88
bcm2711-rpi-cm4-io.dtb \
99
bcm2712-rpi-5-b.dtb \
10+
bcm2712-d-rpi-5-b.dtb \
1011
bcm2837-rpi-3-a-plus.dtb \
1112
bcm2837-rpi-3-b.dtb \
1213
bcm2837-rpi-3-b-plus.dtb \
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2+
/dts-v1/;
3+
4+
#include "bcm2712-rpi-5-b.dts"
5+
6+
&gio_aon {
7+
brcm,gpio-bank-widths = <15 6>;
8+
9+
gpio-line-names =
10+
"RP1_SDA", // AON_GPIO_00
11+
"RP1_SCL", // AON_GPIO_01
12+
"RP1_RUN", // AON_GPIO_02
13+
"SD_IOVDD_SEL", // AON_GPIO_03
14+
"SD_PWR_ON", // AON_GPIO_04
15+
"SD_CDET_N", // AON_GPIO_05
16+
"SD_FLG_N", // AON_GPIO_06
17+
"", // AON_GPIO_07
18+
"2712_WAKE", // AON_GPIO_08
19+
"2712_STAT_LED", // AON_GPIO_09
20+
"", // AON_GPIO_10
21+
"", // AON_GPIO_11
22+
"PMIC_INT", // AON_GPIO_12
23+
"UART_TX_FS", // AON_GPIO_13
24+
"UART_RX_FS", // AON_GPIO_14
25+
"", // AON_GPIO_15
26+
"", // AON_GPIO_16
27+
28+
// Pad bank0 out to 32 entries
29+
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
30+
31+
"HDMI0_SCL", // AON_SGPIO_00
32+
"HDMI0_SDA", // AON_SGPIO_01
33+
"HDMI1_SCL", // AON_SGPIO_02
34+
"HDMI1_SDA", // AON_SGPIO_03
35+
"PMIC_SCL", // AON_SGPIO_04
36+
"PMIC_SDA"; // AON_SGPIO_05
37+
};

arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,45 @@
6262
sd-uhs-ddr50;
6363
sd-uhs-sdr104;
6464
};
65+
66+
&soc {
67+
firmware: firmware {
68+
compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
69+
#address-cells = <1>;
70+
#size-cells = <1>;
71+
72+
mboxes = <&mailbox>;
73+
dma-ranges;
74+
75+
firmware_clocks: clocks {
76+
compatible = "raspberrypi,firmware-clocks";
77+
#clock-cells = <1>;
78+
};
79+
80+
reset: reset {
81+
compatible = "raspberrypi,firmware-reset";
82+
#reset-cells = <1>;
83+
};
84+
};
85+
86+
power: power {
87+
compatible = "raspberrypi,bcm2835-power";
88+
firmware = <&firmware>;
89+
#power-domain-cells = <1>;
90+
};
91+
};
92+
93+
&hvs {
94+
clocks = <&firmware_clocks 4>, <&firmware_clocks 16>;
95+
clock-names = "core", "disp";
96+
};
97+
98+
&hdmi0 {
99+
clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 0>, <&clk_27MHz>;
100+
clock-names = "hdmi", "bvb", "audio", "cec";
101+
};
102+
103+
&hdmi1 {
104+
clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>;
105+
clock-names = "hdmi", "bvb", "audio", "cec";
106+
};

arch/arm64/boot/dts/broadcom/bcm2712.dtsi

Lines changed: 188 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -221,11 +221,6 @@
221221
#mbox-cells = <0>;
222222
};
223223

224-
local_intc: interrupt-controller@7cd00000 {
225-
compatible = "brcm,bcm2836-l1-intc";
226-
reg = <0x7cd00000 0x100>;
227-
};
228-
229224
uart10: serial@7d001000 {
230225
compatible = "arm,pl011", "arm,primecell";
231226
reg = <0x7d001000 0x200>;
@@ -265,6 +260,172 @@
265260
interrupt-controller;
266261
#interrupt-cells = <3>;
267262
};
263+
264+
aon_intr: interrupt-controller@7d510600 {
265+
compatible = "brcm,bcm2711-l2-intc", "brcm,l2-intc";
266+
reg = <0x7d510600 0x30>;
267+
interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
268+
interrupt-controller;
269+
#interrupt-cells = <1>;
270+
};
271+
272+
pixelvalve0: pixelvalve@7c410000 {
273+
compatible = "brcm,bcm2712-pixelvalve0";
274+
reg = <0x7c410000 0x100>;
275+
interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
276+
};
277+
278+
pixelvalve1: pixelvalve@7c411000 {
279+
compatible = "brcm,bcm2712-pixelvalve1";
280+
reg = <0x7c411000 0x100>;
281+
interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
282+
};
283+
284+
mop: mop@7c500000 {
285+
compatible = "brcm,bcm2712-mop";
286+
reg = <0x7c500000 0x28>;
287+
interrupt-parent = <&disp_intr>;
288+
interrupts = <1>;
289+
};
290+
291+
moplet: moplet@7c501000 {
292+
compatible = "brcm,bcm2712-moplet";
293+
reg = <0x7c501000 0x20>;
294+
interrupt-parent = <&disp_intr>;
295+
interrupts = <0>;
296+
};
297+
298+
disp_intr: interrupt-controller@7c502000 {
299+
compatible = "brcm,bcm2711-l2-intc", "brcm,l2-intc";
300+
reg = <0x7c502000 0x30>;
301+
interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
302+
interrupt-controller;
303+
#interrupt-cells = <1>;
304+
};
305+
306+
dvp: clock@7c700000 {
307+
compatible = "brcm,brcm2711-dvp";
308+
reg = <0x7c700000 0x10>;
309+
clocks = <&clk_108MHz>;
310+
#clock-cells = <1>;
311+
#reset-cells = <1>;
312+
};
313+
314+
ddc0: i2c@7d508200 {
315+
compatible = "brcm,brcmstb-i2c";
316+
reg = <0x7d508200 0x58>;
317+
interrupt-parent = <&bsc_irq>;
318+
interrupts = <1>;
319+
clock-frequency = <97500>;
320+
#address-cells = <1>;
321+
#size-cells = <0>;
322+
};
323+
324+
ddc1: i2c@7d508280 {
325+
compatible = "brcm,brcmstb-i2c";
326+
reg = <0x7d508280 0x58>;
327+
interrupt-parent = <&bsc_irq>;
328+
interrupts = <2>;
329+
clock-frequency = <97500>;
330+
#address-cells = <1>;
331+
#size-cells = <0>;
332+
};
333+
334+
bsc_irq: interrupt-controller@7d508380 {
335+
compatible = "brcm,bcm7271-l2-intc";
336+
reg = <0x7d508380 0x10>;
337+
interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
338+
interrupt-controller;
339+
#interrupt-cells = <1>;
340+
};
341+
342+
main_irq: interrupt-controller@7d508400 {
343+
compatible = "brcm,bcm7271-l2-intc";
344+
reg = <0x7d508400 0x10>;
345+
interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>;
346+
interrupt-controller;
347+
#interrupt-cells = <1>;
348+
};
349+
350+
hdmi0: hdmi@7c701400 {
351+
compatible = "brcm,bcm2712-hdmi0";
352+
reg = <0x7c701400 0x300>,
353+
<0x7c701000 0x200>,
354+
<0x7c701d00 0x300>,
355+
<0x7c702000 0x80>,
356+
<0x7c703800 0x200>,
357+
<0x7c704000 0x800>,
358+
<0x7c700100 0x80>,
359+
<0x7d510800 0x100>,
360+
<0x7c720000 0x100>;
361+
reg-names = "hdmi",
362+
"dvp",
363+
"phy",
364+
"rm",
365+
"packet",
366+
"metadata",
367+
"csc",
368+
"cec",
369+
"hd";
370+
resets = <&dvp 1>;
371+
interrupt-parent = <&aon_intr>;
372+
interrupts = <1>, <2>, <3>,
373+
<7>, <8>;
374+
interrupt-names = "cec-tx", "cec-rx", "cec-low",
375+
"hpd-connected", "hpd-removed";
376+
ddc = <&ddc0>;
377+
};
378+
379+
hdmi1: hdmi@7c706400 {
380+
compatible = "brcm,bcm2712-hdmi1";
381+
reg = <0x7c706400 0x300>,
382+
<0x7c706000 0x200>,
383+
<0x7c706d00 0x300>,
384+
<0x7c707000 0x80>,
385+
<0x7c708800 0x200>,
386+
<0x7c709000 0x800>,
387+
<0x7c700180 0x80>,
388+
<0x7d511000 0x100>,
389+
<0x7c720000 0x100>;
390+
reg-names = "hdmi",
391+
"dvp",
392+
"phy",
393+
"rm",
394+
"packet",
395+
"metadata",
396+
"csc",
397+
"cec",
398+
"hd";
399+
resets = <&dvp 2>;
400+
interrupt-parent = <&aon_intr>;
401+
interrupts = <11>, <12>, <13>,
402+
<14>, <15>;
403+
interrupt-names = "cec-tx", "cec-rx", "cec-low",
404+
"hpd-connected", "hpd-removed";
405+
ddc = <&ddc1>;
406+
};
407+
};
408+
409+
axi: axi {
410+
compatible = "simple-bus";
411+
#address-cells = <2>;
412+
#size-cells = <2>;
413+
414+
ranges = <0x00 0x00000000 0x00 0x00000000 0x10 0x00000000>,
415+
<0x10 0x00000000 0x10 0x00000000 0x01 0x00000000>,
416+
<0x14 0x00000000 0x14 0x00000000 0x04 0x00000000>,
417+
<0x18 0x00000000 0x18 0x00000000 0x04 0x00000000>,
418+
<0x1c 0x00000000 0x1c 0x00000000 0x04 0x00000000>;
419+
420+
dma-ranges = <0x00 0x00000000 0x00 0x00000000 0x10 0x00000000>,
421+
<0x10 0x00000000 0x10 0x00000000 0x01 0x00000000>,
422+
<0x14 0x00000000 0x14 0x00000000 0x04 0x00000000>,
423+
<0x18 0x00000000 0x18 0x00000000 0x04 0x00000000>,
424+
<0x1c 0x00000000 0x1c 0x00000000 0x04 0x00000000>;
425+
426+
vc4: gpu {
427+
compatible = "brcm,bcm2712-vc6";
428+
};
268429
};
269430

270431
timer {
@@ -280,4 +441,26 @@
280441
<GIC_PPI 12 (GIC_CPU_MASK_SIMPLE(4) |
281442
IRQ_TYPE_LEVEL_LOW)>;
282443
};
444+
445+
clk_27MHz: clk-27M {
446+
#clock-cells = <0>;
447+
compatible = "fixed-clock";
448+
clock-frequency = <27000000>;
449+
clock-output-names = "27MHz-clock";
450+
};
451+
452+
clk_108MHz: clk-108M {
453+
#clock-cells = <0>;
454+
compatible = "fixed-clock";
455+
clock-frequency = <108000000>;
456+
clock-output-names = "108MHz-clock";
457+
};
458+
459+
hvs: hvs@107c580000 {
460+
compatible = "brcm,bcm2712-hvs";
461+
reg = <0x10 0x7c580000 0x0 0x1a000>;
462+
interrupt-parent = <&disp_intr>;
463+
interrupts = <2>, <9>, <16>;
464+
interrupt-names = "ch0-eof", "ch1-eof", "ch2-eof";
465+
};
283466
};

arch/arm64/boot/dts/broadcom/bcmbca/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
dtb-$(CONFIG_ARCH_BCMBCA) += \
33
bcm4906-netgear-r8000p.dtb \
44
bcm4906-tplink-archer-c2300-v1.dtb \
5+
bcm4906-zyxel-ex3510b.dtb \
56
bcm4908-asus-gt-ac5300.dtb \
67
bcm4908-netgear-raxe500.dtb \
78
bcm94908.dtb \

arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-netgear-r8000p.dts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -144,16 +144,20 @@
144144
#size-cells = <1>;
145145

146146
partition@0 {
147-
compatible = "nvmem-cells";
148147
label = "cferom";
149148
reg = <0x0 0x100000>;
150-
151149
#address-cells = <1>;
152150
#size-cells = <1>;
153151
ranges = <0 0x0 0x100000>;
154152

155-
base_mac_addr: mac@106a0 {
156-
reg = <0x106a0 0x6>;
153+
nvmem-layout {
154+
compatible = "fixed-layout";
155+
#address-cells = <1>;
156+
#size-cells = <1>;
157+
158+
base_mac_addr: mac@106a0 {
159+
reg = <0x106a0 0x6>;
160+
};
157161
};
158162
};
159163

0 commit comments

Comments
 (0)