qcom,q6afe.txt 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. Qualcomm Audio Front End (Q6AFE) binding
  2. AFE is one of the APR audio service on Q6DSP
  3. Please refer to qcom,apr.txt for details of the common apr service bindings
  4. used by all apr services. Must contain the following properties.
  5. - compatible:
  6. Usage: required
  7. Value type: <stringlist>
  8. Definition: must be "qcom,q6afe-v<MAJOR-NUMBER>.<MINOR-NUMBER>"
  9. Or "qcom,q6afe" where the version number can be queried
  10. from DSP.
  11. example "qcom,q6afe"
  12. = AFE DAIs (Digial Audio Interface)
  13. "dais" subnode of the AFE node. It represents afe dais, each afe dai is a
  14. subnode of "dais" representing board specific dai setup.
  15. "dais" node should have following properties followed by dai children.
  16. - compatible:
  17. Usage: required
  18. Value type: <stringlist>
  19. Definition: must be "qcom,q6afe-dais"
  20. - #sound-dai-cells
  21. Usage: required
  22. Value type: <u32>
  23. Definition: Must be 1
  24. - #address-cells
  25. Usage: required
  26. Value type: <u32>
  27. Definition: Must be 1
  28. - #size-cells
  29. Usage: required
  30. Value type: <u32>
  31. Definition: Must be 0
  32. == AFE DAI is subnode of "dais" and represent a dai, it includes board specific
  33. configuration of each dai. Must contain the following properties.
  34. - reg
  35. Usage: required
  36. Value type: <u32>
  37. Definition: Must be dai id
  38. - qcom,sd-lines
  39. Usage: required for mi2s interface
  40. Value type: <prop-encoded-array>
  41. Definition: Must be list of serial data lines used by this dai.
  42. should be one or more of the 1-4 sd lines.
  43. - qcom,tdm-sync-mode:
  44. Usage: required for tdm interface
  45. Value type: <prop-encoded-array>
  46. Definition: Synchronization mode.
  47. 0 - Short sync bit mode
  48. 1 - Long sync mode
  49. 2 - Short sync slot mode
  50. - qcom,tdm-sync-src:
  51. Usage: required for tdm interface
  52. Value type: <prop-encoded-array>
  53. Definition: Synchronization source.
  54. 0 - External source
  55. 1 - Internal source
  56. - qcom,tdm-data-out:
  57. Usage: required for tdm interface
  58. Value type: <prop-encoded-array>
  59. Definition: Data out signal to drive with other masters.
  60. 0 - Disable
  61. 1 - Enable
  62. - qcom,tdm-invert-sync:
  63. Usage: required for tdm interface
  64. Value type: <prop-encoded-array>
  65. Definition: Invert the sync.
  66. 0 - Normal
  67. 1 - Invert
  68. - qcom,tdm-data-delay:
  69. Usage: required for tdm interface
  70. Value type: <prop-encoded-array>
  71. Definition: Number of bit clock to delay data
  72. with respect to sync edge.
  73. 0 - 0 bit clock cycle
  74. 1 - 1 bit clock cycle
  75. 2 - 2 bit clock cycle
  76. - qcom,tdm-data-align:
  77. Usage: required for tdm interface
  78. Value type: <prop-encoded-array>
  79. Definition: Indicate how data is packed
  80. within the slot. For example, 32 slot width in case of
  81. sample bit width is 24.
  82. 0 - MSB
  83. 1 - LSB
  84. = EXAMPLE
  85. q6afe@4 {
  86. compatible = "qcom,q6afe";
  87. reg = <APR_SVC_AFE>;
  88. dais {
  89. compatible = "qcom,q6afe-dais";
  90. #sound-dai-cells = <1>;
  91. #address-cells = <1>;
  92. #size-cells = <0>;
  93. hdmi@1 {
  94. reg = <1>;
  95. };
  96. tdm@24 {
  97. reg = <24>;
  98. qcom,tdm-sync-mode = <1>:
  99. qcom,tdm-sync-src = <1>;
  100. qcom,tdm-data-out = <0>;
  101. qcom,tdm-invert-sync = <1>;
  102. qcom,tdm-data-delay = <1>;
  103. qcom,tdm-data-align = <0>;
  104. };
  105. tdm@25 {
  106. reg = <25>;
  107. qcom,tdm-sync-mode = <1>:
  108. qcom,tdm-sync-src = <1>;
  109. qcom,tdm-data-out = <0>;
  110. qcom,tdm-invert-sync = <1>;
  111. qcom,tdm-data-delay <1>:
  112. qcom,tdm-data-align = <0>;
  113. };
  114. prim-mi2s-rx@16 {
  115. reg = <16>;
  116. qcom,sd-lines = <1 3>;
  117. };
  118. prim-mi2s-tx@17 {
  119. reg = <17>;
  120. qcom,sd-lines = <2>;
  121. };
  122. sec-mi2s-rx@18 {
  123. reg = <18>;
  124. qcom,sd-lines = <1 4>;
  125. };
  126. sec-mi2s-tx@19 {
  127. reg = <19>;
  128. qcom,sd-lines = <2>;
  129. };
  130. tert-mi2s-rx@20 {
  131. reg = <20>;
  132. qcom,sd-lines = <2 4>;
  133. };
  134. tert-mi2s-tx@21 {
  135. reg = <21>;
  136. qcom,sd-lines = <1>;
  137. };
  138. quat-mi2s-rx@22 {
  139. reg = <22>;
  140. qcom,sd-lines = <1>;
  141. };
  142. quat-mi2s-tx@23 {
  143. reg = <23>;
  144. qcom,sd-lines = <2>;
  145. };
  146. };
  147. };