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 MSI is received
  18. "intx": interrupt asserted when a legacy interrupt is received
  19. "misc": interrupt asserted when miscellaneous 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 interrupts
  29. - interrupt-controller: identifies the node as an interrupt controller
  30. - #interrupt-cells: should be set to 1
  31. - #address-cells: specifies the number of cells needed to encode an
  32. address. The value must be 0.
  33. Example:
  34. ++++++++
  35. nwl_pcie: pcie@fd0e0000 {
  36. #address-cells = <3>;
  37. #size-cells = <2>;
  38. compatible = "xlnx,nwl-pcie-2.11";
  39. #interrupt-cells = <1>;
  40. msi-controller;
  41. device_type = "pci";
  42. interrupt-parent = <&gic>;
  43. interrupts = <0 114 4>, <0 115 4>, <0 116 4>, <0 117 4>, <0 118 4>;
  44. interrupt-names = "msi0", "msi1", "intx", "dummy", "misc";
  45. interrupt-map-mask = <0x0 0x0 0x0 0x7>;
  46. interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc 0x1>,
  47. <0x0 0x0 0x0 0x2 &pcie_intc 0x2>,
  48. <0x0 0x0 0x0 0x3 &pcie_intc 0x3>,
  49. <0x0 0x0 0x0 0x4 &pcie_intc 0x4>;
  50. msi-parent = <&nwl_pcie>;
  51. reg = <0x0 0xfd0e0000 0x0 0x1000>,
  52. <0x0 0xfd480000 0x0 0x1000>,
  53. <0x80 0x00000000 0x0 0x1000000>;
  54. reg-names = "breg", "pcireg", "cfg";
  55. ranges = <0x02000000 0x00000000 0xe0000000 0x00000000 0xe0000000 0x00000000 0x10000000 /* non-prefetchable memory */
  56. 0x43000000 0x00000006 0x00000000 0x00000006 0x00000000 0x00000002 0x00000000>;/* prefetchable memory */
  57. pcie_intc: legacy-interrupt-controller {
  58. interrupt-controller;
  59. #address-cells = <0>;
  60. #interrupt-cells = <1>;
  61. };
  62. };