1 TI PCI Controllers 1 TI PCI Controllers 2 2 3 PCIe DesignWare Controller 3 PCIe DesignWare Controller 4 - compatible: Should be "ti,dra7-pcie" for RC 4 - compatible: Should be "ti,dra7-pcie" for RC (deprecated) 5 Should be "ti,dra7-pcie-ep" for 5 Should be "ti,dra7-pcie-ep" for EP (deprecated) 6 Should be "ti,dra746-pcie-rc" f 6 Should be "ti,dra746-pcie-rc" for dra74x/dra76 in RC mode 7 Should be "ti,dra746-pcie-ep" f 7 Should be "ti,dra746-pcie-ep" for dra74x/dra76 in EP mode 8 Should be "ti,dra726-pcie-rc" f 8 Should be "ti,dra726-pcie-rc" for dra72x in RC mode 9 Should be "ti,dra726-pcie-ep" f 9 Should be "ti,dra726-pcie-ep" for dra72x in EP mode 10 - phys : list of PHY specifiers (used by gene 10 - phys : list of PHY specifiers (used by generic PHY framework) 11 - phy-names : must be "pcie-phy0", "pcie-phy1 11 - phy-names : must be "pcie-phy0", "pcie-phy1", "pcie-phyN".. based on the 12 number of PHYs as specified in 12 number of PHYs as specified in *phys* property. 13 - ti,hwmods : Name of the hwmod associated to 13 - ti,hwmods : Name of the hwmod associated to the pcie, "pcie<X>", 14 where <X> is the instance numbe 14 where <X> is the instance number of the pcie from the HW spec. 15 - num-lanes as specified in ../snps,dw-pcie.y 15 - num-lanes as specified in ../snps,dw-pcie.yaml 16 - ti,syscon-lane-sel : phandle/offset pair. P 16 - ti,syscon-lane-sel : phandle/offset pair. Phandle to the system control 17 module and the registe 17 module and the register offset to specify lane 18 selection. 18 selection. 19 19 20 HOST MODE 20 HOST MODE 21 ========= 21 ========= 22 - reg : Two register ranges as listed in the 22 - reg : Two register ranges as listed in the reg-names property 23 - reg-names : The first entry must be "ti-con 23 - reg-names : The first entry must be "ti-conf" for the TI-specific registers 24 The second entry must be "rc-db 24 The second entry must be "rc-dbics" for the DesignWare PCIe 25 registers 25 registers 26 The third entry must be "config 26 The third entry must be "config" for the PCIe configuration space 27 - interrupts : Two interrupt entries must be 27 - interrupts : Two interrupt entries must be specified. The first one is for 28 main interrupt line and the se 28 main interrupt line and the second for MSI interrupt line. 29 - #address-cells, 29 - #address-cells, 30 #size-cells, 30 #size-cells, 31 #interrupt-cells, 31 #interrupt-cells, 32 device_type, 32 device_type, 33 ranges, 33 ranges, 34 interrupt-map-mask, 34 interrupt-map-mask, 35 interrupt-map : as specified in ../snps,dw- 35 interrupt-map : as specified in ../snps,dw-pcie.yaml 36 - ti,syscon-unaligned-access: phandle to the 36 - ti,syscon-unaligned-access: phandle to the syscon DT node. The 1st argument 37 should contain 37 should contain the register offset within syscon 38 and the 2nd arg 38 and the 2nd argument should contain the bit field 39 for setting the 39 for setting the bit to enable unaligned 40 access. 40 access. 41 41 42 DEVICE MODE 42 DEVICE MODE 43 =========== 43 =========== 44 - reg : Four register ranges as listed in the 44 - reg : Four register ranges as listed in the reg-names property 45 - reg-names : "ti-conf" for the TI-specific r 45 - reg-names : "ti-conf" for the TI-specific registers 46 "ep_dbics" for the standard con 46 "ep_dbics" for the standard configuration registers as 47 they are locally accessed with 47 they are locally accessed within the DIF CS space 48 "ep_dbics2" for the standard co 48 "ep_dbics2" for the standard configuration registers as 49 they are locally accessed with 49 they are locally accessed within the DIF CS2 space 50 "addr_space" used to map remote 50 "addr_space" used to map remote RC address space 51 - interrupts : one interrupt entries must be 51 - interrupts : one interrupt entries must be specified for main interrupt. 52 - num-ib-windows : number of inbound address 52 - num-ib-windows : number of inbound address translation windows 53 - num-ob-windows : number of outbound address 53 - num-ob-windows : number of outbound address translation windows 54 - ti,syscon-unaligned-access: phandle to the 54 - ti,syscon-unaligned-access: phandle to the syscon DT node. The 1st argument 55 should contain 55 should contain the register offset within syscon 56 and the 2nd arg 56 and the 2nd argument should contain the bit field 57 for setting the 57 for setting the bit to enable unaligned 58 access. 58 access. 59 59 60 Optional Property: 60 Optional Property: 61 - gpios : Should be added if a GPIO line is r 61 - gpios : Should be added if a GPIO line is required to drive PERST# line 62 62 63 NOTE: Two DT nodes may be added for each PCI c 63 NOTE: Two DT nodes may be added for each PCI controller; one for host 64 mode and another for device mode. So in order 64 mode and another for device mode. So in order for PCI to 65 work in host mode, EP mode DT node should be d 65 work in host mode, EP mode DT node should be disabled and in order to PCI to 66 work in EP mode, host mode DT node should be d 66 work in EP mode, host mode DT node should be disabled. Host mode and EP 67 mode are mutually exclusive. 67 mode are mutually exclusive. 68 68 69 Example: 69 Example: 70 axi { 70 axi { 71 compatible = "simple-bus"; 71 compatible = "simple-bus"; 72 #size-cells = <1>; 72 #size-cells = <1>; 73 #address-cells = <1>; 73 #address-cells = <1>; 74 ranges = <0x51000000 0x51000000 0x3000 74 ranges = <0x51000000 0x51000000 0x3000 75 0x0 0x20000000 0x1000 75 0x0 0x20000000 0x10000000>; 76 pcie@51000000 { 76 pcie@51000000 { 77 compatible = "ti,dra7-pcie"; 77 compatible = "ti,dra7-pcie"; 78 reg = <0x51000000 0x2000>, <0x 78 reg = <0x51000000 0x2000>, <0x51002000 0x14c>, <0x1000 0x2000>; 79 reg-names = "rc_dbics", "ti_co 79 reg-names = "rc_dbics", "ti_conf", "config"; 80 interrupts = <0 232 0x4>, <0 2 80 interrupts = <0 232 0x4>, <0 233 0x4>; 81 #address-cells = <3>; 81 #address-cells = <3>; 82 #size-cells = <2>; 82 #size-cells = <2>; 83 device_type = "pci"; 83 device_type = "pci"; 84 ranges = <0x81000000 0 0 84 ranges = <0x81000000 0 0 0x03000 0 0x00010000 85 0x82000000 0 0x20013 85 0x82000000 0 0x20013000 0x13000 0 0xffed000>; 86 #interrupt-cells = <1>; 86 #interrupt-cells = <1>; 87 num-lanes = <1>; 87 num-lanes = <1>; 88 ti,hwmods = "pcie1"; 88 ti,hwmods = "pcie1"; 89 phys = <&pcie1_phy>; 89 phys = <&pcie1_phy>; 90 phy-names = "pcie-phy0"; 90 phy-names = "pcie-phy0"; 91 interrupt-map-mask = <0 0 0 7> 91 interrupt-map-mask = <0 0 0 7>; 92 interrupt-map = <0 0 0 1 &pcie 92 interrupt-map = <0 0 0 1 &pcie_intc 1>, 93 <0 0 0 2 &pcie 93 <0 0 0 2 &pcie_intc 2>, 94 <0 0 0 3 &pcie 94 <0 0 0 3 &pcie_intc 3>, 95 <0 0 0 4 &pcie 95 <0 0 0 4 &pcie_intc 4>; 96 pcie_intc: interrupt-controlle 96 pcie_intc: interrupt-controller { 97 interrupt-controller; 97 interrupt-controller; 98 #address-cells = <0>; 98 #address-cells = <0>; 99 #interrupt-cells = <1> 99 #interrupt-cells = <1>; 100 }; 100 }; 101 }; 101 }; 102 }; 102 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.