xgene-pci-msi.txt 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. * AppliedMicro X-Gene v1 PCIe MSI controller
  2. Required properties:
  3. - compatible: should be "apm,xgene1-msi" to identify
  4. X-Gene v1 PCIe MSI controller block.
  5. - msi-controller: indicates that this is X-Gene v1 PCIe MSI controller node
  6. - reg: physical base address (0x79000000) and length (0x900000) for controller
  7. registers. These registers include the MSI termination address and data
  8. registers as well as the MSI interrupt status registers.
  9. - reg-names: not required
  10. - interrupts: A list of 16 interrupt outputs of the controller, starting from
  11. interrupt number 0x10 to 0x1f.
  12. - interrupt-names: not required
  13. Each PCIe node needs to have property msi-parent that points to msi controller node
  14. Examples:
  15. SoC DTSI:
  16. + MSI node:
  17. msi@79000000 {
  18. compatible = "apm,xgene1-msi";
  19. msi-controller;
  20. reg = <0x00 0x79000000 0x0 0x900000>;
  21. interrupts = <0x0 0x10 0x4>
  22. <0x0 0x11 0x4>
  23. <0x0 0x12 0x4>
  24. <0x0 0x13 0x4>
  25. <0x0 0x14 0x4>
  26. <0x0 0x15 0x4>
  27. <0x0 0x16 0x4>
  28. <0x0 0x17 0x4>
  29. <0x0 0x18 0x4>
  30. <0x0 0x19 0x4>
  31. <0x0 0x1a 0x4>
  32. <0x0 0x1b 0x4>
  33. <0x0 0x1c 0x4>
  34. <0x0 0x1d 0x4>
  35. <0x0 0x1e 0x4>
  36. <0x0 0x1f 0x4>;
  37. };
  38. + PCIe controller node with msi-parent property pointing to MSI node:
  39. pcie0: pcie@1f2b0000 {
  40. status = "disabled";
  41. device_type = "pci";
  42. compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
  43. #interrupt-cells = <1>;
  44. #size-cells = <2>;
  45. #address-cells = <3>;
  46. reg = < 0x00 0x1f2b0000 0x0 0x00010000 /* Controller registers */
  47. 0xe0 0xd0000000 0x0 0x00040000>; /* PCI config space */
  48. reg-names = "csr", "cfg";
  49. ranges = <0x01000000 0x00 0x00000000 0xe0 0x10000000 0x00 0x00010000 /* io */
  50. 0x02000000 0x00 0x80000000 0xe1 0x80000000 0x00 0x80000000>; /* mem */
  51. dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
  52. 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
  53. interrupt-map-mask = <0x0 0x0 0x0 0x7>;
  54. interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc2 0x1
  55. 0x0 0x0 0x0 0x2 &gic 0x0 0xc3 0x1
  56. 0x0 0x0 0x0 0x3 &gic 0x0 0xc4 0x1
  57. 0x0 0x0 0x0 0x4 &gic 0x0 0xc5 0x1>;
  58. dma-coherent;
  59. clocks = <&pcie0clk 0>;
  60. msi-parent= <&msi>;
  61. };