~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/sound/snd_sst_tokens.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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  */
236 enum 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 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php