Konstantin Porotchkin | 4eb09cd | 2017-02-08 17:34:13 +0200 | [diff] [blame] | 1 | Armada-8K PCIe DT details: |
| 2 | ========================== |
| 3 | |
| 4 | Armada-8k uses synopsis designware PCIe controller. |
| 5 | |
| 6 | Required properties: |
| 7 | - compatible : should be "marvell,armada8k-pcie", "snps,dw-pcie". |
| 8 | - reg: base addresses and lengths of the pcie control and global control registers. |
| 9 | "ctrl" registers points to the global control registers, while the "config" space |
| 10 | points to the pcie configuration registers as mentioned in dw-pcie dt bindings in the link below. |
| 11 | - interrupt-map-mask and interrupt-map, standard PCI properties to |
| 12 | define the mapping of the PCIe interface to interrupt numbers. |
| 13 | - All other definitions as per generic PCI bindings |
| 14 | See Linux kernel documentation: |
| 15 | "Documentation/devicetree/bindings/pci/designware-pcie.txt" |
| 16 | |
| 17 | Optional properties: |
| 18 | PHY support is still not supported for armada-8k, once it will, the following parameters can be used: |
| 19 | - phys : phandle to phy node associated with pcie controller. |
| 20 | - phy-names : must be "pcie-phy" |
| 21 | - marvell,reset-gpio : specifies a gpio that needs to be activated for plug-in |
| 22 | card reset signal release. |
| 23 | Example: |
| 24 | |
| 25 | cpm_pcie0: pcie@f2600000 { |
| 26 | compatible = "marvell,armada8k-pcie", "snps,dw-pcie"; |
| 27 | reg = <0 0xf2600000 0 0x10000>, |
| 28 | <0 0xf6f00000 0 0x80000>; |
| 29 | reg-names = "ctrl", "config"; |
| 30 | #address-cells = <3>; |
| 31 | #size-cells = <2>; |
| 32 | #interrupt-cells = <1>; |
| 33 | device_type = "pci"; |
| 34 | dma-coherent; |
| 35 | |
| 36 | bus-range = <0 0xff>; |
| 37 | ranges = |
| 38 | /* downstream I/O */ |
| 39 | <0x81000000 0 0xf9000000 0 0xf9000000 0 0x10000 |
| 40 | /* non-prefetchable memory */ |
| 41 | 0x82000000 0 0xf6000000 0 0xf6000000 0 0xf00000>; |
| 42 | interrupt-map-mask = <0 0 0 0>; |
| 43 | interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; |
| 44 | interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; |
| 45 | num-lanes = <1>; |
| 46 | clocks = <&cpm_syscon0 1 13>; |
| 47 | marvell,reset-gpio = <&cpm_gpio1 20 GPIO_ACTIVE_HIGH>; |
| 48 | status = "disabled"; |
| 49 | }; |