Warning: This file is not a C or C++ file. It does not have highlighting.

1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2/*
3 * snd_sst_tokens.h - Intel SST tokens definition
4 *
5 * Copyright (C) 2016 Intel Corp
6 * Author: Shreyas NC <shreyas.nc@intel.com>
7 */
8#ifndef __SND_SST_TOKENS_H__
9#define __SND_SST_TOKENS_H__
10
11/**
12 * %SKL_TKN_UUID: Module UUID
13 *
14 * %SKL_TKN_U8_BLOCK_TYPE: Type of the private data block.Can be:
15 * tuples, bytes, short and words
16 *
17 * %SKL_TKN_U8_IN_PIN_TYPE: Input pin type,
18 * homogenous=0, heterogenous=1
19 *
20 * %SKL_TKN_U8_OUT_PIN_TYPE: Output pin type,
21 * homogenous=0, heterogenous=1
22 * %SKL_TKN_U8_DYN_IN_PIN: Configure Input pin dynamically
23 * if true
24 *
25 * %SKL_TKN_U8_DYN_OUT_PIN: Configure Output pin dynamically
26 * if true
27 *
28 * %SKL_TKN_U8_IN_QUEUE_COUNT: Store the number of Input pins
29 *
30 * %SKL_TKN_U8_OUT_QUEUE_COUNT: Store the number of Output pins
31 *
32 * %SKL_TKN_U8_TIME_SLOT: TDM slot number
33 *
34 * %SKL_TKN_U8_CORE_ID: Stores module affinity value.Can take
35 * the values:
36 * SKL_AFFINITY_CORE_0 = 0,
37 * SKL_AFFINITY_CORE_1,
38 * SKL_AFFINITY_CORE_MAX
39 *
40 * %SKL_TKN_U8_MOD_TYPE: Module type value.
41 *
42 * %SKL_TKN_U8_CONN_TYPE: Module connection type can be a FE,
43 * BE or NONE as defined :
44 * SKL_PIPE_CONN_TYPE_NONE = 0,
45 * SKL_PIPE_CONN_TYPE_FE = 1 (HOST_DMA)
46 * SKL_PIPE_CONN_TYPE_BE = 2 (LINK_DMA)
47 *
48 * %SKL_TKN_U8_DEV_TYPE: Type of device to which the module is
49 * connected
50 * Can take the values:
51 * SKL_DEVICE_BT = 0x0,
52 * SKL_DEVICE_DMIC = 0x1,
53 * SKL_DEVICE_I2S = 0x2,
54 * SKL_DEVICE_SLIMBUS = 0x3,
55 * SKL_DEVICE_HDALINK = 0x4,
56 * SKL_DEVICE_HDAHOST = 0x5,
57 * SKL_DEVICE_NONE
58 *
59 * %SKL_TKN_U8_HW_CONN_TYPE: Connection type of the HW to which the
60 * module is connected
61 * SKL_CONN_NONE = 0,
62 * SKL_CONN_SOURCE = 1,
63 * SKL_CONN_SINK = 2
64 *
65 * %SKL_TKN_U16_PIN_INST_ID: Stores the pin instance id
66 *
67 * %SKL_TKN_U16_MOD_INST_ID: Stores the mdule instance id
68 *
69 * %SKL_TKN_U32_MAX_MCPS: Module max mcps value
70 *
71 * %SKL_TKN_U32_MEM_PAGES: Module resource pages
72 *
73 * %SKL_TKN_U32_OBS: Stores Output Buffer size
74 *
75 * %SKL_TKN_U32_IBS: Stores input buffer size
76 *
77 * %SKL_TKN_U32_VBUS_ID: Module VBUS_ID. PDM=0, SSP0=0,
78 * SSP1=1,SSP2=2,
79 * SSP3=3, SSP4=4,
80 * SSP5=5, SSP6=6,INVALID
81 *
82 * %SKL_TKN_U32_PARAMS_FIXUP: Module Params fixup mask
83 * %SKL_TKN_U32_CONVERTER: Module params converter mask
84 * %SKL_TKN_U32_PIPE_ID: Stores the pipe id
85 *
86 * %SKL_TKN_U32_PIPE_CONN_TYPE: Type of the token to which the pipe is
87 * connected to. It can be
88 * SKL_PIPE_CONN_TYPE_NONE = 0,
89 * SKL_PIPE_CONN_TYPE_FE = 1 (HOST_DMA),
90 * SKL_PIPE_CONN_TYPE_BE = 2 (LINK_DMA),
91 *
92 * %SKL_TKN_U32_PIPE_PRIORITY: Pipe priority value
93 * %SKL_TKN_U32_PIPE_MEM_PGS: Pipe resource pages
94 *
95 * %SKL_TKN_U32_DIR_PIN_COUNT: Value for the direction to set input/output
96 * formats and the pin count.
97 * The first 4 bits have the direction
98 * value and the next 4 have
99 * the pin count value.
100 * SKL_DIR_IN = 0, SKL_DIR_OUT = 1.
101 * The input and output formats
102 * share the same set of tokens
103 * with the distinction between input
104 * and output made by reading direction
105 * token.
106 *
107 * %SKL_TKN_U32_FMT_CH: Supported channel count
108 *
109 * %SKL_TKN_U32_FMT_FREQ: Supported frequency/sample rate
110 *
111 * %SKL_TKN_U32_FMT_BIT_DEPTH: Supported container size
112 *
113 * %SKL_TKN_U32_FMT_SAMPLE_SIZE:Number of samples in the container
114 *
115 * %SKL_TKN_U32_FMT_CH_CONFIG: Supported channel configurations for the
116 * input/output.
117 *
118 * %SKL_TKN_U32_FMT_INTERLEAVE: Interleaving style which can be per
119 * channel or per sample. The values can be :
120 * SKL_INTERLEAVING_PER_CHANNEL = 0,
121 * SKL_INTERLEAVING_PER_SAMPLE = 1,
122 *
123 * %SKL_TKN_U32_FMT_SAMPLE_TYPE:
124 * Specifies the sample type. Can take the
125 * values: SKL_SAMPLE_TYPE_INT_MSB = 0,
126 * SKL_SAMPLE_TYPE_INT_LSB = 1,
127 * SKL_SAMPLE_TYPE_INT_SIGNED = 2,
128 * SKL_SAMPLE_TYPE_INT_UNSIGNED = 3,
129 * SKL_SAMPLE_TYPE_FLOAT = 4
130 *
131 * %SKL_TKN_U32_CH_MAP: Channel map values
132 * %SKL_TKN_U32_MOD_SET_PARAMS: It can take these values:
133 * SKL_PARAM_DEFAULT, SKL_PARAM_INIT,
134 * SKL_PARAM_SET, SKL_PARAM_BIND
135 *
136 * %SKL_TKN_U32_MOD_PARAM_ID: ID of the module params
137 *
138 * %SKL_TKN_U32_CAPS_SET_PARAMS:
139 * Set params value
140 *
141 * %SKL_TKN_U32_CAPS_PARAMS_ID: Params ID
142 *
143 * %SKL_TKN_U32_CAPS_SIZE: Caps size
144 *
145 * %SKL_TKN_U32_PROC_DOMAIN: Specify processing domain
146 *
147 * %SKL_TKN_U32_LIB_COUNT: Specifies the number of libraries
148 *
149 * %SKL_TKN_STR_LIB_NAME: Specifies the library name
150 *
151 * %SKL_TKN_U32_PMODE: Specifies the power mode for pipe
152 *
153 * %SKL_TKL_U32_D0I3_CAPS: Specifies the D0i3 capability for module
154 *
155 * %SKL_TKN_U32_DMA_BUF_SIZE: DMA buffer size in millisec
156 *
157 * %SKL_TKN_U32_PIPE_DIR: Specifies pipe direction. Can be
158 * playback/capture.
159 *
160 * %SKL_TKN_U32_NUM_CONFIGS: Number of pipe configs
161 *
162 * %SKL_TKN_U32_PATH_MEM_PGS: Size of memory (in pages) required for pipeline
163 * and its data
164 *
165 * %SKL_TKN_U32_PIPE_CONFIG_ID: Config id for the modules in the pipe
166 * and PCM params supported by that pipe
167 * config. This is used as index to fill
168 * up the pipe config and module config
169 * structure.
170 *
171 * %SKL_TKN_U32_CFG_FREQ:
172 * %SKL_TKN_U8_CFG_CHAN:
173 * %SKL_TKN_U8_CFG_BPS: PCM params (freq, channels, bits per sample)
174 * supported for each of the pipe configs.
175 *
176 * %SKL_TKN_CFG_MOD_RES_ID: Module's resource index for each of the
177 * pipe config
178 *
179 * %SKL_TKN_CFG_MOD_FMT_ID: Module's interface index for each of the
180 * pipe config
181 *
182 * %SKL_TKN_U8_NUM_MOD: Number of modules in the manifest
183 *
184 * %SKL_TKN_MM_U8_MOD_IDX: Current index of the module in the manifest
185 *
186 * %SKL_TKN_MM_U8_NUM_RES: Number of resources for the module
187 *
188 * %SKL_TKN_MM_U8_NUM_INTF: Number of interfaces for the module
189 *
190 * %SKL_TKN_MM_U32_RES_ID: Resource index for the resource info to
191 * be filled into.
192 * A module can support multiple resource
193 * configuration and is represnted as a
194 * resource table. This index is used to
195 * fill information into appropriate index.
196 *
197 * %SKL_TKN_MM_U32_CPS: DSP cycles per second
198 *
199 * %SKL_TKN_MM_U32_DMA_SIZE: Allocated buffer size for gateway DMA
200 *
201 * %SKL_TKN_MM_U32_CPC: DSP cycles allocated per frame
202 *
203 * %SKL_TKN_MM_U32_RES_PIN_ID: Resource pin index in the module
204 *
205 * %SKL_TKN_MM_U32_INTF_PIN_ID: Interface index in the module
206 *
207 * %SKL_TKN_MM_U32_PIN_BUF: Buffer size of the module pin
208 *
209 * %SKL_TKN_MM_U32_FMT_ID: Format index for each of the interface/
210 * format information to be filled into.
211 *
212 * %SKL_TKN_MM_U32_NUM_IN_FMT: Number of input formats
213 * %SKL_TKN_MM_U32_NUM_OUT_FMT: Number of output formats
214 *
215 * %SKL_TKN_U32_ASTATE_IDX: Table Index for the A-State entry to be filled
216 * with kcps and clock source
217 *
218 * %SKL_TKN_U32_ASTATE_COUNT: Number of valid entries in A-State table
219 *
220 * %SKL_TKN_U32_ASTATE_KCPS: Specifies the core load threshold (in kilo
221 * cycles per second) below which DSP is clocked
222 * from source specified by clock source.
223 *
224 * %SKL_TKN_U32_ASTATE_CLK_SRC: Clock source for A-State entry
225 *
226 * %SKL_TKN_U32_FMT_CFG_IDX: Format config index
227 *
228 * module_id and loadable flags dont have tokens as these values will be
229 * read from the DSP FW manifest
230 *
231 * Tokens defined can be used either in the manifest or widget private data.
232 *
233 * SKL_TKN_MM is used as a suffix for all tokens that represent
234 * module data in the manifest.
235 */
236enum SKL_TKNS {
237 SKL_TKN_UUID = 1,
238 SKL_TKN_U8_NUM_BLOCKS,
239 SKL_TKN_U8_BLOCK_TYPE,
240 SKL_TKN_U8_IN_PIN_TYPE,
241 SKL_TKN_U8_OUT_PIN_TYPE,
242 SKL_TKN_U8_DYN_IN_PIN,
243 SKL_TKN_U8_DYN_OUT_PIN,
244 SKL_TKN_U8_IN_QUEUE_COUNT,
245 SKL_TKN_U8_OUT_QUEUE_COUNT,
246 SKL_TKN_U8_TIME_SLOT,
247 SKL_TKN_U8_CORE_ID,
248 SKL_TKN_U8_MOD_TYPE,
249 SKL_TKN_U8_CONN_TYPE,
250 SKL_TKN_U8_DEV_TYPE,
251 SKL_TKN_U8_HW_CONN_TYPE,
252 SKL_TKN_U16_MOD_INST_ID,
253 SKL_TKN_U16_BLOCK_SIZE,
254 SKL_TKN_U32_MAX_MCPS,
255 SKL_TKN_U32_MEM_PAGES,
256 SKL_TKN_U32_OBS,
257 SKL_TKN_U32_IBS,
258 SKL_TKN_U32_VBUS_ID,
259 SKL_TKN_U32_PARAMS_FIXUP,
260 SKL_TKN_U32_CONVERTER,
261 SKL_TKN_U32_PIPE_ID,
262 SKL_TKN_U32_PIPE_CONN_TYPE,
263 SKL_TKN_U32_PIPE_PRIORITY,
264 SKL_TKN_U32_PIPE_MEM_PGS,
265 SKL_TKN_U32_DIR_PIN_COUNT,
266 SKL_TKN_U32_FMT_CH,
267 SKL_TKN_U32_FMT_FREQ,
268 SKL_TKN_U32_FMT_BIT_DEPTH,
269 SKL_TKN_U32_FMT_SAMPLE_SIZE,
270 SKL_TKN_U32_FMT_CH_CONFIG,
271 SKL_TKN_U32_FMT_INTERLEAVE,
272 SKL_TKN_U32_FMT_SAMPLE_TYPE,
273 SKL_TKN_U32_FMT_CH_MAP,
274 SKL_TKN_U32_PIN_MOD_ID,
275 SKL_TKN_U32_PIN_INST_ID,
276 SKL_TKN_U32_MOD_SET_PARAMS,
277 SKL_TKN_U32_MOD_PARAM_ID,
278 SKL_TKN_U32_CAPS_SET_PARAMS,
279 SKL_TKN_U32_CAPS_PARAMS_ID,
280 SKL_TKN_U32_CAPS_SIZE,
281 SKL_TKN_U32_PROC_DOMAIN,
282 SKL_TKN_U32_LIB_COUNT,
283 SKL_TKN_STR_LIB_NAME,
284 SKL_TKN_U32_PMODE,
285 SKL_TKL_U32_D0I3_CAPS, /* Typo added at v4.10 */
286 SKL_TKN_U32_D0I3_CAPS = SKL_TKL_U32_D0I3_CAPS,
287 SKL_TKN_U32_DMA_BUF_SIZE,
288
289 SKL_TKN_U32_PIPE_DIRECTION,
290 SKL_TKN_U32_PIPE_CONFIG_ID,
291 SKL_TKN_U32_NUM_CONFIGS,
292 SKL_TKN_U32_PATH_MEM_PGS,
293
294 SKL_TKN_U32_CFG_FREQ,
295 SKL_TKN_U8_CFG_CHAN,
296 SKL_TKN_U8_CFG_BPS,
297 SKL_TKN_CFG_MOD_RES_ID,
298 SKL_TKN_CFG_MOD_FMT_ID,
299 SKL_TKN_U8_NUM_MOD,
300
301 SKL_TKN_MM_U8_MOD_IDX,
302 SKL_TKN_MM_U8_NUM_RES,
303 SKL_TKN_MM_U8_NUM_INTF,
304 SKL_TKN_MM_U32_RES_ID,
305 SKL_TKN_MM_U32_CPS,
306 SKL_TKN_MM_U32_DMA_SIZE,
307 SKL_TKN_MM_U32_CPC,
308 SKL_TKN_MM_U32_RES_PIN_ID,
309 SKL_TKN_MM_U32_INTF_PIN_ID,
310 SKL_TKN_MM_U32_PIN_BUF,
311 SKL_TKN_MM_U32_FMT_ID,
312 SKL_TKN_MM_U32_NUM_IN_FMT,
313 SKL_TKN_MM_U32_NUM_OUT_FMT,
314
315 SKL_TKN_U32_ASTATE_IDX,
316 SKL_TKN_U32_ASTATE_COUNT,
317 SKL_TKN_U32_ASTATE_KCPS,
318 SKL_TKN_U32_ASTATE_CLK_SRC,
319
320 SKL_TKN_U32_FMT_CFG_IDX = 96,
321 SKL_TKN_MAX = SKL_TKN_U32_FMT_CFG_IDX,
322};
323
324#endif
325

Warning: This file is not a C or C++ file. It does not have highlighting.

source code of linux/include/uapi/sound/snd_sst_tokens.h