summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml
blob: 77d3e81a437b137507eac94237d3bc397581a79a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pci/brcm,stb-pcie.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Brcmstb PCIe Host Controller Device Tree Bindings

maintainers:
  - Nicolas Saenz Julienne <nsaenzjulienne@suse.de>

allOf:
  - $ref: /schemas/pci/pci-bus.yaml#

properties:
  compatible:
    const: brcm,bcm2711-pcie # The Raspberry Pi 4

  reg:
    maxItems: 1

  interrupts:
    minItems: 1
    maxItems: 2
    items:
      - description: PCIe host controller
      - description: builtin MSI controller

  interrupt-names:
    minItems: 1
    maxItems: 2
    items:
      - const: pcie
      - const: msi

  ranges:
    maxItems: 1

  dma-ranges:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    items:
      - const: sw_pcie

  msi-controller:
    description: Identifies the node as an MSI controller.

  msi-parent:
    description: MSI controller the device is capable of using.

  brcm,enable-ssc:
    description: Indicates usage of spread-spectrum clocking.
    type: boolean

required:
  - reg
  - dma-ranges
  - "#interrupt-cells"
  - interrupts
  - interrupt-names
  - interrupt-map-mask
  - interrupt-map
  - msi-controller

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    scb {
            #address-cells = <2>;
            #size-cells = <1>;
            pcie0: pcie@7d500000 {
                    compatible = "brcm,bcm2711-pcie";
                    reg = <0x0 0x7d500000 0x9310>;
                    device_type = "pci";
                    #address-cells = <3>;
                    #size-cells = <2>;
                    #interrupt-cells = <1>;
                    interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
                                 <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
                    interrupt-names = "pcie", "msi";
                    interrupt-map-mask = <0x0 0x0 0x0 0x7>;
                    interrupt-map = <0 0 0 1 &gicv2 GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
                    msi-parent = <&pcie0>;
                    msi-controller;
                    ranges = <0x02000000 0x0 0xf8000000 0x6 0x00000000 0x0 0x04000000>;
                    dma-ranges = <0x02000000 0x0 0x00000000 0x0 0x00000000 0x0 0x80000000>;
                    brcm,enable-ssc;
            };
    };