qcom,fastrpc.yaml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/misc/qcom,fastrpc.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Qualcomm FastRPC Driver
  7. maintainers:
  8. - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
  9. description: |
  10. The FastRPC implements an IPC (Inter-Processor Communication)
  11. mechanism that allows for clients to transparently make remote method
  12. invocations across DSP and APPS boundaries. This enables developers
  13. to offload tasks to the DSP and free up the application processor for
  14. other tasks.
  15. properties:
  16. compatible:
  17. const: qcom,fastrpc
  18. label:
  19. enum:
  20. - adsp
  21. - mdsp
  22. - sdsp
  23. - cdsp
  24. - cdsp1
  25. memory-region:
  26. maxItems: 1
  27. description:
  28. Phandle to a node describing memory to be used for remote heap CMA.
  29. qcom,glink-channels:
  30. description:
  31. A list of channels tied to this function, used for matching
  32. the function to a set of virtual channels.
  33. $ref: /schemas/types.yaml#/definitions/string-array
  34. items:
  35. - const: fastrpcglink-apps-dsp
  36. qcom,non-secure-domain:
  37. description:
  38. Used to mark the current domain as non-secure.
  39. type: boolean
  40. qcom,smd-channels:
  41. description:
  42. Channel name used for the RPM communication
  43. $ref: /schemas/types.yaml#/definitions/string-array
  44. items:
  45. - const: fastrpcsmd-apps-dsp
  46. qcom,vmids:
  47. description:
  48. Virtual machine IDs for remote processor.
  49. $ref: /schemas/types.yaml#/definitions/uint32-array
  50. "#address-cells":
  51. const: 1
  52. "#size-cells":
  53. const: 0
  54. patternProperties:
  55. "(compute-)?cb@[0-9]*$":
  56. type: object
  57. description: >
  58. Each subnode of the Fastrpc represents compute context banks available on the dsp.
  59. properties:
  60. compatible:
  61. const: qcom,fastrpc-compute-cb
  62. reg:
  63. maxItems: 1
  64. dma-coherent: true
  65. iommus:
  66. minItems: 1
  67. maxItems: 10
  68. qcom,nsessions:
  69. $ref: /schemas/types.yaml#/definitions/uint32
  70. default: 1
  71. description: >
  72. A value indicating how many sessions can share this context bank.
  73. required:
  74. - compatible
  75. - reg
  76. additionalProperties: false
  77. required:
  78. - compatible
  79. - label
  80. - "#address-cells"
  81. - "#size-cells"
  82. additionalProperties: false
  83. examples:
  84. - |
  85. #include <dt-bindings/interrupt-controller/arm-gic.h>
  86. #include <dt-bindings/mailbox/qcom-ipcc.h>
  87. glink-edge {
  88. interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
  89. IPCC_MPROC_SIGNAL_GLINK_QMP
  90. IRQ_TYPE_EDGE_RISING>;
  91. mboxes = <&ipcc IPCC_CLIENT_LPASS
  92. IPCC_MPROC_SIGNAL_GLINK_QMP>;
  93. label = "lpass";
  94. qcom,remote-pid = <2>;
  95. fastrpc {
  96. compatible = "qcom,fastrpc";
  97. qcom,glink-channels = "fastrpcglink-apps-dsp";
  98. label = "sdsp";
  99. qcom,non-secure-domain;
  100. #address-cells = <1>;
  101. #size-cells = <0>;
  102. compute-cb@1 {
  103. compatible = "qcom,fastrpc-compute-cb";
  104. reg = <1>;
  105. iommus = <&apps_smmu 0x0541 0x0>;
  106. };
  107. compute-cb@2 {
  108. compatible = "qcom,fastrpc-compute-cb";
  109. reg = <2>;
  110. iommus = <&apps_smmu 0x0542 0x0>;
  111. };
  112. compute-cb@3 {
  113. compatible = "qcom,fastrpc-compute-cb";
  114. reg = <3>;
  115. iommus = <&apps_smmu 0x0543 0x0>;
  116. };
  117. };
  118. };