blob: d46eb1ee9d8fa66005ed67338b347b81e4901f88 [file] [log] [blame]
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 be one of: "brcm,bcm7425-pcie", "brcm,bcm7435-pcie" or
"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.
supply-names -- the names of voltage regulators that the root
complex should turn off/on/on on suspend/resume/boot. This
is a string list.
supplies -- A collection of phandles to a regulator nodes, see
Documentation/devicetree/bindings/regulator/ for specific
bindings. The number and order of phandles must match
exactly the number of strings in the "supply-names" property.
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>;
supply-names = "vreg-wifi-pwr";
supplies = <&vreg-wifi-pwr>;
};