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