Merge tag 'v5.15.57' into rpi-5.15.y
[platform/kernel/linux-rpi.git] / Documentation / devicetree / bindings / pci / brcmstb-pcie.txt
1 Brcmstb PCIe Host Controller Device Tree Bindings
2
3 Required Properties:
4 - compatible
5   "brcm,bcm7425-pcie" -- for 7425 family MIPS-based SOCs.
6   "brcm,bcm7435-pcie" -- for 7435 family MIPS-based SOCs.
7   "brcm,bcm7445-pcie" -- for 7445 and later ARM based SOCs (not including
8       the 7278).
9   "brcm,bcm7278-pcie"  -- for 7278 family ARM-based SOCs.
10
11 - reg -- the register start address and length for the PCIe reg block.
12 - interrupts -- two interrupts are specified; the first interrupt is for
13      the PCI host controller and the second is for MSI if the built-in
14      MSI controller is to be used.
15 - interrupt-names -- names of the interrupts (above): "pcie" and "msi".
16 - #address-cells -- set to <3>.
17 - #size-cells -- set to <2>.
18 - #interrupt-cells: set to <1>.
19 - interrupt-map-mask and interrupt-map, standard PCI properties to define the
20      mapping of the PCIe interface to interrupt numbers.
21 - ranges: ranges for the PCI memory and I/O regions.
22 - linux,pci-domain -- should be unique per host controller.
23
24 Optional Properties:
25 - clocks -- phandle of pcie clock.
26 - clock-names -- set to "sw_pcie" if clocks is used.
27 - dma-ranges -- Specifies the inbound memory mapping regions when
28      an "identity map" is not possible.
29 - msi-controller -- this property is typically specified to have the
30      PCIe controller use its internal MSI controller.
31 - msi-parent -- set to use an external MSI interrupt controller.
32 - brcm,enable-ssc -- (boolean) indicates usage of spread-spectrum clocking.
33 - max-link-speed --  (integer) indicates desired generation of link:
34      1 => 2.5 Gbps (gen1), 2 => 5.0 Gbps (gen2), 3 => 8.0 Gbps (gen3).
35
36 Example Node:
37
38 pcie0: pcie@f0460000 {
39                 reg = <0x0 0xf0460000 0x0 0x9310>;
40                 interrupts = <0x0 0x0 0x4>;
41                 compatible = "brcm,bcm7445-pcie";
42                 #address-cells = <3>;
43                 #size-cells = <2>;
44                 ranges = <0x02000000 0x00000000 0x00000000 0x00000000 0xc0000000 0x00000000 0x08000000
45                           0x02000000 0x00000000 0x08000000 0x00000000 0xc8000000 0x00000000 0x08000000>;
46                 #interrupt-cells = <1>;
47                 interrupt-map-mask = <0 0 0 7>;
48                 interrupt-map = <0 0 0 1 &intc 0 47 3
49                                  0 0 0 2 &intc 0 48 3
50                                  0 0 0 3 &intc 0 49 3
51                                  0 0 0 4 &intc 0 50 3>;
52                 clocks = <&sw_pcie0>;
53                 clock-names = "sw_pcie";
54                 msi-parent = <&pcie0>;  /* use PCIe's internal MSI controller */
55                 msi-controller;         /* use PCIe's internal MSI controller */
56                 brcm,ssc;
57                 max-link-speed = <1>;
58                 linux,pci-domain = <0>;
59         };