Skip to content

Commit 0956dcb

Browse files
jamesequinlanLorenzo Pieralisi
authored andcommitted
dt-bindings: PCI: Add bindings for brcmstb's PCIe device
The DT bindings description of the brcmstb PCIe device is described. This node can only be used for now on the Raspberry Pi 4. Signed-off-by: Jim Quinlan <[email protected]> Co-developed-by: Nicolas Saenz Julienne <[email protected]> Signed-off-by: Nicolas Saenz Julienne <[email protected]> Signed-off-by: Lorenzo Pieralisi <[email protected]> Reviewed-by: Rob Herring <[email protected]> Reviewed-by: Andrew Murray <[email protected]>
1 parent e42617b commit 0956dcb

File tree

1 file changed

+97
-0
lines changed

1 file changed

+97
-0
lines changed
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
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+
7+
title: Brcmstb PCIe Host Controller Device Tree Bindings
8+
9+
maintainers:
10+
- Nicolas Saenz Julienne <[email protected]>
11+
12+
allOf:
13+
- $ref: /schemas/pci/pci-bus.yaml#
14+
15+
properties:
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+
59+
required:
60+
- reg
61+
- dma-ranges
62+
- "#interrupt-cells"
63+
- interrupts
64+
- interrupt-names
65+
- interrupt-map-mask
66+
- interrupt-map
67+
- msi-controller
68+
69+
unevaluatedProperties: false
70+
71+
examples:
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+
};

0 commit comments

Comments
 (0)