Skip to content

Commit 9b2c25f

Browse files
committed
Merge branch 'remotes/lorenzo/pci/mvebu'
- Add Pali Rohár as pci-mvebu.c maintainer (Pali Rohár) - Make struct pci_bridge_emul_ops const (Pali Rohár) - Rename PCI_BRIDGE_EMUL_NO_PREFETCHABLE_BAR to PCI_BRIDGE_EMUL_NO_PREFMEM_FORWARD since it doesn't apply to BARs (Pali Rohár) - Add new flag PCI_BRIDGE_EMUL_NO_IO_FORWARD for bridges that don't support IO forwarding (Pali Rohár) - Add Kconfig help text for CONFIG_PCI_MVEBU (Pali Rohár) - Remove duplicate nports assignment (Pali Rohár) - Set PCI_BRIDGE_EMUL_NO_IO_FORWARD when IO is unsupported (Pali Rohár) - Initialize vendor, device and revision of emulated bridge (Pali Rohár) - Fix Data Link Layer Link Active reporting on emulated bridge (Pali Rohár) - Rearrange tests in bridge emulation for easier maintenance (Russell King) - Add emulated bridge support for PCIe extended capabilities (Russell King) - Add emulated bridge support for bridge Subsystem Vendor ID capability (Pali Rohár) - Configure Maximum Link Width based on DT "num-lanes" property (Pali Rohár) - Emulate bridge Subsystem Vendor ID capability (Pali Rohár) - Emulate AER Capability (Pali Rohár) - Use PCI core bridge->ops and bridge->child_ops to separate config accesses to Root Port vs downstream devices (Pali Rohár) - Unmask all INTx interrupts; they're reported via a single shared GIC source (Pali Rohár) - Add INTx support (Pali Rohár) * remotes/lorenzo/pci/mvebu: PCI: mvebu: Implement support for legacy INTx interrupts PCI: mvebu: Fix macro names and comments about legacy interrupts dt-bindings: PCI: mvebu: Update information about intx interrupts PCI: mvebu: Use child_ops API PCI: mvebu: Add support for Advanced Error Reporting registers on emulated bridge PCI: mvebu: Add support for PCI Bridge Subsystem Vendor ID on emulated bridge PCI: mvebu: Correctly configure x1/x4 mode dt-bindings: PCI: mvebu: Add num-lanes property PCI: pci-bridge-emul: Add support for PCI Bridge Subsystem Vendor ID capability PCI: pci-bridge-emul: Add support for PCIe extended capabilities PCI: pci-bridge-emul: Re-arrange register tests PCI: mvebu: Fix reporting Data Link Layer Link Active on emulated bridge PCI: mvebu: Update comment for PCI_EXP_LNKCTL register on emulated bridge PCI: mvebu: Update comment for PCI_EXP_LNKCAP register on emulated bridge PCI: mvebu: Properly initialize vendor, device and revision of emulated bridge PCI: mvebu: Set PCI_BRIDGE_EMUL_NO_IO_FORWARD when IO is unsupported PCI: mvebu: Remove duplicate nports assignment PCI: mvebu: Add help string for CONFIG_PCI_MVEBU option PCI: pci-bridge-emul: Add support for new flag PCI_BRIDGE_EMUL_NO_IO_FORWARD PCI: pci-bridge-emul: Rename PCI_BRIDGE_EMUL_NO_PREFETCHABLE_BAR to PCI_BRIDGE_EMUL_NO_PREFMEM_FORWARD PCI: pci-bridge-emul: Make struct pci_bridge_emul_ops as const MAINTAINERS: Add Pali Rohár as pci-mvebu.c maintainer
2 parents 0888e08 + ec07526 commit 9b2c25f

7 files changed

Lines changed: 506 additions & 140 deletions

File tree

Documentation/devicetree/bindings/pci/mvebu-pci.txt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,15 @@ and the following optional properties:
7777
- marvell,pcie-lane: the physical PCIe lane number, for ports having
7878
multiple lanes. If this property is not found, we assume that the
7979
value is 0.
80+
- num-lanes: number of SerDes PCIe lanes for this link (1 or 4)
8081
- reset-gpios: optional GPIO to PERST#
8182
- reset-delay-us: delay in us to wait after reset de-assertion, if not
8283
specified will default to 100ms, as required by the PCIe specification.
84+
- interrupt-names: list of interrupt names, supported are:
85+
- "intx" - interrupt line triggered by one of the legacy interrupt
86+
- interrupts or interrupts-extended: List of the interrupt sources which
87+
corresponding to the "interrupt-names". If non-empty then also additional
88+
'interrupt-controller' subnode must be defined.
8389

8490
Example:
8591

