qcom,sm8350-pas.yaml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. # SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/remoteproc/qcom,sm8350-pas.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Qualcomm SM8350/SM8450 Peripheral Authentication Service
  7. maintainers:
  8. - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
  9. description:
  10. Qualcomm SM8350/SM8450 SoC Peripheral Authentication Service loads and boots
  11. firmware on the Qualcomm DSP Hexagon cores.
  12. properties:
  13. compatible:
  14. enum:
  15. - qcom,sm8350-adsp-pas
  16. - qcom,sm8350-cdsp-pas
  17. - qcom,sm8350-slpi-pas
  18. - qcom,sm8350-mpss-pas
  19. - qcom,sm8450-adsp-pas
  20. - qcom,sm8450-cdsp-pas
  21. - qcom,sm8450-mpss-pas
  22. - qcom,sm8450-slpi-pas
  23. reg:
  24. maxItems: 1
  25. clocks:
  26. items:
  27. - description: XO clock
  28. clock-names:
  29. items:
  30. - const: xo
  31. qcom,qmp:
  32. $ref: /schemas/types.yaml#/definitions/phandle
  33. description: Reference to the AOSS side-channel message RAM.
  34. smd-edge: false
  35. memory-region:
  36. maxItems: 1
  37. description: Reference to the reserved-memory for the Hexagon core
  38. firmware-name:
  39. maxItems: 1
  40. description: Firmware name for the Hexagon core
  41. required:
  42. - compatible
  43. - reg
  44. - memory-region
  45. allOf:
  46. - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
  47. - if:
  48. properties:
  49. compatible:
  50. enum:
  51. - qcom,sm8350-adsp-pas
  52. - qcom,sm8350-cdsp-pas
  53. - qcom,sm8350-slpi-pas
  54. - qcom,sm8450-adsp-pas
  55. - qcom,sm8450-cdsp-pas
  56. - qcom,sm8450-slpi-pas
  57. then:
  58. properties:
  59. interrupts:
  60. maxItems: 5
  61. interrupt-names:
  62. maxItems: 5
  63. else:
  64. properties:
  65. interrupts:
  66. minItems: 6
  67. interrupt-names:
  68. minItems: 6
  69. - if:
  70. properties:
  71. compatible:
  72. enum:
  73. - qcom,sm8350-mpss-pas
  74. - qcom,sm8450-mpss-pas
  75. then:
  76. properties:
  77. power-domains:
  78. items:
  79. - description: CX power domain
  80. - description: MSS power domain
  81. power-domain-names:
  82. items:
  83. - const: cx
  84. - const: mss
  85. - if:
  86. properties:
  87. compatible:
  88. enum:
  89. - qcom,sm8350-adsp-pas
  90. - qcom,sm8350-slpi-pas
  91. - qcom,sm8450-adsp-pas
  92. - qcom,sm8450-slpi-pas
  93. then:
  94. properties:
  95. power-domains:
  96. items:
  97. - description: LCX power domain
  98. - description: LMX power domain
  99. power-domain-names:
  100. items:
  101. - const: lcx
  102. - const: lmx
  103. - if:
  104. properties:
  105. compatible:
  106. enum:
  107. - qcom,sm8350-cdsp-pas
  108. - qcom,sm8450-cdsp-pas
  109. then:
  110. properties:
  111. power-domains:
  112. items:
  113. - description: CX power domain
  114. - description: MXC power domain
  115. power-domain-names:
  116. items:
  117. - const: cx
  118. - const: mxc
  119. unevaluatedProperties: false
  120. examples:
  121. - |
  122. #include <dt-bindings/clock/qcom,rpmh.h>
  123. #include <dt-bindings/interrupt-controller/irq.h>
  124. #include <dt-bindings/mailbox/qcom-ipcc.h>
  125. #include <dt-bindings/power/qcom,rpmhpd.h>
  126. remoteproc@30000000 {
  127. compatible = "qcom,sm8450-adsp-pas";
  128. reg = <0x030000000 0x100>;
  129. clocks = <&rpmhcc RPMH_CXO_CLK>;
  130. clock-names = "xo";
  131. firmware-name = "qcom/sm8450/adsp.mbn";
  132. interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>,
  133. <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
  134. <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
  135. <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
  136. <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>;
  137. interrupt-names = "wdog", "fatal", "ready",
  138. "handover", "stop-ack";
  139. memory-region = <&adsp_mem>;
  140. power-domains = <&rpmhpd RPMHPD_LCX>,
  141. <&rpmhpd RPMHPD_LMX>;
  142. power-domain-names = "lcx", "lmx";
  143. qcom,qmp = <&aoss_qmp>;
  144. qcom,smem-states = <&smp2p_adsp_out 0>;
  145. qcom,smem-state-names = "stop";
  146. glink-edge {
  147. interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
  148. IPCC_MPROC_SIGNAL_GLINK_QMP
  149. IRQ_TYPE_EDGE_RISING>;
  150. mboxes = <&ipcc IPCC_CLIENT_LPASS IPCC_MPROC_SIGNAL_GLINK_QMP>;
  151. label = "lpass";
  152. qcom,remote-pid = <2>;
  153. /* ... */
  154. };
  155. };