]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - Documentation/devicetree/bindings/pci/brcm,iproc-pcie.txt
Merge remote-tracking branch 'y2038/y2038'
[karo-tx-linux.git] / Documentation / devicetree / bindings / pci / brcm,iproc-pcie.txt
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
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
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";
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>;
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         };