^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * This file is provided under a dual BSD/GPLv2 license. When using or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * redistributing this file, you may do so under either license.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * Copyright(c) 2018 Intel Corporation. All rights reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) * Author: Liam Girdwood <liam.r.girdwood@linux.intel.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) * Keyon Jie <yang.jie@linux.intel.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) * Topology IDs and tokens.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) * ** MUST BE ALIGNED WITH TOPOLOGY CONFIGURATION TOKEN VALUES **
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #ifndef __INCLUDE_UAPI_SOF_TOPOLOGY_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) #define __INCLUDE_UAPI_SOF_TOPOLOGY_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) * Kcontrol IDs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) #define SOF_TPLG_KCTL_VOL_ID 256
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) #define SOF_TPLG_KCTL_ENUM_ID 257
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) #define SOF_TPLG_KCTL_BYTES_ID 258
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) #define SOF_TPLG_KCTL_SWITCH_ID 259
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) #define SOF_TPLG_KCTL_BYTES_VOLATILE_RO 260
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) #define SOF_TPLG_KCTL_BYTES_VOLATILE_RW 261
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) #define SOF_TPLG_KCTL_BYTES_WO_ID 262
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) * Tokens - must match values in topology configurations
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) /* buffers */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) #define SOF_TKN_BUF_SIZE 100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) #define SOF_TKN_BUF_CAPS 101
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) /* DAI */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) /* Token retired with ABI 3.2, do not use for new capabilities
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) * #define SOF_TKN_DAI_DMAC_CONFIG 153
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) #define SOF_TKN_DAI_TYPE 154
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) #define SOF_TKN_DAI_INDEX 155
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) #define SOF_TKN_DAI_DIRECTION 156
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) /* scheduling */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) #define SOF_TKN_SCHED_PERIOD 200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) #define SOF_TKN_SCHED_PRIORITY 201
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) #define SOF_TKN_SCHED_MIPS 202
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) #define SOF_TKN_SCHED_CORE 203
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) #define SOF_TKN_SCHED_FRAMES 204
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) #define SOF_TKN_SCHED_TIME_DOMAIN 205
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) /* volume */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) #define SOF_TKN_VOLUME_RAMP_STEP_TYPE 250
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) #define SOF_TKN_VOLUME_RAMP_STEP_MS 251
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) /* SRC */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) #define SOF_TKN_SRC_RATE_IN 300
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) #define SOF_TKN_SRC_RATE_OUT 301
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) /* ASRC */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) #define SOF_TKN_ASRC_RATE_IN 320
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) #define SOF_TKN_ASRC_RATE_OUT 321
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) #define SOF_TKN_ASRC_ASYNCHRONOUS_MODE 322
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) #define SOF_TKN_ASRC_OPERATION_MODE 323
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) /* PCM */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) #define SOF_TKN_PCM_DMAC_CONFIG 353
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) /* Generic components */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) #define SOF_TKN_COMP_PERIOD_SINK_COUNT 400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) #define SOF_TKN_COMP_PERIOD_SOURCE_COUNT 401
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) #define SOF_TKN_COMP_FORMAT 402
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) /* Token retired with ABI 3.2, do not use for new capabilities
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) * #define SOF_TKN_COMP_PRELOAD_COUNT 403
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) #define SOF_TKN_COMP_CORE_ID 404
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) #define SOF_TKN_COMP_UUID 405
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) /* SSP */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) #define SOF_TKN_INTEL_SSP_CLKS_CONTROL 500
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) #define SOF_TKN_INTEL_SSP_MCLK_ID 501
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) #define SOF_TKN_INTEL_SSP_SAMPLE_BITS 502
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) #define SOF_TKN_INTEL_SSP_FRAME_PULSE_WIDTH 503
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) #define SOF_TKN_INTEL_SSP_QUIRKS 504
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) #define SOF_TKN_INTEL_SSP_TDM_PADDING_PER_SLOT 505
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) #define SOF_TKN_INTEL_SSP_BCLK_DELAY 506
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) /* DMIC */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) #define SOF_TKN_INTEL_DMIC_DRIVER_VERSION 600
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) #define SOF_TKN_INTEL_DMIC_CLK_MIN 601
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) #define SOF_TKN_INTEL_DMIC_CLK_MAX 602
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) #define SOF_TKN_INTEL_DMIC_DUTY_MIN 603
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) #define SOF_TKN_INTEL_DMIC_DUTY_MAX 604
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) #define SOF_TKN_INTEL_DMIC_NUM_PDM_ACTIVE 605
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) #define SOF_TKN_INTEL_DMIC_SAMPLE_RATE 608
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) #define SOF_TKN_INTEL_DMIC_FIFO_WORD_LENGTH 609
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) #define SOF_TKN_INTEL_DMIC_UNMUTE_RAMP_TIME_MS 610
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) /* DMIC PDM */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) #define SOF_TKN_INTEL_DMIC_PDM_CTRL_ID 700
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) #define SOF_TKN_INTEL_DMIC_PDM_MIC_A_Enable 701
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) #define SOF_TKN_INTEL_DMIC_PDM_MIC_B_Enable 702
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) #define SOF_TKN_INTEL_DMIC_PDM_POLARITY_A 703
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) #define SOF_TKN_INTEL_DMIC_PDM_POLARITY_B 704
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) #define SOF_TKN_INTEL_DMIC_PDM_CLK_EDGE 705
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) #define SOF_TKN_INTEL_DMIC_PDM_SKEW 706
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) /* Tone */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) #define SOF_TKN_TONE_SAMPLE_RATE 800
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) /* Processing Components */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) #define SOF_TKN_PROCESS_TYPE 900
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) /* for backward compatibility */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) #define SOF_TKN_EFFECT_TYPE SOF_TKN_PROCESS_TYPE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) /* SAI */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) #define SOF_TKN_IMX_SAI_MCLK_ID 1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) /* ESAI */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) #define SOF_TKN_IMX_ESAI_MCLK_ID 1100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) /* Stream */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) #define SOF_TKN_STREAM_PLAYBACK_COMPATIBLE_D0I3 1200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) #define SOF_TKN_STREAM_CAPTURE_COMPATIBLE_D0I3 1201
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) /* Led control for mute switches */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) #define SOF_TKN_MUTE_LED_USE 1300
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) #define SOF_TKN_MUTE_LED_DIRECTION 1301
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) /* ALH */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) #define SOF_TKN_INTEL_ALH_RATE 1400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) #define SOF_TKN_INTEL_ALH_CH 1401
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) /* HDA */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) #define SOF_TKN_INTEL_HDA_RATE 1500
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) #define SOF_TKN_INTEL_HDA_CH 1501
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) #endif