18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * This file is provided under a dual BSD/GPLv2 license.  When using or
48c2ecf20Sopenharmony_ci * redistributing this file, you may do so under either license.
58c2ecf20Sopenharmony_ci *
68c2ecf20Sopenharmony_ci * Copyright(c) 2018 Intel Corporation. All rights reserved.
78c2ecf20Sopenharmony_ci * Author: Liam Girdwood <liam.r.girdwood@linux.intel.com>
88c2ecf20Sopenharmony_ci *         Keyon Jie <yang.jie@linux.intel.com>
98c2ecf20Sopenharmony_ci */
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci/*
128c2ecf20Sopenharmony_ci * Topology IDs and tokens.
138c2ecf20Sopenharmony_ci *
148c2ecf20Sopenharmony_ci * ** MUST BE ALIGNED WITH TOPOLOGY CONFIGURATION TOKEN VALUES **
158c2ecf20Sopenharmony_ci */
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci#ifndef __INCLUDE_UAPI_SOF_TOPOLOGY_H__
188c2ecf20Sopenharmony_ci#define __INCLUDE_UAPI_SOF_TOPOLOGY_H__
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci/*
218c2ecf20Sopenharmony_ci * Kcontrol IDs
228c2ecf20Sopenharmony_ci */
238c2ecf20Sopenharmony_ci#define SOF_TPLG_KCTL_VOL_ID	256
248c2ecf20Sopenharmony_ci#define SOF_TPLG_KCTL_ENUM_ID	257
258c2ecf20Sopenharmony_ci#define SOF_TPLG_KCTL_BYTES_ID	258
268c2ecf20Sopenharmony_ci#define SOF_TPLG_KCTL_SWITCH_ID	259
278c2ecf20Sopenharmony_ci#define SOF_TPLG_KCTL_BYTES_VOLATILE_RO 260
288c2ecf20Sopenharmony_ci#define SOF_TPLG_KCTL_BYTES_VOLATILE_RW 261
298c2ecf20Sopenharmony_ci#define SOF_TPLG_KCTL_BYTES_WO_ID 262
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci/*
328c2ecf20Sopenharmony_ci * Tokens - must match values in topology configurations
338c2ecf20Sopenharmony_ci */
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci/* buffers */
368c2ecf20Sopenharmony_ci#define SOF_TKN_BUF_SIZE			100
378c2ecf20Sopenharmony_ci#define SOF_TKN_BUF_CAPS			101
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci/* DAI */
408c2ecf20Sopenharmony_ci/* Token retired with ABI 3.2, do not use for new capabilities
418c2ecf20Sopenharmony_ci * #define	SOF_TKN_DAI_DMAC_CONFIG			153
428c2ecf20Sopenharmony_ci */
438c2ecf20Sopenharmony_ci#define SOF_TKN_DAI_TYPE			154
448c2ecf20Sopenharmony_ci#define SOF_TKN_DAI_INDEX			155
458c2ecf20Sopenharmony_ci#define SOF_TKN_DAI_DIRECTION			156
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci/* scheduling */
488c2ecf20Sopenharmony_ci#define SOF_TKN_SCHED_PERIOD			200
498c2ecf20Sopenharmony_ci#define SOF_TKN_SCHED_PRIORITY			201
508c2ecf20Sopenharmony_ci#define SOF_TKN_SCHED_MIPS			202
518c2ecf20Sopenharmony_ci#define SOF_TKN_SCHED_CORE			203
528c2ecf20Sopenharmony_ci#define SOF_TKN_SCHED_FRAMES			204
538c2ecf20Sopenharmony_ci#define SOF_TKN_SCHED_TIME_DOMAIN		205
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci/* volume */
568c2ecf20Sopenharmony_ci#define SOF_TKN_VOLUME_RAMP_STEP_TYPE		250
578c2ecf20Sopenharmony_ci#define SOF_TKN_VOLUME_RAMP_STEP_MS		251
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci/* SRC */
608c2ecf20Sopenharmony_ci#define SOF_TKN_SRC_RATE_IN			300
618c2ecf20Sopenharmony_ci#define SOF_TKN_SRC_RATE_OUT			301
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci/* ASRC */
648c2ecf20Sopenharmony_ci#define SOF_TKN_ASRC_RATE_IN			320
658c2ecf20Sopenharmony_ci#define SOF_TKN_ASRC_RATE_OUT			321
668c2ecf20Sopenharmony_ci#define SOF_TKN_ASRC_ASYNCHRONOUS_MODE		322
678c2ecf20Sopenharmony_ci#define SOF_TKN_ASRC_OPERATION_MODE		323
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci/* PCM */
708c2ecf20Sopenharmony_ci#define SOF_TKN_PCM_DMAC_CONFIG			353
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ci/* Generic components */
738c2ecf20Sopenharmony_ci#define SOF_TKN_COMP_PERIOD_SINK_COUNT		400
748c2ecf20Sopenharmony_ci#define SOF_TKN_COMP_PERIOD_SOURCE_COUNT	401
758c2ecf20Sopenharmony_ci#define SOF_TKN_COMP_FORMAT			402
768c2ecf20Sopenharmony_ci/* Token retired with ABI 3.2, do not use for new capabilities
778c2ecf20Sopenharmony_ci * #define SOF_TKN_COMP_PRELOAD_COUNT		403
788c2ecf20Sopenharmony_ci */
798c2ecf20Sopenharmony_ci#define SOF_TKN_COMP_CORE_ID			404
808c2ecf20Sopenharmony_ci#define SOF_TKN_COMP_UUID                       405
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ci/* SSP */
838c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_SSP_CLKS_CONTROL		500
848c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_SSP_MCLK_ID		501
858c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_SSP_SAMPLE_BITS		502
868c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_SSP_FRAME_PULSE_WIDTH	503
878c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_SSP_QUIRKS		504
888c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_SSP_TDM_PADDING_PER_SLOT	505
898c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_SSP_BCLK_DELAY		506
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_ci/* DMIC */
928c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_DMIC_DRIVER_VERSION	600
938c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_DMIC_CLK_MIN		601
948c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_DMIC_CLK_MAX		602
958c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_DMIC_DUTY_MIN		603
968c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_DMIC_DUTY_MAX		604
978c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_DMIC_NUM_PDM_ACTIVE	605
988c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_DMIC_SAMPLE_RATE		608
998c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_DMIC_FIFO_WORD_LENGTH	609
1008c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_DMIC_UNMUTE_RAMP_TIME_MS  610
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ci/* DMIC PDM */
1038c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_DMIC_PDM_CTRL_ID		700
1048c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_DMIC_PDM_MIC_A_Enable	701
1058c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_DMIC_PDM_MIC_B_Enable	702
1068c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_DMIC_PDM_POLARITY_A	703
1078c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_DMIC_PDM_POLARITY_B	704
1088c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_DMIC_PDM_CLK_EDGE		705
1098c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_DMIC_PDM_SKEW		706
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci/* Tone */
1128c2ecf20Sopenharmony_ci#define SOF_TKN_TONE_SAMPLE_RATE		800
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ci/* Processing Components */
1158c2ecf20Sopenharmony_ci#define SOF_TKN_PROCESS_TYPE                    900
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ci/* for backward compatibility */
1188c2ecf20Sopenharmony_ci#define SOF_TKN_EFFECT_TYPE	SOF_TKN_PROCESS_TYPE
1198c2ecf20Sopenharmony_ci
1208c2ecf20Sopenharmony_ci/* SAI */
1218c2ecf20Sopenharmony_ci#define SOF_TKN_IMX_SAI_MCLK_ID			1000
1228c2ecf20Sopenharmony_ci
1238c2ecf20Sopenharmony_ci/* ESAI */
1248c2ecf20Sopenharmony_ci#define SOF_TKN_IMX_ESAI_MCLK_ID		1100
1258c2ecf20Sopenharmony_ci
1268c2ecf20Sopenharmony_ci/* Stream */
1278c2ecf20Sopenharmony_ci#define SOF_TKN_STREAM_PLAYBACK_COMPATIBLE_D0I3	1200
1288c2ecf20Sopenharmony_ci#define SOF_TKN_STREAM_CAPTURE_COMPATIBLE_D0I3	1201
1298c2ecf20Sopenharmony_ci
1308c2ecf20Sopenharmony_ci/* Led control for mute switches */
1318c2ecf20Sopenharmony_ci#define SOF_TKN_MUTE_LED_USE			1300
1328c2ecf20Sopenharmony_ci#define SOF_TKN_MUTE_LED_DIRECTION		1301
1338c2ecf20Sopenharmony_ci
1348c2ecf20Sopenharmony_ci/* ALH */
1358c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_ALH_RATE			1400
1368c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_ALH_CH			1401
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ci/* HDA */
1398c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_HDA_RATE			1500
1408c2ecf20Sopenharmony_ci#define SOF_TKN_INTEL_HDA_CH			1501
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ci#endif
143