-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
PCI: xilinx-nwl: Add support for Xilinx NWL PCIe Host Controller
Add PCIe Root Port driver for Xilinx PCIe NWL bridge IP. [bhelgaas: wait for link like dw_pcie_wait_for_link(), simplify bitmap error path, typos, whitespace, fold in Dan Carpenter's PTR_ERR() fix] Signed-off-by: Bharat Kumar Gogada <bharatku@xilinx.com> Signed-off-by: Ravi Kiran Gummaluri <rgummal@xilinx.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Reviewed-by: Marc Zyngier <marc.zyngier@arm.com> Acked-by: Rob Herring <robh@kernel.org>
- Loading branch information
Bharat Kumar Gogada
authored and
Bjorn Helgaas
committed
Mar 11, 2016
1 parent
92e963f
commit ab597d3
Showing
4 changed files
with
960 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
* Xilinx NWL PCIe Root Port Bridge DT description | ||
|
||
Required properties: | ||
- compatible: Should contain "xlnx,nwl-pcie-2.11" | ||
- #address-cells: Address representation for root ports, set to <3> | ||
- #size-cells: Size representation for root ports, set to <2> | ||
- #interrupt-cells: specifies the number of cells needed to encode an | ||
interrupt source. The value must be 1. | ||
- reg: Should contain Bridge, PCIe Controller registers location, | ||
configuration space, and length | ||
- reg-names: Must include the following entries: | ||
"breg": bridge registers | ||
"pcireg": PCIe controller registers | ||
"cfg": configuration space region | ||
- device_type: must be "pci" | ||
- interrupts: Should contain NWL PCIe interrupt | ||
- interrupt-names: Must include the following entries: | ||
"msi1, msi0": interrupt asserted when MSI is received | ||
"intx": interrupt asserted when a legacy interrupt is received | ||
"misc": interrupt asserted when miscellaneous is received | ||
- interrupt-map-mask and interrupt-map: standard PCI properties to define the | ||
mapping of the PCI interface to interrupt numbers. | ||
- ranges: ranges for the PCI memory regions (I/O space region is not | ||
supported by hardware) | ||
Please refer to the standard PCI bus binding document for a more | ||
detailed explanation | ||
- msi-controller: indicates that this is MSI controller node | ||
- msi-parent: MSI parent of the root complex itself | ||
- legacy-interrupt-controller: Interrupt controller device node for Legacy interrupts | ||
- interrupt-controller: identifies the node as an interrupt controller | ||
- #interrupt-cells: should be set to 1 | ||
- #address-cells: specifies the number of cells needed to encode an | ||
address. The value must be 0. | ||
|
||
|
||
Example: | ||
++++++++ | ||
|
||
nwl_pcie: pcie@fd0e0000 { | ||
#address-cells = <3>; | ||
#size-cells = <2>; | ||
compatible = "xlnx,nwl-pcie-2.11"; | ||
#interrupt-cells = <1>; | ||
msi-controller; | ||
device_type = "pci"; | ||
interrupt-parent = <&gic>; | ||
interrupts = <0 114 4>, <0 115 4>, <0 116 4>, <0 117 4>, <0 118 4>; | ||
interrupt-names = "msi0", "msi1", "intx", "dummy", "misc"; | ||
interrupt-map-mask = <0x0 0x0 0x0 0x7>; | ||
interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc 0x1>, | ||
<0x0 0x0 0x0 0x2 &pcie_intc 0x2>, | ||
<0x0 0x0 0x0 0x3 &pcie_intc 0x3>, | ||
<0x0 0x0 0x0 0x4 &pcie_intc 0x4>; | ||
|
||
msi-parent = <&nwl_pcie>; | ||
reg = <0x0 0xfd0e0000 0x0 0x1000>, | ||
<0x0 0xfd480000 0x0 0x1000>, | ||
<0x0 0xe0000000 0x0 0x1000000>; | ||
reg-names = "breg", "pcireg", "cfg"; | ||
ranges = <0x02000000 0x00000000 0xe1000000 0x00000000 0xe1000000 0 0x0f000000>; | ||
|
||
pcie_intc: legacy-interrupt-controller { | ||
interrupt-controller; | ||
#address-cells = <0>; | ||
#interrupt-cells = <1>; | ||
}; | ||
|
||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.