087-0003-PCI-iproc-Add-iProc-PCIe-MSI-device-tree-binding.patch 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. From c7bd48195377435ecaf38869b936be8e7abe3489 Mon Sep 17 00:00:00 2001
  2. From: Ray Jui <rjui@broadcom.com>
  3. Date: Fri, 4 Dec 2015 09:35:00 -0800
  4. Subject: [PATCH 3/5] PCI: iproc: Add iProc PCIe MSI device tree binding
  5. Update the iProc PCIe device tree bindings with added binding information
  6. for MSI.
  7. Signed-off-by: Ray Jui <rjui@broadcom.com>
  8. Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
  9. Reviewed-by: Anup Patel <anup.patel@broadcom.com>
  10. Reviewed-by: Vikram Prakash <vikramp@broadcom.com>
  11. Reviewed-by: Scott Branden <sbranden@broadcom.com>
  12. ---
  13. .../devicetree/bindings/pci/brcm,iproc-pcie.txt | 35 ++++++++++++++++++++++
  14. 1 file changed, 35 insertions(+)
  15. --- a/Documentation/devicetree/bindings/pci/brcm,iproc-pcie.txt
  16. +++ b/Documentation/devicetree/bindings/pci/brcm,iproc-pcie.txt
  17. @@ -35,6 +35,28 @@ Optional:
  18. - brcm,pcie-ob-oarr-size: Some iProc SoCs need the OARR size bit to be set to
  19. increase the outbound window size
  20. +MSI support (optional):
  21. +
  22. +For older platforms without MSI integrated in the GIC, iProc PCIe core provides
  23. +an event queue based MSI support. The iProc MSI uses host memories to store
  24. +MSI posted writes in the event queues
  25. +
  26. +- msi-parent: Link to the device node of the MSI controller. On newer iProc
  27. +platforms, the MSI controller may be gicv2m or gicv3-its. On older iProc
  28. +platforms without MSI support in its interrupt controller, one may use the
  29. +event queue based MSI support integrated within the iProc PCIe core.
  30. +
  31. +When the iProc event queue based MSI is used, one needs to define the
  32. +following properties in the MSI device node:
  33. +- compatible: Must be "brcm,iproc-msi"
  34. +- msi-controller: claims itself as an MSI controller
  35. +- interrupt-parent: Link to its parent interrupt device
  36. +- interrupts: List of interrupt IDs from its parent interrupt device
  37. +
  38. +Optional properties:
  39. +- brcm,pcie-msi-inten: Needs to be present for some older iProc platforms that
  40. +require the interrupt enable registers to be set explicitly to enable MSI
  41. +
  42. Example:
  43. pcie0: pcie@18012000 {
  44. compatible = "brcm,iproc-pcie";
  45. @@ -61,6 +83,19 @@ Example:
  46. brcm,pcie-ob-oarr-size;
  47. brcm,pcie-ob-axi-offset = <0x00000000>;
  48. brcm,pcie-ob-window-size = <256>;
  49. +
  50. + msi-parent = <&msi0>;
  51. +
  52. + /* iProc event queue based MSI */
  53. + msi0: msi@18012000 {
  54. + compatible = "brcm,iproc-msi";
  55. + msi-controller;
  56. + interrupt-parent = <&gic>;
  57. + interrupts = <GIC_SPI 96 IRQ_TYPE_NONE>,
  58. + <GIC_SPI 97 IRQ_TYPE_NONE>,
  59. + <GIC_SPI 98 IRQ_TYPE_NONE>,
  60. + <GIC_SPI 99 IRQ_TYPE_NONE>,
  61. + };
  62. };
  63. pcie1: pcie@18013000 {