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

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