HiSilicon Hip05 and Hip06 PCIe host bridge DT description

HiSilicon PCIe host controller is based on the Synopsys DesignWare PCI core.
It shares common functions with the PCIe DesignWare core driver and inherits
common properties defined in
Documentation/devicetree/bindings/pci/designware-pci.txt.

Additional properties are described here:

Required properties
- compatible: Should contain "hisilicon,hip05-pcie" or "hisilicon,hip06-pcie".
- reg: Should contain rc_dbi, config registers location and length.
- reg-names: Must include the following entries:
  "rc_dbi": controller configuration registers;
  "config": PCIe configuration space registers.
- msi-parent: Should be its_pcie which is an ITS receiving MSI interrupts.
- port-id: Should be 0, 1, 2 or 3.

Optional properties:
- status: Either "ok" or "disabled".
- dma-coherent: Present if DMA operations are coherent.

Hip05 Example (note that Hip06 is the same except compatible):
	pcie@0xb0080000 {
		compatible = "hisilicon,hip05-pcie", "snps,dw-pcie";
		reg = <0 0xb0080000 0 0x10000>, <0x220 0x00000000 0 0x2000>;
		reg-names = "rc_dbi", "config";
		bus-range = <0  15>;
		msi-parent = <&its_pcie>;
		#address-cells = <3>;
		#size-cells = <2>;
		device_type = "pci";
		dma-coherent;
		ranges = <0x82000000 0 0x00000000 0x220 0x00000000 0 0x10000000>;
		num-lanes = <8>;
		port-id = <1>;
		#interrupt-cells = <1>;
		interrupt-map-mask = <0xf800 0 0 7>;
		interrupt-map = <0x0 0 0 1 &mbigen_pcie 1 10
				 0x0 0 0 2 &mbigen_pcie 2 11
				 0x0 0 0 3 &mbigen_pcie 3 12
				 0x0 0 0 4 &mbigen_pcie 4 13>;
	};

HiSilicon Hip06/Hip07 PCIe host bridge DT (almost-ECAM) description.

Some BIOSes place the host controller in a mode where it is ECAM
compliant for all devices other than the root complex. In such cases,
the host controller should be described as below.

The properties and their meanings are identical to those described in
host-generic-pci.txt except as listed below.

Properties of the host controller node that differ from
host-generic-pci.txt:

- compatible     : Must be "hisilicon,hip06-pcie-ecam", or
		   "hisilicon,hip07-pcie-ecam"

- reg            : Two entries: First the ECAM configuration space for any
		   other bus underneath the root bus. Second, the base
		   and size of the HiSilicon host bridge registers include
		   the RC's own config space.

Example:
	pcie0: pcie@a0090000 {
		compatible = "hisilicon,hip06-pcie-ecam";
		reg = <0 0xb0000000 0 0x2000000>,  /*  ECAM configuration space */
		      <0 0xa0090000 0 0x10000>; /* host bridge registers */
		bus-range = <0  31>;
		msi-map = <0x0000 &its_dsa 0x0000 0x2000>;
		msi-map-mask = <0xffff>;
		#address-cells = <3>;
		#size-cells = <2>;
		device_type = "pci";
		dma-coherent;
		ranges = <0x02000000 0 0xb2000000 0x0 0xb2000000 0 0x5ff0000
			  0x01000000 0 0 0 0xb7ff0000 0 0x10000>;
		#interrupt-cells = <1>;
		interrupt-map-mask = <0xf800 0 0 7>;
		interrupt-map = <0x0 0 0 1 &mbigen_pcie0 650 4
				 0x0 0 0 2 &mbigen_pcie0 650 4
				 0x0 0 0 3 &mbigen_pcie0 650 4
				 0x0 0 0 4 &mbigen_pcie0 650 4>;
	};
