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