1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/pci/brcm,stb-pcie.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Brcmstb PCIe Host Controller Device Tree Bindings
8
9maintainers:
10  - Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
11
12allOf:
13  - $ref: /schemas/pci/pci-bus.yaml#
14
15properties:
16  compatible:
17    const: brcm,bcm2711-pcie # The Raspberry Pi 4
18
19  reg:
20    maxItems: 1
21
22  interrupts:
23    minItems: 1
24    maxItems: 2
25    items:
26      - description: PCIe host controller
27      - description: builtin MSI controller
28
29  interrupt-names:
30    minItems: 1
31    maxItems: 2
32    items:
33      - const: pcie
34      - const: msi
35
36  ranges:
37    maxItems: 1
38
39  dma-ranges:
40    maxItems: 1
41
42  clocks:
43    maxItems: 1
44
45  clock-names:
46    items:
47      - const: sw_pcie
48
49  msi-controller:
50    description: Identifies the node as an MSI controller.
51
52  msi-parent:
53    description: MSI controller the device is capable of using.
54
55  brcm,enable-ssc:
56    description: Indicates usage of spread-spectrum clocking.
57    type: boolean
58
59required:
60  - reg
61  - dma-ranges
62  - "#interrupt-cells"
63  - interrupts
64  - interrupt-names
65  - interrupt-map-mask
66  - interrupt-map
67  - msi-controller
68
69unevaluatedProperties: false
70
71examples:
72  - |
73    #include <dt-bindings/interrupt-controller/irq.h>
74    #include <dt-bindings/interrupt-controller/arm-gic.h>
75
76    scb {
77            #address-cells = <2>;
78            #size-cells = <1>;
79            pcie0: pcie@7d500000 {
80                    compatible = "brcm,bcm2711-pcie";
81                    reg = <0x0 0x7d500000 0x9310>;
82                    device_type = "pci";
83                    #address-cells = <3>;
84                    #size-cells = <2>;
85                    #interrupt-cells = <1>;
86                    interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
87                                 <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
88                    interrupt-names = "pcie", "msi";
89                    interrupt-map-mask = <0x0 0x0 0x0 0x7>;
90                    interrupt-map = <0 0 0 1 &gicv2 GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
91                    msi-parent = <&pcie0>;
92                    msi-controller;
93                    ranges = <0x02000000 0x0 0xf8000000 0x6 0x00000000 0x0 0x04000000>;
94                    dma-ranges = <0x02000000 0x0 0x00000000 0x0 0x00000000 0x0 0x80000000>;
95                    brcm,enable-ssc;
96            };
97    };
98