snd_ar_tokens.h 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2. #ifndef __SND_AR_TOKENS_H__
  3. #define __SND_AR_TOKENS_H__
  4. #include <linux/types.h>
  5. #define APM_SUB_GRAPH_PERF_MODE_LOW_POWER 0x1
  6. #define APM_SUB_GRAPH_PERF_MODE_LOW_LATENCY 0x2
  7. #define APM_SUB_GRAPH_DIRECTION_TX 0x1
  8. #define APM_SUB_GRAPH_DIRECTION_RX 0x2
  9. /** Scenario ID Audio Playback */
  10. #define APM_SUB_GRAPH_SID_AUDIO_PLAYBACK 0x1
  11. /* Scenario ID Audio Record */
  12. #define APM_SUB_GRAPH_SID_AUDIO_RECORD 0x2
  13. /* Scenario ID Voice call. */
  14. #define APM_SUB_GRAPH_SID_VOICE_CALL 0x3
  15. /* container capability ID Pre/Post Processing (PP) */
  16. #define APM_CONTAINER_CAP_ID_PP 0x1
  17. /* container capability ID Compression/Decompression (CD) */
  18. #define APM_CONTAINER_CAP_ID_CD 0x2
  19. /* container capability ID End Point(EP) */
  20. #define APM_CONTAINER_CAP_ID_EP 0x3
  21. /* container capability ID Offload (OLC) */
  22. #define APM_CONTAINER_CAP_ID_OLC 0x4
  23. /* container graph position Stream */
  24. #define APM_CONT_GRAPH_POS_STREAM 0x1
  25. /* container graph position Per Stream Per Device*/
  26. #define APM_CONT_GRAPH_POS_PER_STR_PER_DEV 0x2
  27. /* container graph position Stream-Device */
  28. #define APM_CONT_GRAPH_POS_STR_DEV 0x3
  29. /* container graph position Global Device */
  30. #define APM_CONT_GRAPH_POS_GLOBAL_DEV 0x4
  31. #define APM_PROC_DOMAIN_ID_MDSP 0x1
  32. #define APM_PROC_DOMAIN_ID_ADSP 0x2
  33. #define APM_PROC_DOMAIN_ID_SDSP 0x4
  34. #define APM_PROC_DOMAIN_ID_CDSP 0x5
  35. #define PCM_INTERLEAVED 1
  36. #define PCM_DEINTERLEAVED_PACKED 2
  37. #define PCM_DEINTERLEAVED_UNPACKED 3
  38. #define AR_I2S_WS_SRC_EXTERNAL 0
  39. #define AR_I2S_WS_SRC_INTERNAL 1
  40. enum ar_event_types {
  41. AR_EVENT_NONE = 0,
  42. AR_PGA_DAPM_EVENT
  43. };
  44. /*
  45. * Kcontrol IDs
  46. */
  47. #define SND_SOC_AR_TPLG_FE_BE_GRAPH_CTL_MIX 256
  48. #define SND_SOC_AR_TPLG_VOL_CTL 257
  49. /**
  50. * %AR_TKN_U32_SUB_GRAPH_INSTANCE_ID: Sub Graph Instance Id
  51. *
  52. * %AR_TKN_U32_SUB_GRAPH_PERF_MODE: Performance mode of subgraph
  53. * APM_SUB_GRAPH_PERF_MODE_LOW_POWER = 1,
  54. * APM_SUB_GRAPH_PERF_MODE_LOW_LATENCY = 2
  55. *
  56. * %AR_TKN_U32_SUB_GRAPH_DIRECTION: Direction of subgraph
  57. * APM_SUB_GRAPH_DIRECTION_TX = 1,
  58. * APM_SUB_GRAPH_DIRECTION_RX = 2
  59. *
  60. * %AR_TKN_U32_SUB_GRAPH_SCENARIO_ID: Scenario ID for subgraph
  61. * APM_SUB_GRAPH_SID_AUDIO_PLAYBACK = 1,
  62. * APM_SUB_GRAPH_SID_AUDIO_RECORD = 2,
  63. * APM_SUB_GRAPH_SID_VOICE_CALL = 3
  64. *
  65. * %AR_TKN_U32_CONTAINER_INSTANCE_ID: Container Instance ID
  66. *
  67. * %AR_TKN_U32_CONTAINER_CAPABILITY_ID: Container capability ID
  68. * APM_CONTAINER_CAP_ID_PP = 1,
  69. * APM_CONTAINER_CAP_ID_CD = 2,
  70. * APM_CONTAINER_CAP_ID_EP = 3,
  71. * APM_CONTAINER_CAP_ID_OLC = 4
  72. *
  73. * %AR_TKN_U32_CONTAINER_STACK_SIZE: Stack size in the container.
  74. *
  75. * %AR_TKN_U32_CONTAINER_GRAPH_POS: Graph Position
  76. * APM_CONT_GRAPH_POS_STREAM = 1,
  77. * APM_CONT_GRAPH_POS_PER_STR_PER_DEV = 2,
  78. * APM_CONT_GRAPH_POS_STR_DEV = 3,
  79. * APM_CONT_GRAPH_POS_GLOBAL_DEV = 4
  80. *
  81. * %AR_TKN_U32_CONTAINER_PROC_DOMAIN: Processor domain of container
  82. * APM_PROC_DOMAIN_ID_MDSP = 1,
  83. * APM_PROC_DOMAIN_ID_ADSP = 2,
  84. * APM_PROC_DOMAIN_ID_SDSP = 4,
  85. * APM_PROC_DOMAIN_ID_CDSP = 5
  86. *
  87. * %AR_TKN_U32_MODULE_ID: Module ID
  88. *
  89. * %AR_TKN_U32_MODULE_INSTANCE_ID: Module Instance ID.
  90. *
  91. * %AR_TKN_U32_MODULE_MAX_IP_PORTS: Module maximum input ports
  92. *
  93. * %AR_TKN_U32_MODULE_MAX_OP_PORTS: Module maximum output ports.
  94. *
  95. * %AR_TKN_U32_MODULE_IN_PORTS: Number of in ports
  96. *
  97. * %AR_TKN_U32_MODULE_OUT_PORTS: Number of out ports.
  98. *
  99. * %AR_TKN_U32_MODULE_SRC_OP_PORT_ID: Source module output port ID
  100. *
  101. * %AR_TKN_U32_MODULE_DST_IN_PORT_ID: Destination module input port ID
  102. *
  103. * %AR_TKN_U32_MODULE_HW_IF_IDX: Interface index types for I2S/LPAIF
  104. *
  105. * %AR_TKN_U32_MODULE_HW_IF_TYPE: Interface type
  106. * LPAIF = 0,
  107. * LPAIF_RXTX = 1,
  108. * LPAIF_WSA = 2,
  109. * LPAIF_VA = 3,
  110. * LPAIF_AXI = 4
  111. * Possible values for MI2S
  112. * I2S_INTF_TYPE_PRIMARY = 0,
  113. * I2S_INTF_TYPE_SECONDARY = 1,
  114. * I2S_INTF_TYPE_TERTIARY = 2,
  115. * I2S_INTF_TYPE_QUATERNARY = 3,
  116. * I2S_INTF_TYPE_QUINARY = 4,
  117. *
  118. * %AR_TKN_U32_MODULE_FMT_INTERLEAVE: PCM Interleaving
  119. * PCM_INTERLEAVED = 1,
  120. * PCM_DEINTERLEAVED_PACKED = 2,
  121. * PCM_DEINTERLEAVED_UNPACKED = 3
  122. *
  123. * %AR_TKN_U32_MODULE_FMT_DATA: data format
  124. * FIXED POINT = 1,
  125. * IEC60958 PACKETIZED = 3,
  126. * IEC60958 PACKETIZED NON LINEAR = 8,
  127. * COMPR OVER PCM PACKETIZED = 7,
  128. * IEC61937 PACKETIZED = 2,
  129. * GENERIC COMPRESSED = 5
  130. *
  131. * %AR_TKN_U32_MODULE_FMT_SAMPLE_RATE: sample rate
  132. *
  133. * %AR_TKN_U32_MODULE_FMT_BIT_DEPTH: bit depth
  134. *
  135. * %AR_TKN_U32_MODULE_SD_LINE_IDX: I2S serial data line idx
  136. * I2S_SD0 = 1,
  137. * I2S_SD1 = 2,
  138. * I2S_SD2 = 3,
  139. * I2S_SD3 = 4,
  140. * I2S_QUAD01 = 5,
  141. * I2S_QUAD23 = 6,
  142. * I2S_6CHS = 7,
  143. * I2S_8CHS = 8
  144. *
  145. * %AR_TKN_U32_MODULE_WS_SRC: Word Select Source
  146. * AR_I2S_WS_SRC_EXTERNAL = 0,
  147. * AR_I2S_WS_SRC_INTERNAL = 1,
  148. *
  149. * %AR_TKN_U32_MODULE_FRAME_SZ_FACTOR: Frame size factor
  150. *
  151. * %AR_TKN_U32_MODULE_LOG_CODE: Log Module Code
  152. *
  153. * %AR_TKN_U32_MODULE_LOG_TAP_POINT_ID: logging tap point of this module
  154. *
  155. * %AR_TKN_U32_MODULE_LOG_MODE: logging mode
  156. * LOG_WAIT = 0,
  157. * LOG_IMMEDIATELY = 1
  158. *
  159. * %AR_TKN_DAI_INDEX: dai index
  160. *
  161. */
  162. /* DAI Tokens */
  163. #define AR_TKN_DAI_INDEX 1
  164. /* SUB GRAPH Tokens */
  165. #define AR_TKN_U32_SUB_GRAPH_INSTANCE_ID 2
  166. #define AR_TKN_U32_SUB_GRAPH_PERF_MODE 3
  167. #define AR_TKN_U32_SUB_GRAPH_DIRECTION 4
  168. #define AR_TKN_U32_SUB_GRAPH_SCENARIO_ID 5
  169. /* Container Tokens */
  170. #define AR_TKN_U32_CONTAINER_INSTANCE_ID 100
  171. #define AR_TKN_U32_CONTAINER_CAPABILITY_ID 101
  172. #define AR_TKN_U32_CONTAINER_STACK_SIZE 102
  173. #define AR_TKN_U32_CONTAINER_GRAPH_POS 103
  174. #define AR_TKN_U32_CONTAINER_PROC_DOMAIN 104
  175. /* Module Tokens */
  176. #define AR_TKN_U32_MODULE_ID 200
  177. #define AR_TKN_U32_MODULE_INSTANCE_ID 201
  178. #define AR_TKN_U32_MODULE_MAX_IP_PORTS 202
  179. #define AR_TKN_U32_MODULE_MAX_OP_PORTS 203
  180. #define AR_TKN_U32_MODULE_IN_PORTS 204 /* deprecated */
  181. #define AR_TKN_U32_MODULE_OUT_PORTS 205 /* deprecated */
  182. #define AR_TKN_U32_MODULE_SRC_OP_PORT_ID 206
  183. #define AR_TKN_U32_MODULE_DST_IN_PORT_ID 207
  184. #define AR_TKN_U32_MODULE_SRC_INSTANCE_ID 208
  185. #define AR_TKN_U32_MODULE_DST_INSTANCE_ID 209
  186. #define AR_TKN_U32_MODULE_SRC_OP_PORT_ID1 210
  187. #define AR_TKN_U32_MODULE_DST_IN_PORT_ID1 211
  188. #define AR_TKN_U32_MODULE_DST_INSTANCE_ID1 212
  189. #define AR_TKN_U32_MODULE_SRC_OP_PORT_ID2 213
  190. #define AR_TKN_U32_MODULE_DST_IN_PORT_ID2 214
  191. #define AR_TKN_U32_MODULE_DST_INSTANCE_ID2 215
  192. #define AR_TKN_U32_MODULE_SRC_OP_PORT_ID3 216
  193. #define AR_TKN_U32_MODULE_DST_IN_PORT_ID3 217
  194. #define AR_TKN_U32_MODULE_DST_INSTANCE_ID3 218
  195. #define AR_TKN_U32_MODULE_SRC_OP_PORT_ID4 219
  196. #define AR_TKN_U32_MODULE_DST_IN_PORT_ID4 220
  197. #define AR_TKN_U32_MODULE_DST_INSTANCE_ID4 221
  198. #define AR_TKN_U32_MODULE_SRC_OP_PORT_ID5 222
  199. #define AR_TKN_U32_MODULE_DST_IN_PORT_ID5 223
  200. #define AR_TKN_U32_MODULE_DST_INSTANCE_ID5 224
  201. #define AR_TKN_U32_MODULE_SRC_OP_PORT_ID6 225
  202. #define AR_TKN_U32_MODULE_DST_IN_PORT_ID6 226
  203. #define AR_TKN_U32_MODULE_DST_INSTANCE_ID6 227
  204. #define AR_TKN_U32_MODULE_SRC_OP_PORT_ID7 228
  205. #define AR_TKN_U32_MODULE_DST_IN_PORT_ID7 229
  206. #define AR_TKN_U32_MODULE_DST_INSTANCE_ID7 230
  207. #define AR_TKN_U32_MODULE_HW_IF_IDX 250
  208. #define AR_TKN_U32_MODULE_HW_IF_TYPE 251
  209. #define AR_TKN_U32_MODULE_FMT_INTERLEAVE 252
  210. #define AR_TKN_U32_MODULE_FMT_DATA 253
  211. #define AR_TKN_U32_MODULE_FMT_SAMPLE_RATE 254
  212. #define AR_TKN_U32_MODULE_FMT_BIT_DEPTH 255
  213. #define AR_TKN_U32_MODULE_SD_LINE_IDX 256
  214. #define AR_TKN_U32_MODULE_WS_SRC 257
  215. #define AR_TKN_U32_MODULE_FRAME_SZ_FACTOR 258
  216. #define AR_TKN_U32_MODULE_LOG_CODE 259
  217. #define AR_TKN_U32_MODULE_LOG_TAP_POINT_ID 260
  218. #define AR_TKN_U32_MODULE_LOG_MODE 261
  219. #define SND_SOC_AR_TPLG_MODULE_CFG_TYPE 0x01001006
  220. struct audioreach_module_priv_data {
  221. __le32 size; /* size in bytes of the array, including all elements */
  222. __le32 type; /* SND_SOC_AR_TPLG_MODULE_CFG_TYPE */
  223. __le32 priv[2]; /* Private data for future expansion */
  224. __le32 data[0]; /* config data */
  225. };
  226. #endif /* __SND_AR_TOKENS_H__ */