| * Broadcom iProc PCIe controller with the platform bus interface |
| |
| Required properties: |
| - compatible: Must be "brcm,iproc-pcie" |
| - reg: base address and length of the PCIe controller I/O register space |
| - #interrupt-cells: set to <1> |
| - interrupt-map-mask and interrupt-map, standard PCI properties to define the |
| mapping of the PCIe interface to interrupt numbers |
| - linux,pci-domain: PCI domain ID. Should be unique for each host controller |
| - bus-range: PCI bus numbers covered |
| - #address-cells: set to <3> |
| - #size-cells: set to <2> |
| - device_type: set to "pci" |
| - ranges: ranges for the PCI memory and I/O regions |
| |
| Optional properties: |
| - phys: phandle of the PCIe PHY device |
| - phy-names: must be "pcie-phy" |
| |
| - brcm,pcie-ob: Some iProc SoCs do not have the outbound address mapping done |
| by the ASIC after power on reset. In this case, SW needs to configure it |
| |
| If the brcm,pcie-ob property is present, the following properties become |
| effective: |
| |
| Required: |
| - brcm,pcie-ob-axi-offset: The offset from the AXI address to the internal |
| address used by the iProc PCIe core (not the PCIe address) |
| - brcm,pcie-ob-window-size: The outbound address mapping window size (in MB) |
| |
| Optional: |
| - brcm,pcie-ob-oarr-size: Some iProc SoCs need the OARR size bit to be set to |
| increase the outbound window size |
| |
| Example: |
| pcie0: pcie@18012000 { |
| compatible = "brcm,iproc-pcie"; |
| reg = <0x18012000 0x1000>; |
| |
| #interrupt-cells = <1>; |
| interrupt-map-mask = <0 0 0 0>; |
| interrupt-map = <0 0 0 0 &gic GIC_SPI 100 IRQ_TYPE_NONE>; |
| |
| linux,pci-domain = <0>; |
| |
| bus-range = <0x00 0xff>; |
| |
| #address-cells = <3>; |
| #size-cells = <2>; |
| device_type = "pci"; |
| ranges = <0x81000000 0 0 0x28000000 0 0x00010000 |
| 0x82000000 0 0x20000000 0x20000000 0 0x04000000>; |
| |
| phys = <&phy 0 5>; |
| phy-names = "pcie-phy"; |
| |
| brcm,pcie-ob; |
| brcm,pcie-ob-oarr-size; |
| brcm,pcie-ob-axi-offset = <0x00000000>; |
| brcm,pcie-ob-window-size = <256>; |
| }; |
| |
| pcie1: pcie@18013000 { |
| compatible = "brcm,iproc-pcie"; |
| reg = <0x18013000 0x1000>; |
| |
| #interrupt-cells = <1>; |
| interrupt-map-mask = <0 0 0 0>; |
| interrupt-map = <0 0 0 0 &gic GIC_SPI 106 IRQ_TYPE_NONE>; |
| |
| linux,pci-domain = <1>; |
| |
| bus-range = <0x00 0xff>; |
| |
| #address-cells = <3>; |
| #size-cells = <2>; |
| device_type = "pci"; |
| ranges = <0x81000000 0 0 0x48000000 0 0x00010000 |
| 0x82000000 0 0x40000000 0x40000000 0 0x04000000>; |
| |
| phys = <&phy 1 6>; |
| phy-names = "pcie-phy"; |
| }; |