Skip to content

Commit b797896

Browse files
committed
Merge branch 'pci/controller/brcmstb'
- Add missing of_node refcount release after of_parse_phandle() (Stanimir Varbanov) - Add BCM2712 MSI-X DT binding and interrupt controller drivers (Stanimir Varbanov) - Add brcmstb softdep on irq_bcm2712_mip MIP MSI-X interrupt controller driver to ensure that it is loaded first (Stanimir Varbanov) - Add struct brcm_pcie pointer to pcie_cfg_data so we can reference the pcie_cfg_data directly instead of copying it to brcm_pcie (Stanimir Varbanov) - Expand inbound window map to 64GB so it can accommodate BCM2712 (Stanimir Varbanov) - Add BCM2712 support and DT updates (Stanimir Varbanov) - Apply link speed restriction before bringing link up, not after (Jim Quinlan) - Update Max Link Speed in Link Capabilities via the internal writable register, not the read-only config register (Jim Quinlan) - Handle regulator_bulk_get() error to avoid panic when we call regulator_bulk_free() later (Jim Quinlan) - Disable regulators only when removing the bus immediately below a Root Port because we don't support regulators deeper in the hierarchy (Jim Quinlan) - Consistently use config access index/data register offsets from the SoC-specific pcie_offsets[] table (Jim Quinlan) - Update MDIO register fields that reduced CMD from 12 bits to 1 and widened PORT from 4 bits to 5 and split it into two parts (Jim Quinlan) - Make const read-only arrays static (Colin Ian King) * pci/controller/brcmstb: PCI: brcmstb: Make const read-only arrays static PCI: brcmstb: Make irq_domain_set_info() parameter cast explicit PCI: brcmstb: Make two changes in MDIO register fields PCI: brcmstb: Use same constant table for config space access PCI: brcmstb: Fix potential premature regulator disabling PCI: brcmstb: Fix error path after a call to regulator_bulk_get() PCI: brcmstb: Do not assume that register field starts at LSB PCI: brcmstb: Use internal register to change link capability PCI: brcmstb: Set generation limit before PCIe link up PCI: brcmstb: Add BCM2712 support PCI: brcmstb: Expand inbound window size up to 64GB PCI: brcmstb: Reuse pcie_cfg_data structure PCI: brcmstb: Add a softdep to MIP MSI-X driver irqchip: Add Broadcom BCM2712 MSI-X interrupt controller dt-bindings: PCI: brcmstb: Update bindings for PCIe on BCM2712 dt-bindings: interrupt-controller: Add BCM2712 MSI-X bindings PCI: brcmstb: Fix missing of_node_put() in brcm_pcie_probe()
2 parents c51638f + 2d72d81 commit b797896

File tree

6 files changed

+506
-67
lines changed

6 files changed

+506
-67
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interrupt-controller/brcm,bcm2712-msix.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Broadcom bcm2712 MSI-X Interrupt Peripheral support
8+
9+
maintainers:
10+
- Stanimir Varbanov <[email protected]>
11+
12+
description:
13+
This interrupt controller is used to provide interrupt vectors to the
14+
generic interrupt controller (GIC) on bcm2712. It will be used as
15+
external MSI-X controller for PCIe root complex.
16+
17+
allOf:
18+
- $ref: /schemas/interrupt-controller/msi-controller.yaml#
19+
20+
properties:
21+
compatible:
22+
const: brcm,bcm2712-mip
23+
24+
reg:
25+
items:
26+
- description: Base register address
27+
- description: PCIe message address
28+
29+
"#msi-cells":
30+
const: 0
31+
32+
brcm,msi-offset:
33+
$ref: /schemas/types.yaml#/definitions/uint32
34+
description: Shift the allocated MSI's.
35+
36+
unevaluatedProperties: false
37+
38+
required:
39+
- compatible
40+
- reg
41+
- msi-controller
42+
- msi-ranges
43+
44+
examples:
45+
- |
46+
#include <dt-bindings/interrupt-controller/arm-gic.h>
47+
48+
axi {
49+
#address-cells = <2>;
50+
#size-cells = <2>;
51+
52+
msi-controller@1000130000 {
53+
compatible = "brcm,bcm2712-mip";
54+
reg = <0x10 0x00130000 0x00 0xc0>,
55+
<0xff 0xfffff000 0x00 0x1000>;
56+
msi-controller;
57+
#msi-cells = <0>;
58+
msi-ranges = <&gicv2 GIC_SPI 128 IRQ_TYPE_EDGE_RISING 64>;
59+
};
60+
};

Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ properties:
1414
items:
1515
- enum:
1616
- brcm,bcm2711-pcie # The Raspberry Pi 4
17+
- brcm,bcm2712-pcie # Raspberry Pi 5
1718
- brcm,bcm4908-pcie
1819
- brcm,bcm7211-pcie # Broadcom STB version of RPi4
1920
- brcm,bcm7216-pcie # Broadcom 7216 Arm
@@ -101,7 +102,10 @@ properties:
101102

102103
reset-names:
103104
minItems: 1
104-
maxItems: 3
105+
items:
106+
- enum: [perst, rescal]
107+
- const: bridge
108+
- const: swinit
105109

106110
required:
107111
- compatible

drivers/irqchip/Kconfig

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,22 @@ config I8259
109109
bool
110110
select IRQ_DOMAIN
111111

112+
config BCM2712_MIP
113+
tristate "Broadcom BCM2712 MSI-X Interrupt Peripheral support"
114+
depends on ARCH_BRCMSTB || COMPILE_TEST
115+
default m if ARCH_BRCMSTB
116+
depends on ARM_GIC
117+
select GENERIC_IRQ_CHIP
118+
select IRQ_DOMAIN_HIERARCHY
119+
select GENERIC_MSI_IRQ
120+
select IRQ_MSI_LIB
121+
help
122+
Enable support for the Broadcom BCM2712 MSI-X target peripheral
123+
(MIP) needed by brcmstb PCIe to handle MSI-X interrupts on
124+
Raspberry Pi 5.
125+
126+
If unsure say n.
127+
112128
config BCM6345_L1_IRQ
113129
bool
114130
select GENERIC_IRQ_CHIP

drivers/irqchip/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ obj-$(CONFIG_XTENSA_MX) += irq-xtensa-mx.o
6363
obj-$(CONFIG_XILINX_INTC) += irq-xilinx-intc.o
6464
obj-$(CONFIG_IRQ_CROSSBAR) += irq-crossbar.o
6565
obj-$(CONFIG_SOC_VF610) += irq-vf610-mscm-ir.o
66+
obj-$(CONFIG_BCM2712_MIP) += irq-bcm2712-mip.o
6667
obj-$(CONFIG_BCM6345_L1_IRQ) += irq-bcm6345-l1.o
6768
obj-$(CONFIG_BCM7038_L1_IRQ) += irq-bcm7038-l1.o
6869
obj-$(CONFIG_BCM7120_L2_IRQ) += irq-bcm7120-l2.o

0 commit comments

Comments
 (0)