/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */12#ifndef __SND_AR_TOKENS_H__3#define __SND_AR_TOKENS_H__45#include <linux/types.h>67#define APM_SUB_GRAPH_PERF_MODE_LOW_POWER 0x18#define APM_SUB_GRAPH_PERF_MODE_LOW_LATENCY 0x2910#define APM_SUB_GRAPH_DIRECTION_TX 0x111#define APM_SUB_GRAPH_DIRECTION_RX 0x21213/** Scenario ID Audio Playback */14#define APM_SUB_GRAPH_SID_AUDIO_PLAYBACK 0x115/* Scenario ID Audio Record */16#define APM_SUB_GRAPH_SID_AUDIO_RECORD 0x217/* Scenario ID Voice call. */18#define APM_SUB_GRAPH_SID_VOICE_CALL 0x31920/* container capability ID Pre/Post Processing (PP) */21#define APM_CONTAINER_CAP_ID_PP 0x122/* container capability ID Compression/Decompression (CD) */23#define APM_CONTAINER_CAP_ID_CD 0x224/* container capability ID End Point(EP) */25#define APM_CONTAINER_CAP_ID_EP 0x326/* container capability ID Offload (OLC) */27#define APM_CONTAINER_CAP_ID_OLC 0x42829/* container graph position Stream */30#define APM_CONT_GRAPH_POS_STREAM 0x131/* container graph position Per Stream Per Device*/32#define APM_CONT_GRAPH_POS_PER_STR_PER_DEV 0x233/* container graph position Stream-Device */34#define APM_CONT_GRAPH_POS_STR_DEV 0x335/* container graph position Global Device */36#define APM_CONT_GRAPH_POS_GLOBAL_DEV 0x43738#define APM_PROC_DOMAIN_ID_MDSP 0x139#define APM_PROC_DOMAIN_ID_ADSP 0x240#define APM_PROC_DOMAIN_ID_SDSP 0x441#define APM_PROC_DOMAIN_ID_CDSP 0x54243#define PCM_INTERLEAVED 144#define PCM_DEINTERLEAVED_PACKED 245#define PCM_DEINTERLEAVED_UNPACKED 346#define AR_I2S_WS_SRC_EXTERNAL 047#define AR_I2S_WS_SRC_INTERNAL 14849enum ar_event_types {50AR_EVENT_NONE = 0,51AR_PGA_DAPM_EVENT52};5354/*55* Kcontrol IDs56*/57#define SND_SOC_AR_TPLG_FE_BE_GRAPH_CTL_MIX 25658#define SND_SOC_AR_TPLG_VOL_CTL 2575960/**61* %AR_TKN_U32_SUB_GRAPH_INSTANCE_ID: Sub Graph Instance Id62*63* %AR_TKN_U32_SUB_GRAPH_PERF_MODE: Performance mode of subgraph64* APM_SUB_GRAPH_PERF_MODE_LOW_POWER = 1,65* APM_SUB_GRAPH_PERF_MODE_LOW_LATENCY = 266*67* %AR_TKN_U32_SUB_GRAPH_DIRECTION: Direction of subgraph68* APM_SUB_GRAPH_DIRECTION_TX = 1,69* APM_SUB_GRAPH_DIRECTION_RX = 270*71* %AR_TKN_U32_SUB_GRAPH_SCENARIO_ID: Scenario ID for subgraph72* APM_SUB_GRAPH_SID_AUDIO_PLAYBACK = 1,73* APM_SUB_GRAPH_SID_AUDIO_RECORD = 2,74* APM_SUB_GRAPH_SID_VOICE_CALL = 375*76* %AR_TKN_U32_CONTAINER_INSTANCE_ID: Container Instance ID77*78* %AR_TKN_U32_CONTAINER_CAPABILITY_ID: Container capability ID79* APM_CONTAINER_CAP_ID_PP = 1,80* APM_CONTAINER_CAP_ID_CD = 2,81* APM_CONTAINER_CAP_ID_EP = 3,82* APM_CONTAINER_CAP_ID_OLC = 483*84* %AR_TKN_U32_CONTAINER_STACK_SIZE: Stack size in the container.85*86* %AR_TKN_U32_CONTAINER_GRAPH_POS: Graph Position87* APM_CONT_GRAPH_POS_STREAM = 1,88* APM_CONT_GRAPH_POS_PER_STR_PER_DEV = 2,89* APM_CONT_GRAPH_POS_STR_DEV = 3,90* APM_CONT_GRAPH_POS_GLOBAL_DEV = 491*92* %AR_TKN_U32_CONTAINER_PROC_DOMAIN: Processor domain of container93* APM_PROC_DOMAIN_ID_MDSP = 1,94* APM_PROC_DOMAIN_ID_ADSP = 2,95* APM_PROC_DOMAIN_ID_SDSP = 4,96* APM_PROC_DOMAIN_ID_CDSP = 597*98* %AR_TKN_U32_MODULE_ID: Module ID99*100* %AR_TKN_U32_MODULE_INSTANCE_ID: Module Instance ID.101*102* %AR_TKN_U32_MODULE_MAX_IP_PORTS: Module maximum input ports103*104* %AR_TKN_U32_MODULE_MAX_OP_PORTS: Module maximum output ports.105*106* %AR_TKN_U32_MODULE_IN_PORTS: Number of in ports107*108* %AR_TKN_U32_MODULE_OUT_PORTS: Number of out ports.109*110* %AR_TKN_U32_MODULE_SRC_OP_PORT_ID: Source module output port ID111*112* %AR_TKN_U32_MODULE_DST_IN_PORT_ID: Destination module input port ID113*114* %AR_TKN_U32_MODULE_HW_IF_IDX: Interface index types for I2S/LPAIF115*116* %AR_TKN_U32_MODULE_HW_IF_TYPE: Interface type117* LPAIF = 0,118* LPAIF_RXTX = 1,119* LPAIF_WSA = 2,120* LPAIF_VA = 3,121* LPAIF_AXI = 4122* Possible values for MI2S123* I2S_INTF_TYPE_PRIMARY = 0,124* I2S_INTF_TYPE_SECONDARY = 1,125* I2S_INTF_TYPE_TERTIARY = 2,126* I2S_INTF_TYPE_QUATERNARY = 3,127* I2S_INTF_TYPE_QUINARY = 4,128*129* %AR_TKN_U32_MODULE_FMT_INTERLEAVE: PCM Interleaving130* PCM_INTERLEAVED = 1,131* PCM_DEINTERLEAVED_PACKED = 2,132* PCM_DEINTERLEAVED_UNPACKED = 3133*134* %AR_TKN_U32_MODULE_FMT_DATA: data format135* FIXED POINT = 1,136* IEC60958 PACKETIZED = 3,137* IEC60958 PACKETIZED NON LINEAR = 8,138* COMPR OVER PCM PACKETIZED = 7,139* IEC61937 PACKETIZED = 2,140* GENERIC COMPRESSED = 5141*142* %AR_TKN_U32_MODULE_FMT_SAMPLE_RATE: sample rate143*144* %AR_TKN_U32_MODULE_FMT_BIT_DEPTH: bit depth145*146* %AR_TKN_U32_MODULE_SD_LINE_IDX: I2S serial data line idx147* I2S_SD0 = 1,148* I2S_SD1 = 2,149* I2S_SD2 = 3,150* I2S_SD3 = 4,151* I2S_QUAD01 = 5,152* I2S_QUAD23 = 6,153* I2S_6CHS = 7,154* I2S_8CHS = 8155*156* %AR_TKN_U32_MODULE_WS_SRC: Word Select Source157* AR_I2S_WS_SRC_EXTERNAL = 0,158* AR_I2S_WS_SRC_INTERNAL = 1,159*160* %AR_TKN_U32_MODULE_FRAME_SZ_FACTOR: Frame size factor161*162* %AR_TKN_U32_MODULE_LOG_CODE: Log Module Code163*164* %AR_TKN_U32_MODULE_LOG_TAP_POINT_ID: logging tap point of this module165*166* %AR_TKN_U32_MODULE_LOG_MODE: logging mode167* LOG_WAIT = 0,168* LOG_IMMEDIATELY = 1169*170* %AR_TKN_DAI_INDEX: dai index171*172*/173174/* DAI Tokens */175#define AR_TKN_DAI_INDEX 1176/* SUB GRAPH Tokens */177#define AR_TKN_U32_SUB_GRAPH_INSTANCE_ID 2178#define AR_TKN_U32_SUB_GRAPH_PERF_MODE 3179#define AR_TKN_U32_SUB_GRAPH_DIRECTION 4180#define AR_TKN_U32_SUB_GRAPH_SCENARIO_ID 5181182/* Container Tokens */183#define AR_TKN_U32_CONTAINER_INSTANCE_ID 100184#define AR_TKN_U32_CONTAINER_CAPABILITY_ID 101185#define AR_TKN_U32_CONTAINER_STACK_SIZE 102186#define AR_TKN_U32_CONTAINER_GRAPH_POS 103187#define AR_TKN_U32_CONTAINER_PROC_DOMAIN 104188189/* Module Tokens */190#define AR_TKN_U32_MODULE_ID 200191#define AR_TKN_U32_MODULE_INSTANCE_ID 201192#define AR_TKN_U32_MODULE_MAX_IP_PORTS 202193#define AR_TKN_U32_MODULE_MAX_OP_PORTS 203194#define AR_TKN_U32_MODULE_IN_PORTS 204 /* deprecated */195#define AR_TKN_U32_MODULE_OUT_PORTS 205 /* deprecated */196#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID 206197#define AR_TKN_U32_MODULE_DST_IN_PORT_ID 207198#define AR_TKN_U32_MODULE_SRC_INSTANCE_ID 208199#define AR_TKN_U32_MODULE_DST_INSTANCE_ID 209200201#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID1 210202#define AR_TKN_U32_MODULE_DST_IN_PORT_ID1 211203#define AR_TKN_U32_MODULE_DST_INSTANCE_ID1 212204205#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID2 213206#define AR_TKN_U32_MODULE_DST_IN_PORT_ID2 214207#define AR_TKN_U32_MODULE_DST_INSTANCE_ID2 215208209#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID3 216210#define AR_TKN_U32_MODULE_DST_IN_PORT_ID3 217211#define AR_TKN_U32_MODULE_DST_INSTANCE_ID3 218212213#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID4 219214#define AR_TKN_U32_MODULE_DST_IN_PORT_ID4 220215#define AR_TKN_U32_MODULE_DST_INSTANCE_ID4 221216217#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID5 222218#define AR_TKN_U32_MODULE_DST_IN_PORT_ID5 223219#define AR_TKN_U32_MODULE_DST_INSTANCE_ID5 224220221#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID6 225222#define AR_TKN_U32_MODULE_DST_IN_PORT_ID6 226223#define AR_TKN_U32_MODULE_DST_INSTANCE_ID6 227224225#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID7 228226#define AR_TKN_U32_MODULE_DST_IN_PORT_ID7 229227#define AR_TKN_U32_MODULE_DST_INSTANCE_ID7 230228229#define AR_TKN_U32_MODULE_HW_IF_IDX 250230#define AR_TKN_U32_MODULE_HW_IF_TYPE 251231#define AR_TKN_U32_MODULE_FMT_INTERLEAVE 252232#define AR_TKN_U32_MODULE_FMT_DATA 253233#define AR_TKN_U32_MODULE_FMT_SAMPLE_RATE 254234#define AR_TKN_U32_MODULE_FMT_BIT_DEPTH 255235#define AR_TKN_U32_MODULE_SD_LINE_IDX 256236#define AR_TKN_U32_MODULE_WS_SRC 257237#define AR_TKN_U32_MODULE_FRAME_SZ_FACTOR 258238#define AR_TKN_U32_MODULE_LOG_CODE 259239#define AR_TKN_U32_MODULE_LOG_TAP_POINT_ID 260240#define AR_TKN_U32_MODULE_LOG_MODE 261241242#define SND_SOC_AR_TPLG_MODULE_CFG_TYPE 0x01001006243struct audioreach_module_priv_data {244__le32 size; /* size in bytes of the array, including all elements */245__le32 type; /* SND_SOC_AR_TPLG_MODULE_CFG_TYPE */246__le32 priv[2]; /* Private data for future expansion */247__le32 data[0]; /* config data */248};249250#endif /* __SND_AR_TOKENS_H__ */251252253