1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
|
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef __SND_AR_TOKENS_H__
#define __SND_AR_TOKENS_H__
#include <linux/types.h>
#define APM_SUB_GRAPH_PERF_MODE_LOW_POWER 0x1
#define APM_SUB_GRAPH_PERF_MODE_LOW_LATENCY 0x2
#define APM_SUB_GRAPH_DIRECTION_TX 0x1
#define APM_SUB_GRAPH_DIRECTION_RX 0x2
/** Scenario ID Audio Playback */
#define APM_SUB_GRAPH_SID_AUDIO_PLAYBACK 0x1
/* Scenario ID Audio Record */
#define APM_SUB_GRAPH_SID_AUDIO_RECORD 0x2
/* Scenario ID Voice call. */
#define APM_SUB_GRAPH_SID_VOICE_CALL 0x3
/* container capability ID Pre/Post Processing (PP) */
#define APM_CONTAINER_CAP_ID_PP 0x1
/* container capability ID Compression/Decompression (CD) */
#define APM_CONTAINER_CAP_ID_CD 0x2
/* container capability ID End Point(EP) */
#define APM_CONTAINER_CAP_ID_EP 0x3
/* container capability ID Offload (OLC) */
#define APM_CONTAINER_CAP_ID_OLC 0x4
/* container graph position Stream */
#define APM_CONT_GRAPH_POS_STREAM 0x1
/* container graph position Per Stream Per Device*/
#define APM_CONT_GRAPH_POS_PER_STR_PER_DEV 0x2
/* container graph position Stream-Device */
#define APM_CONT_GRAPH_POS_STR_DEV 0x3
/* container graph position Global Device */
#define APM_CONT_GRAPH_POS_GLOBAL_DEV 0x4
#define APM_PROC_DOMAIN_ID_MDSP 0x1
#define APM_PROC_DOMAIN_ID_ADSP 0x2
#define APM_PROC_DOMAIN_ID_SDSP 0x4
#define APM_PROC_DOMAIN_ID_CDSP 0x5
#define PCM_INTERLEAVED 1
#define PCM_DEINTERLEAVED_PACKED 2
#define PCM_DEINTERLEAVED_UNPACKED 3
#define AR_I2S_WS_SRC_EXTERNAL 0
#define AR_I2S_WS_SRC_INTERNAL 1
enum ar_event_types {
AR_EVENT_NONE = 0,
AR_PGA_DAPM_EVENT
};
/*
* Kcontrol IDs
*/
#define SND_SOC_AR_TPLG_FE_BE_GRAPH_CTL_MIX 256
#define SND_SOC_AR_TPLG_VOL_CTL 257
/*
* %AR_TKN_U32_SUB_GRAPH_INSTANCE_ID: Sub Graph Instance Id
*
* %AR_TKN_U32_SUB_GRAPH_PERF_MODE: Performance mode of subgraph
* APM_SUB_GRAPH_PERF_MODE_LOW_POWER = 1,
* APM_SUB_GRAPH_PERF_MODE_LOW_LATENCY = 2
*
* %AR_TKN_U32_SUB_GRAPH_DIRECTION: Direction of subgraph
* APM_SUB_GRAPH_DIRECTION_TX = 1,
* APM_SUB_GRAPH_DIRECTION_RX = 2
*
* %AR_TKN_U32_SUB_GRAPH_SCENARIO_ID: Scenario ID for subgraph
* APM_SUB_GRAPH_SID_AUDIO_PLAYBACK = 1,
* APM_SUB_GRAPH_SID_AUDIO_RECORD = 2,
* APM_SUB_GRAPH_SID_VOICE_CALL = 3
*
* %AR_TKN_U32_CONTAINER_INSTANCE_ID: Container Instance ID
*
* %AR_TKN_U32_CONTAINER_CAPABILITY_ID: Container capability ID
* APM_CONTAINER_CAP_ID_PP = 1,
* APM_CONTAINER_CAP_ID_CD = 2,
* APM_CONTAINER_CAP_ID_EP = 3,
* APM_CONTAINER_CAP_ID_OLC = 4
*
* %AR_TKN_U32_CONTAINER_STACK_SIZE: Stack size in the container.
*
* %AR_TKN_U32_CONTAINER_GRAPH_POS: Graph Position
* APM_CONT_GRAPH_POS_STREAM = 1,
* APM_CONT_GRAPH_POS_PER_STR_PER_DEV = 2,
* APM_CONT_GRAPH_POS_STR_DEV = 3,
* APM_CONT_GRAPH_POS_GLOBAL_DEV = 4
*
* %AR_TKN_U32_CONTAINER_PROC_DOMAIN: Processor domain of container
* APM_PROC_DOMAIN_ID_MDSP = 1,
* APM_PROC_DOMAIN_ID_ADSP = 2,
* APM_PROC_DOMAIN_ID_SDSP = 4,
* APM_PROC_DOMAIN_ID_CDSP = 5
*
* %AR_TKN_U32_MODULE_ID: Module ID
*
* %AR_TKN_U32_MODULE_INSTANCE_ID: Module Instance ID.
*
* %AR_TKN_U32_MODULE_MAX_IP_PORTS: Module maximum input ports
*
* %AR_TKN_U32_MODULE_MAX_OP_PORTS: Module maximum output ports.
*
* %AR_TKN_U32_MODULE_IN_PORTS: Number of in ports
*
* %AR_TKN_U32_MODULE_OUT_PORTS: Number of out ports.
*
* %AR_TKN_U32_MODULE_SRC_OP_PORT_ID: Source module output port ID
*
* %AR_TKN_U32_MODULE_DST_IN_PORT_ID: Destination module input port ID
*
* %AR_TKN_U32_MODULE_HW_IF_IDX: Interface index types for I2S/LPAIF
*
* %AR_TKN_U32_MODULE_HW_IF_TYPE: Interface type
* LPAIF = 0,
* LPAIF_RXTX = 1,
* LPAIF_WSA = 2,
* LPAIF_VA = 3,
* LPAIF_AXI = 4
* Possible values for MI2S
* I2S_INTF_TYPE_PRIMARY = 0,
* I2S_INTF_TYPE_SECONDARY = 1,
* I2S_INTF_TYPE_TERTIARY = 2,
* I2S_INTF_TYPE_QUATERNARY = 3,
* I2S_INTF_TYPE_QUINARY = 4,
*
* %AR_TKN_U32_MODULE_FMT_INTERLEAVE: PCM Interleaving
* PCM_INTERLEAVED = 1,
* PCM_DEINTERLEAVED_PACKED = 2,
* PCM_DEINTERLEAVED_UNPACKED = 3
*
* %AR_TKN_U32_MODULE_FMT_DATA: data format
* FIXED POINT = 1,
* IEC60958 PACKETIZED = 3,
* IEC60958 PACKETIZED NON LINEAR = 8,
* COMPR OVER PCM PACKETIZED = 7,
* IEC61937 PACKETIZED = 2,
* GENERIC COMPRESSED = 5
*
* %AR_TKN_U32_MODULE_FMT_SAMPLE_RATE: sample rate
*
* %AR_TKN_U32_MODULE_FMT_BIT_DEPTH: bit depth
*
* %AR_TKN_U32_MODULE_SD_LINE_IDX: I2S serial data line idx
* I2S_SD0 = 1,
* I2S_SD1 = 2,
* I2S_SD2 = 3,
* I2S_SD3 = 4,
* I2S_QUAD01 = 5,
* I2S_QUAD23 = 6,
* I2S_6CHS = 7,
* I2S_8CHS = 8
*
* %AR_TKN_U32_MODULE_WS_SRC: Word Select Source
* AR_I2S_WS_SRC_EXTERNAL = 0,
* AR_I2S_WS_SRC_INTERNAL = 1,
*
* %AR_TKN_U32_MODULE_FRAME_SZ_FACTOR: Frame size factor
*
* %AR_TKN_U32_MODULE_LOG_CODE: Log Module Code
*
* %AR_TKN_U32_MODULE_LOG_TAP_POINT_ID: logging tap point of this module
*
* %AR_TKN_U32_MODULE_LOG_MODE: logging mode
* LOG_WAIT = 0,
* LOG_IMMEDIATELY = 1
*
* %AR_TKN_U16_MODULE_SYNC_SRC: Frame sync source
* AR_AUDIO_IF_SYNC_SRC_EXTERNAL = 0,
* AR_AUDIO_IF_SYNC_SRC_INTERNAL = 1
*
* %AR_TKN_U16_MODULE_CTRL_DATA_OUT_ENABLE: Enable data-out tri-state control
* AR_AUDIO_IF_CTRL_DATA_OE_DISABLE = 0,
* AR_AUDIO_IF_CTRL_DATA_OE_ENABLE = 1
*
* %AR_TKN_U32_MODULE_SLOT_MASK: Active TDM slot bitmask
*
* %AR_TKN_U16_MODULE_NSLOTS_PER_FRAME: Number of slots per TDM frame
*
* %AR_TKN_U16_MODULE_SLOT_WIDTH: Slot width in bits (16 or 32)
*
* %AR_TKN_U16_MODULE_SYNC_MODE: Frame sync mode
* AR_AUDIO_IF_FRAME_SYNC_MODE_SHORT = 0,
* AR_AUDIO_IF_FRAME_SYNC_MODE_ONE_SLOT = 1,
* AR_AUDIO_IF_FRAME_SYNC_MODE_LONG = 2
*
* %AR_TKN_U16_MODULE_CTRL_INVERT_SYNC_PULSE: Invert frame sync pulse polarity
* AR_AUDIO_IF_SYNC_NORMAL = 0,
* AR_AUDIO_IF_SYNC_INVERTED = 1
*
* %AR_TKN_U16_MODULE_CTRL_SYNC_DATA_DELAY: Data delay relative to frame sync
* AR_AUDIO_IF_DATA_DELAY_NONE = 0,
* AR_AUDIO_IF_DATA_DELAY_1_CYCLE = 1,
* AR_AUDIO_IF_DATA_DELAY_2_CYCLE = 2
*
* %AR_TKN_U16_MODULE_INTF_MODE: Audio IF interface mode
* AR_AUDIO_IF_INTF_MODE_TDM = 0,
* AR_AUDIO_IF_INTF_MODE_PCM = 1,
* AR_AUDIO_IF_INTF_MODE_I2S = 2
*
* %AR_TKN_U16_MODULE_QAIF_TYPE: QAIF hardware port type index
* AR_AUDIO_IF_QAIF = 0,
* AR_AUDIO_IF_QAIF_VA = 1
*
* %AR_TKN_U32_MODULE_ACTIVE_LANE_MASK: Active lane bitmask for multi-lane
*
* %AR_TKN_U32_MODULE_FRAME_SYNC_RATE: Frame sync rate in Hz
*
* %AR_TKN_U16_MODULE_BIT_CLK_TYPE: Bit clock type
* AR_AUDIO_IF_BIT_CLK_INTERNAL = 0,
* AR_AUDIO_IF_BIT_CLK_EXTERNAL = 1,
* AR_AUDIO_IF_BIT_CLK_SKIP = 2
*
* %AR_TKN_U8_MODULE_INV_INT_BIT_CLK: Invert internal bit clock
* AR_AUDIO_IF_CLK_NORMAL = 0,
* AR_AUDIO_IF_CLK_INVERTED = 1
*
* %AR_TKN_U8_MODULE_INV_EXT_BIT_CLK: Invert external bit clock
* AR_AUDIO_IF_CLK_NORMAL = 0,
* AR_AUDIO_IF_CLK_INVERTED = 1
*
* %AR_TKN_DAI_INDEX: dai index
*
*/
/* DAI Tokens */
#define AR_TKN_DAI_INDEX 1
/* SUB GRAPH Tokens */
#define AR_TKN_U32_SUB_GRAPH_INSTANCE_ID 2
#define AR_TKN_U32_SUB_GRAPH_PERF_MODE 3
#define AR_TKN_U32_SUB_GRAPH_DIRECTION 4
#define AR_TKN_U32_SUB_GRAPH_SCENARIO_ID 5
/* Container Tokens */
#define AR_TKN_U32_CONTAINER_INSTANCE_ID 100
#define AR_TKN_U32_CONTAINER_CAPABILITY_ID 101
#define AR_TKN_U32_CONTAINER_STACK_SIZE 102
#define AR_TKN_U32_CONTAINER_GRAPH_POS 103
#define AR_TKN_U32_CONTAINER_PROC_DOMAIN 104
/* Module Tokens */
#define AR_TKN_U32_MODULE_ID 200
#define AR_TKN_U32_MODULE_INSTANCE_ID 201
#define AR_TKN_U32_MODULE_MAX_IP_PORTS 202
#define AR_TKN_U32_MODULE_MAX_OP_PORTS 203
#define AR_TKN_U32_MODULE_IN_PORTS 204 /* deprecated */
#define AR_TKN_U32_MODULE_OUT_PORTS 205 /* deprecated */
#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID 206
#define AR_TKN_U32_MODULE_DST_IN_PORT_ID 207
#define AR_TKN_U32_MODULE_SRC_INSTANCE_ID 208
#define AR_TKN_U32_MODULE_DST_INSTANCE_ID 209
#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID1 210
#define AR_TKN_U32_MODULE_DST_IN_PORT_ID1 211
#define AR_TKN_U32_MODULE_DST_INSTANCE_ID1 212
#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID2 213
#define AR_TKN_U32_MODULE_DST_IN_PORT_ID2 214
#define AR_TKN_U32_MODULE_DST_INSTANCE_ID2 215
#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID3 216
#define AR_TKN_U32_MODULE_DST_IN_PORT_ID3 217
#define AR_TKN_U32_MODULE_DST_INSTANCE_ID3 218
#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID4 219
#define AR_TKN_U32_MODULE_DST_IN_PORT_ID4 220
#define AR_TKN_U32_MODULE_DST_INSTANCE_ID4 221
#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID5 222
#define AR_TKN_U32_MODULE_DST_IN_PORT_ID5 223
#define AR_TKN_U32_MODULE_DST_INSTANCE_ID5 224
#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID6 225
#define AR_TKN_U32_MODULE_DST_IN_PORT_ID6 226
#define AR_TKN_U32_MODULE_DST_INSTANCE_ID6 227
#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID7 228
#define AR_TKN_U32_MODULE_DST_IN_PORT_ID7 229
#define AR_TKN_U32_MODULE_DST_INSTANCE_ID7 230
#define AR_TKN_U32_MODULE_HW_IF_IDX 250
#define AR_TKN_U32_MODULE_HW_IF_TYPE 251
#define AR_TKN_U32_MODULE_FMT_INTERLEAVE 252
#define AR_TKN_U32_MODULE_FMT_DATA 253
#define AR_TKN_U32_MODULE_FMT_SAMPLE_RATE 254
#define AR_TKN_U32_MODULE_FMT_BIT_DEPTH 255
#define AR_TKN_U32_MODULE_SD_LINE_IDX 256
#define AR_TKN_U32_MODULE_WS_SRC 257
#define AR_TKN_U32_MODULE_FRAME_SZ_FACTOR 258
#define AR_TKN_U32_MODULE_LOG_CODE 259
#define AR_TKN_U32_MODULE_LOG_TAP_POINT_ID 260
#define AR_TKN_U32_MODULE_LOG_MODE 261
#define AR_TKN_U16_MODULE_SYNC_SRC 262
#define AR_TKN_U16_MODULE_CTRL_DATA_OUT_ENABLE 263
#define AR_TKN_U32_MODULE_SLOT_MASK 264
#define AR_TKN_U16_MODULE_NSLOTS_PER_FRAME 265
#define AR_TKN_U16_MODULE_SLOT_WIDTH 266
#define AR_TKN_U16_MODULE_SYNC_MODE 267
#define AR_TKN_U16_MODULE_CTRL_INVERT_SYNC_PULSE 268
#define AR_TKN_U16_MODULE_CTRL_SYNC_DATA_DELAY 269
#define AR_TKN_U16_MODULE_INTF_MODE 270
#define AR_TKN_U16_MODULE_QAIF_TYPE 271
#define AR_TKN_U32_MODULE_ACTIVE_LANE_MASK 272
#define AR_TKN_U32_MODULE_FRAME_SYNC_RATE 273
#define AR_TKN_U16_MODULE_BIT_CLK_TYPE 274
#define AR_TKN_U8_MODULE_INV_INT_BIT_CLK 275
#define AR_TKN_U8_MODULE_INV_EXT_BIT_CLK 276
#define AR_AUDIO_IF_SYNC_SRC_EXTERNAL 0
#define AR_AUDIO_IF_SYNC_SRC_INTERNAL 1
#define AR_AUDIO_IF_CTRL_DATA_OE_DISABLE 0
#define AR_AUDIO_IF_CTRL_DATA_OE_ENABLE 1
#define AR_AUDIO_IF_INTF_MODE_TDM 0
#define AR_AUDIO_IF_INTF_MODE_PCM 1
#define AR_AUDIO_IF_INTF_MODE_I2S 2
#define AR_AUDIO_IF_QAIF 0
#define AR_AUDIO_IF_QAIF_VA 1
#define AR_AUDIO_IF_FRAME_SYNC_MODE_SHORT 0
#define AR_AUDIO_IF_FRAME_SYNC_MODE_ONE_SLOT 1
#define AR_AUDIO_IF_FRAME_SYNC_MODE_LONG 2
#define AR_AUDIO_IF_SYNC_NORMAL 0
#define AR_AUDIO_IF_SYNC_INVERTED 1
#define AR_AUDIO_IF_DATA_DELAY_NONE 0
#define AR_AUDIO_IF_DATA_DELAY_1_CYCLE 1
#define AR_AUDIO_IF_DATA_DELAY_2_CYCLE 2
#define AR_AUDIO_IF_BIT_CLK_INTERNAL 0
#define AR_AUDIO_IF_BIT_CLK_EXTERNAL 1
#define AR_AUDIO_IF_BIT_CLK_SKIP 2
#define AR_AUDIO_IF_CLK_NORMAL 0
#define AR_AUDIO_IF_CLK_INVERTED 1
#define SND_SOC_AR_TPLG_MODULE_CFG_TYPE 0x01001006
struct audioreach_module_priv_data {
__le32 size; /* size in bytes of the array, including all elements */
__le32 type; /* SND_SOC_AR_TPLG_MODULE_CFG_TYPE */
__le32 priv[2]; /* Private data for future expansion */
__le32 data[0]; /* config data */
};
#endif /* __SND_AR_TOKENS_H__ */
|