Freescale Layerscape PCIe controller

This PCIe host controller is based on the Synopsys DesignWare PCIe IP
and thus inherits all the common properties defined in snps,dw-pcie.yaml.

This controller derives its clocks from the Reset Configuration Word (RCW)
which is used to describe the PLL settings at the time of chip-reset.

Also as per the available Reference Manuals, there is no specific 'version'
register available in the Freescale PCIe controller register set,
which can allow determining the underlying DesignWare PCIe controller version
information.

Required properties:
- compatible: should contain the platform identifier such as:
  RC mode:
        "fsl,ls1021a-pcie"
        "fsl,ls2080a-pcie", "fsl,ls2085a-pcie"
        "fsl,ls2088a-pcie"
        "fsl,ls1088a-pcie"
        "fsl,ls1046a-pcie"
        "fsl,ls1043a-pcie"
        "fsl,ls1012a-pcie"
        "fsl,ls1028a-pcie"
  EP mode:
	"fsl,ls1046a-pcie-ep", "fsl,ls-pcie-ep"
	"fsl,ls1088a-pcie-ep", "fsl,ls-pcie-ep"
	"fsl,ls2088a-pcie-ep", "fsl,ls-pcie-ep"
	"fsl,lx2160ar2-pcie-ep", "fsl,ls-pcie-ep"
- reg: base addresses and lengths of the PCIe controller register blocks.
- interrupts: A list of interrupt outputs of the controller. Must contain an
  entry for each entry in the interrupt-names property.
- interrupt-names: Must include the following entries:
  "intr": The interrupt that is asserted for controller interrupts
- fsl,pcie-scfg: Must include two entries.
  The first entry must be a link to the SCFG device node
  The second entry must be '0' or '1' based on physical PCIe controller index.
  This is used to get SCFG PEXN registers
- dma-coherent: Indicates that the hardware IP block can ensure the coherency
  of the data transferred from/to the IP block. This can avoid the software
  cache flush/invalid actions, and improve the performance significantly.

Example:

	pcie@3400000 {
		compatible = "fsl,ls1021a-pcie";
		reg = <0x00 0x03400000 0x0 0x00010000   /* controller registers */
		       0x40 0x00000000 0x0 0x00002000>; /* configuration space */
		reg-names = "regs", "config";
		interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>; /* controller interrupt */
		interrupt-names = "intr";
		fsl,pcie-scfg = <&scfg 0>;
		#address-cells = <3>;
		#size-cells = <2>;
		device_type = "pci";
		dma-coherent;
		num-lanes = <4>;
		bus-range = <0x0 0xff>;
		ranges = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000   /* downstream I/O */
			  0xc2000000 0x0 0x20000000 0x40 0x20000000 0x0 0x20000000   /* prefetchable memory */
			  0x82000000 0x0 0x40000000 0x40 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
		#interrupt-cells = <1>;
		interrupt-map-mask = <0 0 0 7>;
		interrupt-map = <0000 0 0 1 &gic GIC_SPI 91  IRQ_TYPE_LEVEL_HIGH>,
				<0000 0 0 2 &gic GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
				<0000 0 0 3 &gic GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
				<0000 0 0 4 &gic GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
	};
