xilinx-nwl-pcie.txt 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. * Xilinx NWL PCIe Root Port Bridge DT description
  2. Required properties:
  3. - compatible: Should contain "xlnx,nwl-pcie-2.11"
  4. - #address-cells: Address representation for root ports, set to <3>
  5. - #size-cells: Size representation for root ports, set to <2>
  6. - #interrupt-cells: specifies the number of cells needed to encode an
  7. interrupt source. The value must be 1.
  8. - reg: Should contain Bridge, PCIe Controller registers location,
  9. configuration space, and length
  10. - reg-names: Must include the following entries:
  11. "breg": bridge registers
  12. "pcireg": PCIe controller registers
  13. "cfg": configuration space region
  14. - device_type: must be "pci"
  15. - interrupts: Should contain NWL PCIe interrupt
  16. - interrupt-names: Must include the following entries:
  17. "msi1, msi0": interrupt asserted when an MSI is received
  18. "intx": interrupt asserted when a legacy interrupt is received
  19. "misc": interrupt asserted when miscellaneous interrupt is received
  20. - interrupt-map-mask and interrupt-map: standard PCI properties to define the
  21. mapping of the PCI interface to interrupt numbers.
  22. - ranges: ranges for the PCI memory regions (I/O space region is not
  23. supported by hardware)
  24. Please refer to the standard PCI bus binding document for a more
  25. detailed explanation
  26. - msi-controller: indicates that this is MSI controller node
  27. - msi-parent: MSI parent of the root complex itself
  28. - legacy-interrupt-controller: Interrupt controller device node for Legacy
  29. interrupts
  30. - interrupt-controller: identifies the node as an interrupt controller
  31. - #interrupt-cells: should be set to 1
  32. - #address-cells: specifies the number of cells needed to encode an
  33. address. The value must be 0.
  34. Example:
  35. ++++++++
  36. nwl_pcie: pcie@fd0e0000 {
  37. #address-cells = <3>;
  38. #size-cells = <2>;
  39. compatible = "xlnx,nwl-pcie-2.11";
  40. #interrupt-cells = <1>;
  41. msi-controller;
  42. device_type = "pci";
  43. interrupt-parent = <&gic>;
  44. interrupts = <0 114 4>, <0 115 4>, <0 116 4>, <0 117 4>, <0 118 4>;
  45. interrupt-names = "msi0", "msi1", "intx", "dummy", "misc";
  46. interrupt-map-mask = <0x0 0x0 0x0 0x7>;
  47. interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc 0x1>,
  48. <0x0 0x0 0x0 0x2 &pcie_intc 0x2>,
  49. <0x0 0x0 0x0 0x3 &pcie_intc 0x3>,
  50. <0x0 0x0 0x0 0x4 &pcie_intc 0x4>;
  51. msi-parent = <&nwl_pcie>;
  52. reg = <0x0 0xfd0e0000 0x0 0x1000>,
  53. <0x0 0xfd480000 0x0 0x1000>,
  54. <0x80 0x00000000 0x0 0x1000000>;
  55. reg-names = "breg", "pcireg", "cfg";
  56. ranges = <0x02000000 0x00000000 0xe0000000 0x00000000 0xe0000000 0x00000000 0x10000000 /* non-prefetchable memory */
  57. 0x43000000 0x00000006 0x00000000 0x00000006 0x00000000 0x00000002 0x00000000>;/* prefetchable memory */
  58. pcie_intc: legacy-interrupt-controller {
  59. interrupt-controller;
  60. #address-cells = <0>;
  61. #interrupt-cells = <1>;
  62. };
  63. };