TI PCI Controllers

PCIe DesignWare Controller
 - compatible: Should be "ti,dra7-pcie" for RC (deprecated)
	       Should be "ti,dra7-pcie-ep" for EP (deprecated)
	       Should be "ti,dra746-pcie-rc" for dra74x/dra76 in RC mode
	       Should be "ti,dra746-pcie-ep" for dra74x/dra76 in EP mode
	       Should be "ti,dra726-pcie-rc" for dra72x in RC mode
	       Should be "ti,dra726-pcie-ep" for dra72x in EP mode
 - phys : list of PHY specifiers (used by generic PHY framework)
 - phy-names : must be "pcie-phy0", "pcie-phy1", "pcie-phyN".. based on the
	       number of PHYs as specified in *phys* property.
 - ti,hwmods : Name of the hwmod associated to the pcie, "pcie<X>",
	       where <X> is the instance number of the pcie from the HW spec.
 - num-lanes as specified in ../designware-pcie.txt
 - ti,syscon-lane-sel : phandle/offset pair. Phandle to the system control
			module and the register offset to specify lane
			selection.

HOST MODE
=========
 - reg : Two register ranges as listed in the reg-names property
 - reg-names : The first entry must be "ti-conf" for the TI-specific registers
	       The second entry must be "rc-dbics" for the DesignWare PCIe
	       registers
	       The third entry must be "config" for the PCIe configuration space
 - interrupts : Two interrupt entries must be specified. The first one is for
		main interrupt line and the second for MSI interrupt line.
 - #address-cells,
   #size-cells,
   #interrupt-cells,
   device_type,
   ranges,
   interrupt-map-mask,
   interrupt-map : as specified in ../designware-pcie.txt
 - ti,syscon-unaligned-access: phandle to the syscon DT node. The 1st argument
			       should contain the register offset within syscon
			       and the 2nd argument should contain the bit field
			       for setting the bit to enable unaligned
			       access.

DEVICE MODE
===========
 - reg : Four register ranges as listed in the reg-names property
 - reg-names : "ti-conf" for the TI-specific registers
	       "ep_dbics" for the standard configuration registers as
		they are locally accessed within the DIF CS space
	       "ep_dbics2" for the standard configuration registers as
		they are locally accessed within the DIF CS2 space
	       "addr_space" used to map remote RC address space
 - interrupts : one interrupt entries must be specified for main interrupt.
 - num-ib-windows : number of inbound address translation windows
 - num-ob-windows : number of outbound address translation windows
 - ti,syscon-unaligned-access: phandle to the syscon DT node. The 1st argument
			       should contain the register offset within syscon
			       and the 2nd argument should contain the bit field
			       for setting the bit to enable unaligned
			       access.

Optional Property:
 - gpios : Should be added if a GPIO line is required to drive PERST# line

NOTE: Two DT nodes may be added for each PCI controller; one for host
mode and another for device mode. So in order for PCI to
work in host mode, EP mode DT node should be disabled and in order to PCI to
work in EP mode, host mode DT node should be disabled. Host mode and EP
mode are mutually exclusive.

Example:
axi {
	compatible = "simple-bus";
	#size-cells = <1>;
	#address-cells = <1>;
	ranges = <0x51000000 0x51000000 0x3000
		  0x0	     0x20000000 0x10000000>;
	pcie@51000000 {
		compatible = "ti,dra7-pcie";
		reg = <0x51000000 0x2000>, <0x51002000 0x14c>, <0x1000 0x2000>;
		reg-names = "rc_dbics", "ti_conf", "config";
		interrupts = <0 232 0x4>, <0 233 0x4>;
		#address-cells = <3>;
		#size-cells = <2>;
		device_type = "pci";
		ranges = <0x81000000 0 0          0x03000 0 0x00010000
			  0x82000000 0 0x20013000 0x13000 0 0xffed000>;
		#interrupt-cells = <1>;
		num-lanes = <1>;
		ti,hwmods = "pcie1";
		phys = <&pcie1_phy>;
		phy-names = "pcie-phy0";
		interrupt-map-mask = <0 0 0 7>;
		interrupt-map = <0 0 0 1 &pcie_intc 1>,
				<0 0 0 2 &pcie_intc 2>,
				<0 0 0 3 &pcie_intc 3>,
				<0 0 0 4 &pcie_intc 4>;
		pcie_intc: interrupt-controller {
			interrupt-controller;
			#address-cells = <0>;
			#interrupt-cells = <1>;
		};
	};
};
