1*4882a593SmuzhiyunTI Keystone PCIe interface 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunKeystone PCI host Controller is based on the Synopsys DesignWare PCI 4*4882a593Smuzhiyunhardware version 3.65. It shares common functions with the PCIe DesignWare 5*4882a593Smuzhiyuncore driver and inherits common properties defined in 6*4882a593SmuzhiyunDocumentation/devicetree/bindings/pci/designware-pcie.txt 7*4882a593Smuzhiyun 8*4882a593SmuzhiyunPlease refer to Documentation/devicetree/bindings/pci/designware-pcie.txt 9*4882a593Smuzhiyunfor the details of DesignWare DT bindings. Additional properties are 10*4882a593Smuzhiyundescribed here as well as properties that are not applicable. 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunRequired Properties:- 13*4882a593Smuzhiyun 14*4882a593Smuzhiyuncompatibility: Should be "ti,keystone-pcie" for RC on Keystone2 SoC 15*4882a593Smuzhiyun Should be "ti,am654-pcie-rc" for RC on AM654x SoC 16*4882a593Smuzhiyunreg: Three register ranges as listed in the reg-names property 17*4882a593Smuzhiyunreg-names: "dbics" for the DesignWare PCIe registers, "app" for the 18*4882a593Smuzhiyun TI specific application registers, "config" for the 19*4882a593Smuzhiyun configuration space address 20*4882a593Smuzhiyun 21*4882a593Smuzhiyunpcie_msi_intc : Interrupt controller device node for MSI IRQ chip 22*4882a593Smuzhiyun interrupt-cells: should be set to 1 23*4882a593Smuzhiyun interrupts: GIC interrupt lines connected to PCI MSI interrupt lines 24*4882a593Smuzhiyun (required if the compatible is "ti,keystone-pcie") 25*4882a593Smuzhiyunmsi-map: As specified in Documentation/devicetree/bindings/pci/pci-msi.txt 26*4882a593Smuzhiyun (required if the compatible is "ti,am654-pcie-rc". 27*4882a593Smuzhiyun 28*4882a593Smuzhiyunti,syscon-pcie-id : phandle to the device control module required to set device 29*4882a593Smuzhiyun id and vendor id. 30*4882a593Smuzhiyunti,syscon-pcie-mode : phandle to the device control module required to configure 31*4882a593Smuzhiyun PCI in either RC mode or EP mode. 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun Example: 34*4882a593Smuzhiyun pcie_msi_intc: msi-interrupt-controller { 35*4882a593Smuzhiyun interrupt-controller; 36*4882a593Smuzhiyun #interrupt-cells = <1>; 37*4882a593Smuzhiyun interrupt-parent = <&gic>; 38*4882a593Smuzhiyun interrupts = <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>, 39*4882a593Smuzhiyun <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>, 40*4882a593Smuzhiyun <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>, 41*4882a593Smuzhiyun <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>, 42*4882a593Smuzhiyun <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>, 43*4882a593Smuzhiyun <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>, 44*4882a593Smuzhiyun <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>, 45*4882a593Smuzhiyun <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>; 46*4882a593Smuzhiyun }; 47*4882a593Smuzhiyun 48*4882a593Smuzhiyunpcie_intc: Interrupt controller device node for Legacy IRQ chip 49*4882a593Smuzhiyun interrupt-cells: should be set to 1 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun Example: 52*4882a593Smuzhiyun pcie_intc: legacy-interrupt-controller { 53*4882a593Smuzhiyun interrupt-controller; 54*4882a593Smuzhiyun #interrupt-cells = <1>; 55*4882a593Smuzhiyun interrupt-parent = <&gic>; 56*4882a593Smuzhiyun interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>, 57*4882a593Smuzhiyun <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>, 58*4882a593Smuzhiyun <GIC_SPI 28 IRQ_TYPE_EDGE_RISING>, 59*4882a593Smuzhiyun <GIC_SPI 29 IRQ_TYPE_EDGE_RISING>; 60*4882a593Smuzhiyun }; 61*4882a593Smuzhiyun 62*4882a593SmuzhiyunOptional properties:- 63*4882a593Smuzhiyun phys: phandle to generic Keystone SerDes PHY for PCI 64*4882a593Smuzhiyun phy-names: name of the generic Keystone SerDes PHY for PCI 65*4882a593Smuzhiyun - If boot loader already does PCI link establishment, then phys and 66*4882a593Smuzhiyun phy-names shouldn't be present. 67*4882a593Smuzhiyun interrupts: platform interrupt for error interrupts. 68*4882a593Smuzhiyun 69*4882a593SmuzhiyunDesignWare DT Properties not applicable for Keystone PCI 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun1. pcie_bus clock-names not used. Instead, a phandle to phys is used. 72*4882a593Smuzhiyun 73*4882a593SmuzhiyunAM654 PCIe Endpoint 74*4882a593Smuzhiyun=================== 75*4882a593Smuzhiyun 76*4882a593SmuzhiyunRequired Properties:- 77*4882a593Smuzhiyun 78*4882a593Smuzhiyuncompatibility: Should be "ti,am654-pcie-ep" for EP on AM654x SoC 79*4882a593Smuzhiyunreg: Four register ranges as listed in the reg-names property 80*4882a593Smuzhiyunreg-names: "dbics" for the DesignWare PCIe registers, "app" for the 81*4882a593Smuzhiyun TI specific application registers, "atu" for the 82*4882a593Smuzhiyun Address Translation Unit configuration registers and 83*4882a593Smuzhiyun "addr_space" used to map remote RC address space 84*4882a593Smuzhiyunnum-ib-windows: As specified in 85*4882a593Smuzhiyun Documentation/devicetree/bindings/pci/designware-pcie.txt 86*4882a593Smuzhiyunnum-ob-windows: As specified in 87*4882a593Smuzhiyun Documentation/devicetree/bindings/pci/designware-pcie.txt 88*4882a593Smuzhiyunnum-lanes: As specified in 89*4882a593Smuzhiyun Documentation/devicetree/bindings/pci/designware-pcie.txt 90*4882a593Smuzhiyunpower-domains: As documented by the generic PM domain bindings in 91*4882a593Smuzhiyun Documentation/devicetree/bindings/power/power_domain.txt. 92*4882a593Smuzhiyunti,syscon-pcie-mode: phandle to the device control module required to configure 93*4882a593Smuzhiyun PCI in either RC mode or EP mode. 94*4882a593Smuzhiyun 95*4882a593SmuzhiyunOptional properties:- 96*4882a593Smuzhiyun 97*4882a593Smuzhiyunphys: list of PHY specifiers (used by generic PHY framework) 98*4882a593Smuzhiyunphy-names: must be "pcie-phy0", "pcie-phy1", "pcie-phyN".. based on the 99*4882a593Smuzhiyun number of lanes as specified in *num-lanes* property. 100*4882a593Smuzhiyun("phys" and "phy-names" DT bindings are specified in 101*4882a593SmuzhiyunDocumentation/devicetree/bindings/phy/phy-bindings.txt) 102*4882a593Smuzhiyuninterrupts: platform interrupt for error interrupts. 103*4882a593Smuzhiyun 104*4882a593Smuzhiyunpcie-ep { 105*4882a593Smuzhiyun compatible = "ti,am654-pcie-ep"; 106*4882a593Smuzhiyun reg = <0x5500000 0x1000>, <0x5501000 0x1000>, 107*4882a593Smuzhiyun <0x10000000 0x8000000>, <0x5506000 0x1000>; 108*4882a593Smuzhiyun reg-names = "app", "dbics", "addr_space", "atu"; 109*4882a593Smuzhiyun power-domains = <&k3_pds 120>; 110*4882a593Smuzhiyun ti,syscon-pcie-mode = <&pcie0_mode>; 111*4882a593Smuzhiyun num-lanes = <1>; 112*4882a593Smuzhiyun num-ib-windows = <16>; 113*4882a593Smuzhiyun num-ob-windows = <16>; 114*4882a593Smuzhiyun interrupts = <GIC_SPI 340 IRQ_TYPE_EDGE_RISING>; 115*4882a593Smuzhiyun}; 116