xref: /aosp_15_r20/external/kernel-headers/original/uapi/sound/skl-tplg-interface.h (revision f80ad8b4341604f5951dab671d41019a6d7087ce)
1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*f80ad8b4SAndroid Build Coastguard Worker /*
3*f80ad8b4SAndroid Build Coastguard Worker  * skl-tplg-interface.h - Intel DSP FW private data interface
4*f80ad8b4SAndroid Build Coastguard Worker  *
5*f80ad8b4SAndroid Build Coastguard Worker  * Copyright (C) 2015 Intel Corp
6*f80ad8b4SAndroid Build Coastguard Worker  * Author: Jeeja KP <[email protected]>
7*f80ad8b4SAndroid Build Coastguard Worker  *	    Nilofer, Samreen <[email protected]>
8*f80ad8b4SAndroid Build Coastguard Worker  */
9*f80ad8b4SAndroid Build Coastguard Worker 
10*f80ad8b4SAndroid Build Coastguard Worker #ifndef __HDA_TPLG_INTERFACE_H__
11*f80ad8b4SAndroid Build Coastguard Worker #define __HDA_TPLG_INTERFACE_H__
12*f80ad8b4SAndroid Build Coastguard Worker 
13*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h>
14*f80ad8b4SAndroid Build Coastguard Worker 
15*f80ad8b4SAndroid Build Coastguard Worker /*
16*f80ad8b4SAndroid Build Coastguard Worker  * Default types range from 0~12. type can range from 0 to 0xff
17*f80ad8b4SAndroid Build Coastguard Worker  * SST types start at higher to avoid any overlapping in future
18*f80ad8b4SAndroid Build Coastguard Worker  */
19*f80ad8b4SAndroid Build Coastguard Worker #define SKL_CONTROL_TYPE_BYTE_TLV	0x100
20*f80ad8b4SAndroid Build Coastguard Worker #define SKL_CONTROL_TYPE_MIC_SELECT	0x102
21*f80ad8b4SAndroid Build Coastguard Worker #define SKL_CONTROL_TYPE_MULTI_IO_SELECT	0x103
22*f80ad8b4SAndroid Build Coastguard Worker #define SKL_CONTROL_TYPE_MULTI_IO_SELECT_DMIC	0x104
23*f80ad8b4SAndroid Build Coastguard Worker 
24*f80ad8b4SAndroid Build Coastguard Worker #define HDA_SST_CFG_MAX	900 /* size of copier cfg*/
25*f80ad8b4SAndroid Build Coastguard Worker #define MAX_IN_QUEUE 8
26*f80ad8b4SAndroid Build Coastguard Worker #define MAX_OUT_QUEUE 8
27*f80ad8b4SAndroid Build Coastguard Worker 
28*f80ad8b4SAndroid Build Coastguard Worker #define SKL_UUID_STR_SZ 40
29*f80ad8b4SAndroid Build Coastguard Worker /* Event types goes here */
30*f80ad8b4SAndroid Build Coastguard Worker /* Reserve event type 0 for no event handlers */
31*f80ad8b4SAndroid Build Coastguard Worker enum skl_event_types {
32*f80ad8b4SAndroid Build Coastguard Worker 	SKL_EVENT_NONE = 0,
33*f80ad8b4SAndroid Build Coastguard Worker 	SKL_MIXER_EVENT,
34*f80ad8b4SAndroid Build Coastguard Worker 	SKL_MUX_EVENT,
35*f80ad8b4SAndroid Build Coastguard Worker 	SKL_VMIXER_EVENT,
36*f80ad8b4SAndroid Build Coastguard Worker 	SKL_PGA_EVENT
37*f80ad8b4SAndroid Build Coastguard Worker };
38*f80ad8b4SAndroid Build Coastguard Worker 
39*f80ad8b4SAndroid Build Coastguard Worker /**
40*f80ad8b4SAndroid Build Coastguard Worker  * enum skl_ch_cfg - channel configuration
41*f80ad8b4SAndroid Build Coastguard Worker  *
42*f80ad8b4SAndroid Build Coastguard Worker  * @SKL_CH_CFG_MONO:	One channel only
43*f80ad8b4SAndroid Build Coastguard Worker  * @SKL_CH_CFG_STEREO:	L & R
44*f80ad8b4SAndroid Build Coastguard Worker  * @SKL_CH_CFG_2_1:	L, R & LFE
45*f80ad8b4SAndroid Build Coastguard Worker  * @SKL_CH_CFG_3_0:	L, C & R
46*f80ad8b4SAndroid Build Coastguard Worker  * @SKL_CH_CFG_3_1:	L, C, R & LFE
47*f80ad8b4SAndroid Build Coastguard Worker  * @SKL_CH_CFG_QUATRO:	L, R, Ls & Rs
48*f80ad8b4SAndroid Build Coastguard Worker  * @SKL_CH_CFG_4_0:	L, C, R & Cs
49*f80ad8b4SAndroid Build Coastguard Worker  * @SKL_CH_CFG_5_0:	L, C, R, Ls & Rs
50*f80ad8b4SAndroid Build Coastguard Worker  * @SKL_CH_CFG_5_1:	L, C, R, Ls, Rs & LFE
51*f80ad8b4SAndroid Build Coastguard Worker  * @SKL_CH_CFG_DUAL_MONO: One channel replicated in two
52*f80ad8b4SAndroid Build Coastguard Worker  * @SKL_CH_CFG_I2S_DUAL_STEREO_0: Stereo(L,R) in 4 slots, 1st stream:[ L, R, -, - ]
53*f80ad8b4SAndroid Build Coastguard Worker  * @SKL_CH_CFG_I2S_DUAL_STEREO_1: Stereo(L,R) in 4 slots, 2nd stream:[ -, -, L, R ]
54*f80ad8b4SAndroid Build Coastguard Worker  * @SKL_CH_CFG_INVALID:	Invalid
55*f80ad8b4SAndroid Build Coastguard Worker  */
56*f80ad8b4SAndroid Build Coastguard Worker enum skl_ch_cfg {
57*f80ad8b4SAndroid Build Coastguard Worker 	SKL_CH_CFG_MONO = 0,
58*f80ad8b4SAndroid Build Coastguard Worker 	SKL_CH_CFG_STEREO = 1,
59*f80ad8b4SAndroid Build Coastguard Worker 	SKL_CH_CFG_2_1 = 2,
60*f80ad8b4SAndroid Build Coastguard Worker 	SKL_CH_CFG_3_0 = 3,
61*f80ad8b4SAndroid Build Coastguard Worker 	SKL_CH_CFG_3_1 = 4,
62*f80ad8b4SAndroid Build Coastguard Worker 	SKL_CH_CFG_QUATRO = 5,
63*f80ad8b4SAndroid Build Coastguard Worker 	SKL_CH_CFG_4_0 = 6,
64*f80ad8b4SAndroid Build Coastguard Worker 	SKL_CH_CFG_5_0 = 7,
65*f80ad8b4SAndroid Build Coastguard Worker 	SKL_CH_CFG_5_1 = 8,
66*f80ad8b4SAndroid Build Coastguard Worker 	SKL_CH_CFG_DUAL_MONO = 9,
67*f80ad8b4SAndroid Build Coastguard Worker 	SKL_CH_CFG_I2S_DUAL_STEREO_0 = 10,
68*f80ad8b4SAndroid Build Coastguard Worker 	SKL_CH_CFG_I2S_DUAL_STEREO_1 = 11,
69*f80ad8b4SAndroid Build Coastguard Worker 	SKL_CH_CFG_7_1 = 12,
70*f80ad8b4SAndroid Build Coastguard Worker 	SKL_CH_CFG_4_CHANNEL = SKL_CH_CFG_7_1,
71*f80ad8b4SAndroid Build Coastguard Worker 	SKL_CH_CFG_INVALID
72*f80ad8b4SAndroid Build Coastguard Worker };
73*f80ad8b4SAndroid Build Coastguard Worker 
74*f80ad8b4SAndroid Build Coastguard Worker enum skl_module_type {
75*f80ad8b4SAndroid Build Coastguard Worker 	SKL_MODULE_TYPE_MIXER = 0,
76*f80ad8b4SAndroid Build Coastguard Worker 	SKL_MODULE_TYPE_COPIER,
77*f80ad8b4SAndroid Build Coastguard Worker 	SKL_MODULE_TYPE_UPDWMIX,
78*f80ad8b4SAndroid Build Coastguard Worker 	SKL_MODULE_TYPE_SRCINT,
79*f80ad8b4SAndroid Build Coastguard Worker 	SKL_MODULE_TYPE_ALGO,
80*f80ad8b4SAndroid Build Coastguard Worker 	SKL_MODULE_TYPE_BASE_OUTFMT,
81*f80ad8b4SAndroid Build Coastguard Worker 	SKL_MODULE_TYPE_KPB,
82*f80ad8b4SAndroid Build Coastguard Worker 	SKL_MODULE_TYPE_MIC_SELECT,
83*f80ad8b4SAndroid Build Coastguard Worker };
84*f80ad8b4SAndroid Build Coastguard Worker 
85*f80ad8b4SAndroid Build Coastguard Worker enum skl_core_affinity {
86*f80ad8b4SAndroid Build Coastguard Worker 	SKL_AFFINITY_CORE_0 = 0,
87*f80ad8b4SAndroid Build Coastguard Worker 	SKL_AFFINITY_CORE_1,
88*f80ad8b4SAndroid Build Coastguard Worker 	SKL_AFFINITY_CORE_MAX
89*f80ad8b4SAndroid Build Coastguard Worker };
90*f80ad8b4SAndroid Build Coastguard Worker 
91*f80ad8b4SAndroid Build Coastguard Worker enum skl_pipe_conn_type {
92*f80ad8b4SAndroid Build Coastguard Worker 	SKL_PIPE_CONN_TYPE_NONE = 0,
93*f80ad8b4SAndroid Build Coastguard Worker 	SKL_PIPE_CONN_TYPE_FE,
94*f80ad8b4SAndroid Build Coastguard Worker 	SKL_PIPE_CONN_TYPE_BE
95*f80ad8b4SAndroid Build Coastguard Worker };
96*f80ad8b4SAndroid Build Coastguard Worker 
97*f80ad8b4SAndroid Build Coastguard Worker enum skl_hw_conn_type {
98*f80ad8b4SAndroid Build Coastguard Worker 	SKL_CONN_NONE = 0,
99*f80ad8b4SAndroid Build Coastguard Worker 	SKL_CONN_SOURCE = 1,
100*f80ad8b4SAndroid Build Coastguard Worker 	SKL_CONN_SINK = 2
101*f80ad8b4SAndroid Build Coastguard Worker };
102*f80ad8b4SAndroid Build Coastguard Worker 
103*f80ad8b4SAndroid Build Coastguard Worker enum skl_dev_type {
104*f80ad8b4SAndroid Build Coastguard Worker 	SKL_DEVICE_BT = 0x0,
105*f80ad8b4SAndroid Build Coastguard Worker 	SKL_DEVICE_DMIC = 0x1,
106*f80ad8b4SAndroid Build Coastguard Worker 	SKL_DEVICE_I2S = 0x2,
107*f80ad8b4SAndroid Build Coastguard Worker 	SKL_DEVICE_SLIMBUS = 0x3,
108*f80ad8b4SAndroid Build Coastguard Worker 	SKL_DEVICE_HDALINK = 0x4,
109*f80ad8b4SAndroid Build Coastguard Worker 	SKL_DEVICE_HDAHOST = 0x5,
110*f80ad8b4SAndroid Build Coastguard Worker 	SKL_DEVICE_NONE
111*f80ad8b4SAndroid Build Coastguard Worker };
112*f80ad8b4SAndroid Build Coastguard Worker 
113*f80ad8b4SAndroid Build Coastguard Worker /**
114*f80ad8b4SAndroid Build Coastguard Worker  * enum skl_interleaving - interleaving style
115*f80ad8b4SAndroid Build Coastguard Worker  *
116*f80ad8b4SAndroid Build Coastguard Worker  * @SKL_INTERLEAVING_PER_CHANNEL: [s1_ch1...s1_chN,...,sM_ch1...sM_chN]
117*f80ad8b4SAndroid Build Coastguard Worker  * @SKL_INTERLEAVING_PER_SAMPLE: [s1_ch1...sM_ch1,...,s1_chN...sM_chN]
118*f80ad8b4SAndroid Build Coastguard Worker  */
119*f80ad8b4SAndroid Build Coastguard Worker enum skl_interleaving {
120*f80ad8b4SAndroid Build Coastguard Worker 	SKL_INTERLEAVING_PER_CHANNEL = 0,
121*f80ad8b4SAndroid Build Coastguard Worker 	SKL_INTERLEAVING_PER_SAMPLE = 1,
122*f80ad8b4SAndroid Build Coastguard Worker };
123*f80ad8b4SAndroid Build Coastguard Worker 
124*f80ad8b4SAndroid Build Coastguard Worker enum skl_sample_type {
125*f80ad8b4SAndroid Build Coastguard Worker 	SKL_SAMPLE_TYPE_INT_MSB = 0,
126*f80ad8b4SAndroid Build Coastguard Worker 	SKL_SAMPLE_TYPE_INT_LSB = 1,
127*f80ad8b4SAndroid Build Coastguard Worker 	SKL_SAMPLE_TYPE_INT_SIGNED = 2,
128*f80ad8b4SAndroid Build Coastguard Worker 	SKL_SAMPLE_TYPE_INT_UNSIGNED = 3,
129*f80ad8b4SAndroid Build Coastguard Worker 	SKL_SAMPLE_TYPE_FLOAT = 4
130*f80ad8b4SAndroid Build Coastguard Worker };
131*f80ad8b4SAndroid Build Coastguard Worker 
132*f80ad8b4SAndroid Build Coastguard Worker enum module_pin_type {
133*f80ad8b4SAndroid Build Coastguard Worker 	/* All pins of the module takes same PCM inputs or outputs
134*f80ad8b4SAndroid Build Coastguard Worker 	* e.g. mixout
135*f80ad8b4SAndroid Build Coastguard Worker 	*/
136*f80ad8b4SAndroid Build Coastguard Worker 	SKL_PIN_TYPE_HOMOGENEOUS,
137*f80ad8b4SAndroid Build Coastguard Worker 	/* All pins of the module takes different PCM inputs or outputs
138*f80ad8b4SAndroid Build Coastguard Worker 	* e.g mux
139*f80ad8b4SAndroid Build Coastguard Worker 	*/
140*f80ad8b4SAndroid Build Coastguard Worker 	SKL_PIN_TYPE_HETEROGENEOUS,
141*f80ad8b4SAndroid Build Coastguard Worker };
142*f80ad8b4SAndroid Build Coastguard Worker 
143*f80ad8b4SAndroid Build Coastguard Worker enum skl_module_param_type {
144*f80ad8b4SAndroid Build Coastguard Worker 	SKL_PARAM_DEFAULT = 0,
145*f80ad8b4SAndroid Build Coastguard Worker 	SKL_PARAM_INIT,
146*f80ad8b4SAndroid Build Coastguard Worker 	SKL_PARAM_SET,
147*f80ad8b4SAndroid Build Coastguard Worker 	SKL_PARAM_BIND
148*f80ad8b4SAndroid Build Coastguard Worker };
149*f80ad8b4SAndroid Build Coastguard Worker 
150*f80ad8b4SAndroid Build Coastguard Worker struct skl_dfw_algo_data {
151*f80ad8b4SAndroid Build Coastguard Worker 	__u32 set_params:2;
152*f80ad8b4SAndroid Build Coastguard Worker 	__u32 rsvd:30;
153*f80ad8b4SAndroid Build Coastguard Worker 	__u32 param_id;
154*f80ad8b4SAndroid Build Coastguard Worker 	__u32 max;
155*f80ad8b4SAndroid Build Coastguard Worker 	char params[];
156*f80ad8b4SAndroid Build Coastguard Worker } __packed;
157*f80ad8b4SAndroid Build Coastguard Worker 
158*f80ad8b4SAndroid Build Coastguard Worker enum skl_tkn_dir {
159*f80ad8b4SAndroid Build Coastguard Worker 	SKL_DIR_IN,
160*f80ad8b4SAndroid Build Coastguard Worker 	SKL_DIR_OUT
161*f80ad8b4SAndroid Build Coastguard Worker };
162*f80ad8b4SAndroid Build Coastguard Worker 
163*f80ad8b4SAndroid Build Coastguard Worker enum skl_tuple_type {
164*f80ad8b4SAndroid Build Coastguard Worker 	SKL_TYPE_TUPLE,
165*f80ad8b4SAndroid Build Coastguard Worker 	SKL_TYPE_DATA
166*f80ad8b4SAndroid Build Coastguard Worker };
167*f80ad8b4SAndroid Build Coastguard Worker 
168*f80ad8b4SAndroid Build Coastguard Worker #endif
169