@@ -141,6 +147,7 @@ pcie-controller {
141147
interrupt-map = <0 0 0 0 &mpic 58>;
142148
marvell,pcie-port = <0>;
143149
marvell,pcie-lane = <0>;
150+
num-lanes = <1>;
144151
/* low-active PERST# reset on GPIO 25 */
145152
reset-gpios = <&gpio0 25 1>;
146153
/* wait 20ms for device settle after reset deassertion */
@@ -161,6 +168,7 @@ pcie-controller {
161168
interrupt-map = <0 0 0 0 &mpic 59>;
162169
marvell,pcie-port = <0>;
163170
marvell,pcie-lane = <1>;
171+
num-lanes = <1>;
164172
clocks = <&gateclk 6>;
165173
};
166174

@@ -177,6 +185,7 @@ pcie-controller {
177185
interrupt-map = <0 0 0 0 &mpic 60>;
178186
marvell,pcie-port = <0>;
179187
marvell,pcie-lane = <2>;
188+
num-lanes = <1>;
180189
clocks = <&gateclk 7>;
181190
};
182191

@@ -193,6 +202,7 @@ pcie-controller {
193202
interrupt-map = <0 0 0 0 &mpic 61>;
194203
marvell,pcie-port = <0>;
195204
marvell,pcie-lane = <3>;
205+
num-lanes = <1>;
196206
clocks = <&gateclk 8>;
197207
};
198208

@@ -209,6 +219,7 @@ pcie-controller {
209219
interrupt-map = <0 0 0 0 &mpic 62>;
210220
marvell,pcie-port = <1>;
211221
marvell,pcie-lane = <0>;
222+
num-lanes = <1>;
212223
clocks = <&gateclk 9>;
213224
};
214225

@@ -225,6 +236,7 @@ pcie-controller {
225236
interrupt-map = <0 0 0 0 &mpic 63>;
226237
marvell,pcie-port = <1>;
227238
marvell,pcie-lane = <1>;
239+
num-lanes = <1>;
228240
clocks = <&gateclk 10>;
229241
};
230242

@@ -241,6 +253,7 @@ pcie-controller {
241253
interrupt-map = <0 0 0 0 &mpic 64>;
242254
marvell,pcie-port = <1>;
243255
marvell,pcie-lane = <2>;
256+
num-lanes = <1>;
244257
clocks = <&gateclk 11>;
245258
};
246259

@@ -257,6 +270,7 @@ pcie-controller {
257270
interrupt-map = <0 0 0 0 &mpic 65>;
258271
marvell,pcie-port = <1>;
259272
marvell,pcie-lane = <3>;
273+
num-lanes = <1>;
260274
clocks = <&gateclk 12>;
261275
};
262276

@@ -273,6 +287,7 @@ pcie-controller {
273287
interrupt-map = <0 0 0 0 &mpic 99>;
274288
marvell,pcie-port = <2>;
275289
marvell,pcie-lane = <0>;
290+
num-lanes = <1>;
276291
clocks = <&gateclk 26>;
277292
};
278293

@@ -289,6 +304,7 @@ pcie-controller {
289304
interrupt-map = <0 0 0 0 &mpic 103>;
290305
marvell,pcie-port = <3>;
291306
marvell,pcie-lane = <0>;
307+
num-lanes = <1>;
292308
clocks = <&gateclk 27>;
293309
};
294310
};

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14784,6 +14784,7 @@ F: drivers/pci/controller/mobiveil/pcie-mobiveil*
1478414784

1478514785
PCI DRIVER FOR MVEBU (Marvell Armada 370 and Armada XP SOC support)
1478614786
M: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
14787+
M: Pali Rohár <pali@kernel.org>
1478714788
L: linux-pci@vger.kernel.org
1478814789
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
1478914790
S: Maintained

drivers/pci/controller/Kconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ config PCI_MVEBU
1010
depends on ARM
1111
depends on OF
1212
select PCI_BRIDGE_EMUL
13+
help
14+
Add support for Marvell EBU PCIe controller. This PCIe controller
15+
is used on 32-bit Marvell ARM SoCs: Dove, Kirkwood, Armada 370,
16+
Armada XP, Armada 375, Armada 38x and Armada 39x.
1317

1418
config PCI_AARDVARK
1519
tristate "Aardvark PCIe controller"

drivers/pci/controller/pci-aardvark.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -945,7 +945,7 @@ advk_pci_bridge_emul_pcie_conf_write(struct pci_bridge_emul *bridge,
945945
}
946946
}
947947

948-
static struct pci_bridge_emul_ops advk_pci_bridge_emul_ops = {
948+
static const struct pci_bridge_emul_ops advk_pci_bridge_emul_ops = {
949949
.read_base = advk_pci_bridge_emul_base_conf_read,
950950
.write_base = advk_pci_bridge_emul_base_conf_write,
951951
.read_pcie = advk_pci_bridge_emul_pcie_conf_read,

0 commit comments

Comments
 (0)