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 
48 enum 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 
195 #define AR_TKN_U32_MODULE_HW_IF_IDX		250
196 #define AR_TKN_U32_MODULE_HW_IF_TYPE		251
197 #define AR_TKN_U32_MODULE_FMT_INTERLEAVE	252
198 #define AR_TKN_U32_MODULE_FMT_DATA		253
199 #define AR_TKN_U32_MODULE_FMT_SAMPLE_RATE	254
200 #define AR_TKN_U32_MODULE_FMT_BIT_DEPTH		255
201 #define AR_TKN_U32_MODULE_SD_LINE_IDX		256
202 #define AR_TKN_U32_MODULE_WS_SRC		257
203 #define AR_TKN_U32_MODULE_FRAME_SZ_FACTOR	258
204 #define AR_TKN_U32_MODULE_LOG_CODE		259
205 #define AR_TKN_U32_MODULE_LOG_TAP_POINT_ID	260
206 #define AR_TKN_U32_MODULE_LOG_MODE		261
207 
208 #endif /* __SND_AR_TOKENS_H__ */
209