Back to home page

OSCL-LXR

 
 

    


0001 Aardvark PCIe controller
0002 
0003 This PCIe controller is used on the Marvell Armada 3700 ARM64 SoC.
0004 
0005 The Device Tree node describing an Aardvark PCIe controller must
0006 contain the following properties:
0007 
0008  - compatible: Should be "marvell,armada-3700-pcie"
0009  - reg: range of registers for the PCIe controller
0010  - interrupts: the interrupt line of the PCIe controller
0011  - #address-cells: set to <3>
0012  - #size-cells: set to <2>
0013  - device_type: set to "pci"
0014  - ranges: ranges for the PCI memory and I/O regions
0015  - #interrupt-cells: set to <1>
0016  - msi-controller: indicates that the PCIe controller can itself
0017    handle MSI interrupts
0018  - msi-parent: pointer to the MSI controller to be used
0019  - interrupt-map-mask and interrupt-map: standard PCI properties to
0020    define the mapping of the PCIe interface to interrupt numbers.
0021  - bus-range: PCI bus numbers covered
0022  - phys: the PCIe PHY handle
0023  - max-link-speed: see pci.txt
0024  - reset-gpios: see pci.txt
0025 
0026 In addition, the Device Tree describing an Aardvark PCIe controller
0027 must include a sub-node that describes the legacy interrupt controller
0028 built into the PCIe controller. This sub-node must have the following
0029 properties:
0030 
0031  - interrupt-controller
0032  - #interrupt-cells: set to <1>
0033 
0034 Example:
0035 
0036         pcie0: pcie@d0070000 {
0037                 compatible = "marvell,armada-3700-pcie";
0038                 device_type = "pci";
0039                 reg = <0 0xd0070000 0 0x20000>;
0040                 #address-cells = <3>;
0041                 #size-cells = <2>;
0042                 bus-range = <0x00 0xff>;
0043                 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
0044                 #interrupt-cells = <1>;
0045                 msi-controller;
0046                 msi-parent = <&pcie0>;
0047                 ranges = <0x82000000 0 0xe8000000   0 0xe8000000 0 0x1000000 /* Port 0 MEM */
0048                           0x81000000 0 0xe9000000   0 0xe9000000 0 0x10000>; /* Port 0 IO*/
0049                 interrupt-map-mask = <0 0 0 7>;
0050                 interrupt-map = <0 0 0 1 &pcie_intc 0>,
0051                                 <0 0 0 2 &pcie_intc 1>,
0052                                 <0 0 0 3 &pcie_intc 2>,
0053                                 <0 0 0 4 &pcie_intc 3>;
0054                 phys = <&comphy1 0>;
0055                 pcie_intc: interrupt-controller {
0056                         interrupt-controller;
0057                         #interrupt-cells = <1>;
0058                 };
0059         };