qcom,q6v5.txt 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. Qualcomm Hexagon Peripheral Image Loader
  2. This document defines the binding for a component that loads and boots firmware
  3. on the Qualcomm Hexagon core.
  4. - compatible:
  5. Usage: required
  6. Value type: <string>
  7. Definition: must be one of:
  8. "qcom,q6v5-pil",
  9. "qcom,ipq8074-wcss-pil"
  10. "qcom,msm8916-mss-pil",
  11. "qcom,msm8974-mss-pil"
  12. "qcom,msm8996-mss-pil"
  13. "qcom,sdm845-mss-pil"
  14. - reg:
  15. Usage: required
  16. Value type: <prop-encoded-array>
  17. Definition: must specify the base address and size of the qdsp6 and
  18. rmb register blocks
  19. - reg-names:
  20. Usage: required
  21. Value type: <stringlist>
  22. Definition: must be "q6dsp" and "rmb"
  23. - interrupts-extended:
  24. Usage: required
  25. Value type: <prop-encoded-array>
  26. Definition: must list the watchdog, fatal IRQs ready, handover and
  27. stop-ack IRQs
  28. - interrupt-names:
  29. Usage: required
  30. Value type: <stringlist>
  31. Definition: must be "wdog", "fatal", "ready", "handover", "stop-ack"
  32. - clocks:
  33. Usage: required
  34. Value type: <phandle>
  35. Definition: reference to the iface, bus and mem clocks to be held on
  36. behalf of the booting of the Hexagon core
  37. - clock-names:
  38. Usage: required
  39. Value type: <stringlist>
  40. Definition: must be "iface", "bus", "mem"
  41. - resets:
  42. Usage: required
  43. Value type: <phandle>
  44. Definition: reference to the reset-controller for the modem sub-system
  45. reference to the list of 3 reset-controllers for the
  46. wcss sub-system
  47. - reset-names:
  48. Usage: required
  49. Value type: <stringlist>
  50. Definition: must be "mss_restart" for the modem sub-system
  51. Definition: must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset"
  52. for the wcss syb-system
  53. - cx-supply:
  54. - mss-supply:
  55. - mx-supply:
  56. - pll-supply:
  57. Usage: required
  58. Value type: <phandle>
  59. Definition: reference to the regulators to be held on behalf of the
  60. booting of the Hexagon core
  61. - qcom,smem-states:
  62. Usage: required
  63. Value type: <phandle>
  64. Definition: reference to the smem state for requesting the Hexagon to
  65. shut down
  66. - qcom,smem-state-names:
  67. Usage: required
  68. Value type: <stringlist>
  69. Definition: must be "stop"
  70. - qcom,halt-regs:
  71. Usage: required
  72. Value type: <prop-encoded-array>
  73. Definition: a phandle reference to a syscon representing TCSR followed
  74. by the three offsets within syscon for q6, modem and nc
  75. halt registers.
  76. = SUBNODES:
  77. The Hexagon node must contain two subnodes, named "mba" and "mpss" representing
  78. the memory regions used by the Hexagon firmware. Each sub-node must contain:
  79. - memory-region:
  80. Usage: required
  81. Value type: <phandle>
  82. Definition: reference to the reserved-memory for the region
  83. The Hexagon node may also have an subnode named either "smd-edge" or
  84. "glink-edge" that describes the communication edge, channels and devices
  85. related to the Hexagon. See ../soc/qcom/qcom,smd.txt and
  86. ../soc/qcom/qcom,glink.txt for details on how to describe these.
  87. = EXAMPLE
  88. The following example describes the resources needed to boot control the
  89. Hexagon, as it is found on MSM8974 boards.
  90. modem-rproc@fc880000 {
  91. compatible = "qcom,q6v5-pil";
  92. reg = <0xfc880000 0x100>,
  93. <0xfc820000 0x020>;
  94. reg-names = "qdsp6", "rmb";
  95. interrupts-extended = <&intc 0 24 1>,
  96. <&modem_smp2p_in 0 0>,
  97. <&modem_smp2p_in 1 0>,
  98. <&modem_smp2p_in 2 0>,
  99. <&modem_smp2p_in 3 0>;
  100. interrupt-names = "wdog",
  101. "fatal",
  102. "ready",
  103. "handover",
  104. "stop-ack";
  105. clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
  106. <&gcc GCC_MSS_CFG_AHB_CLK>,
  107. <&gcc GCC_BOOT_ROM_AHB_CLK>;
  108. clock-names = "iface", "bus", "mem";
  109. qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>;
  110. resets = <&gcc GCC_MSS_RESTART>;
  111. reset-names = "mss_restart";
  112. cx-supply = <&pm8841_s2>;
  113. mss-supply = <&pm8841_s3>;
  114. mx-supply = <&pm8841_s1>;
  115. pll-supply = <&pm8941_l12>;
  116. qcom,smem-states = <&modem_smp2p_out 0>;
  117. qcom,smem-state-names = "stop";
  118. mba {
  119. memory-region = <&mba_region>;
  120. };
  121. mpss {
  122. memory-region = <&mpss_region>;
  123. };
  124. };