Brcmstb PCIe Host Controller Device Tree Bindings

Introduction:

The brcmstb host controller closely follows the example set in

	[1] http://devicetree.org/Device_Tree_Usage#PCI_Host_Bridge

The rest of this document explains some added customizations and
offers an example Brcmstb PCIe host controller DT node.

Required Properties:
  reg -- the register start address and length for the PCIe block.
      Additional start,length pairs may be specified for clock addresses.
  interrupts -- this must be specified but it is used indirectly.  Interrupt
      zero must be specified; the Brcmstb driver code uses this interrupt
      to determine the offset used for all interrupts, specifically, those
      listed in interrupt-map.
  compatible -- must specify the string "brcm,pci-plat-dev".
  #address-cells -- the number of address cells for PCI-space.
  #size-cells -- the number of size cells for PCI-space.
  ranges -- See [1]; a specification of the outbound windows for the host
      controller.  Each outbound window is described by a 7-tuple:
          (3 entries) -- PCIe space start address (0th entry is ignored).
          (2 entries) -- CPU/System start address
          (2 entries) -- Size of region.
      Due to hardware limitations, there may be a maximum of four windows
      specified.
  #interrupt-cells -- number of cells used to describe the interrupt.
  interrupt-map -- See [1]; each interrupt requires 7 entries, and
      currently all but the fifth entry (order 0) -- the interrupt
      number -- is ignored.  There must be four interrupts specified
      for the PCI's INTA, INTB, INTC, and INTD.

Optional Properties:
  interrupt-names -- names of the interrupts listed in the interrupt map.
  clocks -- list of clock phandles.  If specified, this should list one
      clock.
  clock-names -- the "local" names of the clocks specified in 'clocks'.  Note
      that if the 'clocks' property is given, 'clock-names' is mandatory,
      and the name of the clock is expected to be "sw_pcie".
  brcm,ssc -- (boolean) indicates usage of spread-spectrum clocking.
  brcm,gen --  (integer) indicates desired generation of link:
      1 => 2.5 Gbps, 2 => 5.0 Gbps, 3 => 8.0 Gbps.

Example Node:

	pcie@f0460000 {
		reg = <0x0 0xf0460000 0x0 0x9310>;
		interrupts = <0x0 0x0 0x4>;
		compatible = "brcm,pci-plat-dev";
		#address-cells = <3>;
		#size-cells = <2>;
		ranges = <0x02000000 0x00000000 0x00000000 0x00000000 0xc0000000 0x00000000 0x08000000
			  0x02000000 0x00000000 0x08000000 0x00000000 0xc8000000 0x00000000 0x08000000>;
		#interrupt-cells = <1>;
		interrupt-map-mask = <0xf800 0 0 7>;
		interrupt-map = <0 0 0 1 &intc 47 3
				 0 0 0 2 &intc 48 3
				 0 0 0 3 &intc 49 3
				 0 0 0 4 &intc 50 3>;
		interrupt-names = "pcie_0_inta",
				  "pcie_0_intb",
				  "pcie_0_intc",
				  "pcie_0_intd";
		clocks = <&sw_pcie0>;
		clock-names = "sw_pcie";
		brcm,ssc;
		brcm,gen = <1>;
	};
