qcom,wcnss-pil.yaml 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  1. # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/remoteproc/qcom,wcnss-pil.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Qualcomm WCNSS Peripheral Image Loader
  7. maintainers:
  8. - Bjorn Andersson <andersson@kernel.org>
  9. description:
  10. This document defines the binding for a component that loads and boots
  11. firmware on the Qualcomm WCNSS core.
  12. properties:
  13. compatible:
  14. description:
  15. Append "qcom,pronto" if the device is actually pronto, and not riva
  16. oneOf:
  17. - items:
  18. - enum:
  19. - qcom,pronto-v1-pil
  20. - qcom,pronto-v2-pil
  21. - qcom,pronto-v3-pil
  22. - const: qcom,pronto
  23. - const: qcom,riva-pil
  24. reg:
  25. maxItems: 3
  26. description:
  27. The base address and size of the CCU, DXE and PMU register blocks
  28. reg-names:
  29. items:
  30. - const: ccu
  31. - const: dxe
  32. - const: pmu
  33. interrupts:
  34. minItems: 2
  35. maxItems: 5
  36. interrupt-names:
  37. minItems: 2
  38. items:
  39. - const: wdog
  40. - const: fatal
  41. - const: ready
  42. - const: handover
  43. - const: stop-ack
  44. firmware-name:
  45. maxItems: 1
  46. description:
  47. Relative firmware image path for the WCNSS core. Defaults to
  48. "wcnss.mdt".
  49. vddpx-supply:
  50. description:
  51. PX regulator to be held on behalf of the booting of the WCNSS core
  52. vddmx-supply:
  53. description:
  54. MX regulator to be held on behalf of the booting of the WCNSS core.
  55. vddcx-supply:
  56. description:
  57. CX regulator to be held on behalf of the booting of the WCNSS core.
  58. power-domains:
  59. maxItems: 2
  60. power-domain-names:
  61. items:
  62. - const: cx
  63. - const: mx
  64. qcom,smem-states:
  65. $ref: /schemas/types.yaml#/definitions/phandle-array
  66. description:
  67. States used by the AP to signal the WCNSS core that it should shutdown
  68. items:
  69. - description: Stop the modem
  70. qcom,smem-state-names:
  71. description: The names of the state bits used for SMP2P output
  72. items:
  73. - const: stop
  74. memory-region:
  75. maxItems: 1
  76. description: reserved-memory for the WCNSS core
  77. smd-edge:
  78. $ref: /schemas/remoteproc/qcom,smd-edge.yaml#
  79. description:
  80. Qualcomm Shared Memory subnode which represents communication edge,
  81. channels and devices related to the ADSP.
  82. iris:
  83. type: object
  84. description:
  85. The iris subnode of the WCNSS PIL is used to describe the attached RF module
  86. and its resource dependencies.
  87. properties:
  88. compatible:
  89. enum:
  90. - qcom,wcn3620
  91. - qcom,wcn3660
  92. - qcom,wcn3660b
  93. - qcom,wcn3680
  94. clocks:
  95. minItems: 1
  96. items:
  97. - description: XO clock
  98. - description: RF clock
  99. clock-names:
  100. minItems: 1
  101. items:
  102. - const: xo
  103. - const: rf
  104. vddxo-supply:
  105. description:
  106. Reference to the regulator to be held on behalf of the booting WCNSS
  107. core
  108. vddrfa-supply:
  109. description:
  110. Reference to the regulator to be held on behalf of the booting WCNSS
  111. core
  112. vddpa-supply:
  113. description:
  114. Reference to the regulator to be held on behalf of the booting WCNSS
  115. core
  116. vdddig-supply:
  117. description:
  118. Reference to the regulator to be held on behalf of the booting WCNSS
  119. core
  120. required:
  121. - compatible
  122. - clocks
  123. - clock-names
  124. - vddxo-supply
  125. - vddrfa-supply
  126. - vddpa-supply
  127. - vdddig-supply
  128. additionalProperties: false
  129. required:
  130. - compatible
  131. - reg
  132. - reg-names
  133. - interrupts
  134. - interrupt-names
  135. - iris
  136. - vddpx-supply
  137. - memory-region
  138. - smd-edge
  139. additionalProperties: false
  140. allOf:
  141. - if:
  142. properties:
  143. compatible:
  144. contains:
  145. const: qcom,riva-pil
  146. then:
  147. required:
  148. - vddcx-supply
  149. - vddmx-supply
  150. - if:
  151. properties:
  152. compatible:
  153. contains:
  154. enum:
  155. - qcom,pronto-v1-pil
  156. - qcom,pronto-v2-pil
  157. then:
  158. properties:
  159. vddmx-supply:
  160. deprecated: true
  161. description: Deprecated for qcom,pronto-v1/2-pil
  162. vddcx-supply:
  163. deprecated: true
  164. description: Deprecated for qcom,pronto-v1/2-pil
  165. oneOf:
  166. - required:
  167. - power-domains
  168. - power-domain-names
  169. - required:
  170. - vddmx-supply
  171. - vddcx-supply
  172. - if:
  173. properties:
  174. compatible:
  175. contains:
  176. enum:
  177. - qcom,pronto-v3-pil
  178. then:
  179. properties:
  180. vddmx-supply: false
  181. vddcx-supply: false
  182. required:
  183. - power-domains
  184. - power-domain-names
  185. examples:
  186. - |
  187. #include <dt-bindings/interrupt-controller/arm-gic.h>
  188. #include <dt-bindings/clock/qcom,rpmcc.h>
  189. #include <dt-bindings/power/qcom-rpmpd.h>
  190. pronto@a21b000 {
  191. compatible = "qcom,pronto-v2-pil", "qcom,pronto";
  192. reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>;
  193. reg-names = "ccu", "dxe", "pmu";
  194. interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
  195. <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
  196. <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
  197. <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
  198. <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
  199. interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
  200. power-domains = <&rpmpd MSM8916_VDDCX>, <&rpmpd MSM8916_VDDMX>;
  201. power-domain-names = "cx", "mx";
  202. vddpx-supply = <&pm8916_l7>;
  203. qcom,smem-states = <&wcnss_smp2p_out 0>;
  204. qcom,smem-state-names = "stop";
  205. memory-region = <&wcnss_region>;
  206. pinctrl-names = "default";
  207. pinctrl-0 = <&wcnss_pin_a>;
  208. iris {
  209. compatible = "qcom,wcn3620";
  210. vddxo-supply = <&pm8916_l7>;
  211. vddrfa-supply = <&pm8916_s3>;
  212. vddpa-supply = <&pm8916_l9>;
  213. vdddig-supply = <&pm8916_l5>;
  214. clocks = <&rpmcc RPM_SMD_RF_CLK2>;
  215. clock-names = "xo";
  216. };
  217. smd-edge {
  218. interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
  219. qcom,ipc = <&apcs 8 17>;
  220. qcom,smd-edge = <6>;
  221. qcom,remote-pid = <4>;
  222. label = "pronto";
  223. wcnss_ctrl: wcnss {
  224. compatible = "qcom,wcnss";
  225. qcom,smd-channels = "WCNSS_CTRL";
  226. qcom,mmio = <&pronto>;
  227. bluetooth {
  228. compatible = "qcom,wcnss-bt";
  229. };
  230. wifi {
  231. compatible = "qcom,wcnss-wlan";
  232. interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
  233. <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
  234. interrupt-names = "tx", "rx";
  235. qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
  236. qcom,smem-state-names = "tx-enable", "tx-rings-empty";
  237. };
  238. };
  239. };
  240. };