Skip to content

Commit 849b807

Browse files
Stanimir Varbanovpopcornmix
authored andcommitted
arm64: dts: broadcom: bcm2712: Add PCIe DT nodes
Add PCIe devicetree nodes, plus needed reset and mip MSI-X controllers. Signed-off-by: Stanimir Varbanov <svarbanov@suse.de>
1 parent ccb1357 commit 849b807

File tree

1 file changed

+147
-0
lines changed

1 file changed

+147
-0
lines changed

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

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,12 @@
192192
#address-cells = <1>;
193193
#size-cells = <1>;
194194

195+
pcie_rescal: reset-controller@119500 {
196+
compatible = "brcm,bcm7216-pcie-sata-rescal";
197+
reg = <0x00119500 0x10>;
198+
#reset-cells = <0>;
199+
};
200+
195201
sdio1: mmc@fff000 {
196202
compatible = "brcm,bcm2712-sdhci",
197203
"brcm,sdhci-brcmstb";
@@ -204,6 +210,12 @@
204210
mmc-ddr-3_3v;
205211
};
206212

213+
bcm_reset: reset-controller@1504318 {
214+
compatible = "brcm,brcmstb-reset";
215+
reg = <0x01504318 0x30>;
216+
#reset-cells = <1>;
217+
};
218+
207219
system_timer: timer@7c003000 {
208220
compatible = "brcm,bcm2835-system-timer";
209221
reg = <0x7c003000 0x1000>;
@@ -431,6 +443,141 @@
431443
vc4: gpu {
432444
compatible = "brcm,bcm2712-vc6";
433445
};
446+
447+
pcie0: pcie@1000100000 {
448+
compatible = "brcm,bcm2712-pcie";
449+
reg = <0x10 0x00100000 0x00 0x9310>;
450+
device_type = "pci";
451+
linux,pci-domain = <0>;
452+
max-link-speed = <2>;
453+
num-lanes = <1>;
454+
#address-cells = <3>;
455+
#interrupt-cells = <1>;
456+
#size-cells = <2>;
457+
interrupt-parent = <&gicv2>;
458+
interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
459+
<GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>;
460+
interrupt-names = "pcie", "msi";
461+
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
462+
interrupt-map = <0 0 0 1 &gicv2 GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>,
463+
<0 0 0 2 &gicv2 GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
464+
<0 0 0 3 &gicv2 GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
465+
<0 0 0 4 &gicv2 GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>;
466+
resets = <&pcie_rescal>, <&bcm_reset 42>;
467+
reset-names = "rescal", "bridge";
468+
msi-controller;
469+
msi-parent = <&pcie0>;
470+
471+
ranges =
472+
/* ~4GiB, 32-bit, non-prefetchable at PCIe 00_0000_0000 */
473+
<0x02000000 0x00 0x00000000 0x17 0x00000000 0x00 0xfffffffc>,
474+
/* 12GiB, 64-bit, prefetchable at PCIe 04_0000_0000 */
475+
<0x43000000 0x04 0x00000000 0x14 0x00000000 0x03 0x00000000>;
476+
477+
dma-ranges =
478+
/* 64GiB, 64-bit, prefetchable at PCIe 10_0000_0000 */
479+
<0x43000000 0x10 0x00000000 0x00 0x00000000 0x10 0x00000000>;
480+
481+
status = "disabled";
482+
};
483+
484+
pcie1: pcie@1000110000 {
485+
compatible = "brcm,bcm2712-pcie";
486+
reg = <0x10 0x00110000 0x00 0x9310>;
487+
device_type = "pci";
488+
linux,pci-domain = <1>;
489+
max-link-speed = <2>;
490+
num-lanes = <1>;
491+
#address-cells = <3>;
492+
#interrupt-cells = <1>;
493+
#size-cells = <2>;
494+
interrupt-parent = <&gicv2>;
495+
interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>,
496+
<GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
497+
interrupt-names = "pcie", "msi";
498+
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
499+
interrupt-map = <0 0 0 1 &gicv2 GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>,
500+
<0 0 0 2 &gicv2 GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>,
501+
<0 0 0 3 &gicv2 GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>,
502+
<0 0 0 4 &gicv2 GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
503+
resets = <&pcie_rescal>, <&bcm_reset 43>;
504+
reset-names = "rescal", "bridge";
505+
msi-controller;
506+
msi-parent = <&mip1>;
507+
508+
ranges =
509+
/* ~4GiB, 32-bit, non-prefetchable at PCIe 00_0000_0000 */
510+
<0x02000000 0x00 0x00000000 0x1b 0x00000000 0x00 0xfffffffc>,
511+
/* 12GiB, 64-bit, prefetchable at PCIe 04_0000_0000 */
512+
<0x43000000 0x04 0x00000000 0x18 0x00000000 0x03 0x00000000>;
513+
514+
dma-ranges =
515+
/* 64GiB, 64-bit, non-prefetchable at PCIe 10_0000_0000 */
516+
<0x03000000 0x10 0x00000000 0x00 0x00000000 0x10 0x00000000>,
517+
/* 4KiB, 64-bit, non-prefetchable at PCIe ff_ffff_f000 MIP1 */
518+
<0x03000000 0xff 0xfffff000 0x10 0x00131000 0x00 0x00001000>;
519+
520+
status = "disabled";
521+
};
522+
523+
pcie2: pcie@1000120000 {
524+
compatible = "brcm,bcm2712-pcie";
525+
reg = <0x10 0x00120000 0x00 0x9310>;
526+
device_type = "pci";
527+
linux,pci-domain = <2>;
528+
max-link-speed = <2>;
529+
num-lanes = <4>;
530+
#address-cells = <3>;
531+
#interrupt-cells = <1>;
532+
#size-cells = <2>;
533+
interrupt-parent = <&gicv2>;
534+
interrupts = <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH>,
535+
<GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH>;
536+
interrupt-names = "pcie", "msi";
537+
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
538+
interrupt-map = <0 0 0 1 &gicv2 GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
539+
<0 0 0 2 &gicv2 GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>,
540+
<0 0 0 3 &gicv2 GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
541+
<0 0 0 4 &gicv2 GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>;
542+
resets = <&pcie_rescal>, <&bcm_reset 44>;
543+
reset-names = "rescal", "bridge";
544+
msi-controller;
545+
msi-parent = <&mip0>;
546+
547+
ranges =
548+
/* ~4GiB, 32-bit, non-prefetchable at PCIe 00_0000_0000 */
549+
<0x02000000 0x00 0x00000000 0x1f 0x00000000 0x00 0xfffffffc>,
550+
/* 12GiB, 64-bit, prefetchable at PCIe 04_0000_0000 */
551+
<0x43000000 0x04 0x00000000 0x1c 0x00000000 0x03 0x00000000>;
552+
553+
dma-ranges =
554+
/* 4MiB, 32-bit, non-prefetchable at PCIe 00_0000_0000 */
555+
<0x02000000 0x00 0x00000000 0x1f 0x00000000 0x00 0x00400000>,
556+
/* 64GiB, 64-bit, prefetchable at PCIe 10_0000_0000 */
557+
<0x43000000 0x10 0x00000000 0x00 0x00000000 0x10 0x00000000>,
558+
/* 4KiB, 64-bit, non-prefetchable at PCIe ff_ffff_f000 MIP0 */
559+
<0x03000000 0xff 0xfffff000 0x10 0x00130000 0x00 0x00001000>;
560+
561+
status = "disabled";
562+
};
563+
564+
mip0: msi-controller@1000130000 {
565+
compatible = "brcm,bcm2712-mip";
566+
reg = <0x10 0x00130000 0x00 0xc0>,
567+
<0xff 0xfffff000 0x00 0x1000>;
568+
msi-controller;
569+
msi-ranges = <&gicv2 GIC_SPI 128 IRQ_TYPE_EDGE_RISING 64>;
570+
brcm,msi-offset = <0>;
571+
};
572+
573+
mip1: msi-controller@1000131000 {
574+
compatible = "brcm,bcm2712-mip";
575+
reg = <0x10 0x00131000 0x00 0xc0>,
576+
<0xff 0xfffff000 0x00 0x1000>;
577+
msi-controller;
578+
msi-ranges = <&gicv2 GIC_SPI 247 IRQ_TYPE_EDGE_RISING 8>;
579+
brcm,msi-offset = <8>;
580+
};
434581
};
435582

436583
timer {

0 commit comments

Comments
 (0)