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