brcm,iproc-pcie.txt 2.3 KB

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