PCI: iproc: Add PAXC interface support
[linux-2.6-block.git] / Documentation / devicetree / bindings / pci / brcm,iproc-pcie.txt
CommitLineData
1b55d622
RJ
1* Broadcom iProc PCIe controller with the platform bus interface
2
3Required properties:
e8b8318d
RJ
4- compatible: Must be "brcm,iproc-pcie" for PAXB, or "brcm,iproc-pcie-paxc"
5 for PAXC. PAXB-based root complex is used for external endpoint devices.
6 PAXC-based root complex is connected to emulated endpoint devices
7 internal to the ASIC
1b55d622
RJ
8- reg: base address and length of the PCIe controller I/O register space
9- #interrupt-cells: set to <1>
10- interrupt-map-mask and interrupt-map, standard PCI properties to define the
11 mapping of the PCIe interface to interrupt numbers
12- linux,pci-domain: PCI domain ID. Should be unique for each host controller
13- bus-range: PCI bus numbers covered
14- #address-cells: set to <3>
15- #size-cells: set to <2>
16- device_type: set to "pci"
17- ranges: ranges for the PCI memory and I/O regions
18
19Optional properties:
20- phys: phandle of the PCIe PHY device
21- phy-names: must be "pcie-phy"
22
8d0afa1a
RJ
23- brcm,pcie-ob: Some iProc SoCs do not have the outbound address mapping done
24by the ASIC after power on reset. In this case, SW needs to configure it
25
26If the brcm,pcie-ob property is present, the following properties become
27effective:
28
29Required:
30- brcm,pcie-ob-axi-offset: The offset from the AXI address to the internal
31address used by the iProc PCIe core (not the PCIe address)
32- brcm,pcie-ob-window-size: The outbound address mapping window size (in MB)
33
34Optional:
35- brcm,pcie-ob-oarr-size: Some iProc SoCs need the OARR size bit to be set to
36increase the outbound window size
37
1b55d622
RJ
38Example:
39 pcie0: pcie@18012000 {
40 compatible = "brcm,iproc-pcie";
41 reg = <0x18012000 0x1000>;
42
43 #interrupt-cells = <1>;
44 interrupt-map-mask = <0 0 0 0>;
45 interrupt-map = <0 0 0 0 &gic GIC_SPI 100 IRQ_TYPE_NONE>;
46
47 linux,pci-domain = <0>;
48
49 bus-range = <0x00 0xff>;
50
51 #address-cells = <3>;
52 #size-cells = <2>;
53 device_type = "pci";
54 ranges = <0x81000000 0 0 0x28000000 0 0x00010000
55 0x82000000 0 0x20000000 0x20000000 0 0x04000000>;
56
57 phys = <&phy 0 5>;
58 phy-names = "pcie-phy";
8d0afa1a
RJ
59
60 brcm,pcie-ob;
61 brcm,pcie-ob-oarr-size;
62 brcm,pcie-ob-axi-offset = <0x00000000>;
63 brcm,pcie-ob-window-size = <256>;
1b55d622
RJ
64 };
65
66 pcie1: pcie@18013000 {
67 compatible = "brcm,iproc-pcie";
68 reg = <0x18013000 0x1000>;
69
70 #interrupt-cells = <1>;
71 interrupt-map-mask = <0 0 0 0>;
72 interrupt-map = <0 0 0 0 &gic GIC_SPI 106 IRQ_TYPE_NONE>;
73
74 linux,pci-domain = <1>;
75
76 bus-range = <0x00 0xff>;
77
78 #address-cells = <3>;
79 #size-cells = <2>;
80 device_type = "pci";
81 ranges = <0x81000000 0 0 0x48000000 0 0x00010000
82 0x82000000 0 0x40000000 0x40000000 0 0x04000000>;
83
84 phys = <&phy 1 6>;
85 phy-names = "pcie-phy";
86 };