Commit | Line | Data |
---|---|---|
1b55d622 RJ |
1 | * Broadcom iProc PCIe controller with the platform bus interface |
2 | ||
3 | Required 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 | ||
19 | Optional 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 |
24 | by the ASIC after power on reset. In this case, SW needs to configure it | |
25 | ||
26 | If the brcm,pcie-ob property is present, the following properties become | |
27 | effective: | |
28 | ||
29 | Required: | |
30 | - brcm,pcie-ob-axi-offset: The offset from the AXI address to the internal | |
31 | address 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 | ||
34 | Optional: | |
35 | - brcm,pcie-ob-oarr-size: Some iProc SoCs need the OARR size bit to be set to | |
36 | increase the outbound window size | |
37 | ||
1b55d622 RJ |
38 | Example: |
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 | }; |