122851890Sopenharmony_ci/**************************************************************************** 222851890Sopenharmony_ci **************************************************************************** 322851890Sopenharmony_ci *** 422851890Sopenharmony_ci *** This header was automatically generated from a Linux kernel header 522851890Sopenharmony_ci *** of the same name, to make information necessary for userspace to 622851890Sopenharmony_ci *** call into the kernel available to libc. It contains only constants, 722851890Sopenharmony_ci *** structures, and macros generated from the original header, and thus, 822851890Sopenharmony_ci *** contains no copyrightable information. 922851890Sopenharmony_ci *** 1022851890Sopenharmony_ci *** To edit the content of this header, modify the corresponding 1122851890Sopenharmony_ci *** source file (e.g. under external/kernel-headers/original/) then 1222851890Sopenharmony_ci *** run bionic/libc/kernel/tools/update_all.py 1322851890Sopenharmony_ci *** 1422851890Sopenharmony_ci *** Any manual change here will be lost the next time this script will 1522851890Sopenharmony_ci *** be run. You've been warned! 1622851890Sopenharmony_ci *** 1722851890Sopenharmony_ci **************************************************************************** 1822851890Sopenharmony_ci ****************************************************************************/ 1922851890Sopenharmony_ci#ifndef __HDA_TPLG_INTERFACE_H__ 2022851890Sopenharmony_ci#define __HDA_TPLG_INTERFACE_H__ 2122851890Sopenharmony_ci#include <linux/types.h> 2222851890Sopenharmony_ci#define SKL_CONTROL_TYPE_BYTE_TLV 0x100 2322851890Sopenharmony_ci#define SKL_CONTROL_TYPE_MIC_SELECT 0x102 2422851890Sopenharmony_ci#define SKL_CONTROL_TYPE_MULTI_IO_SELECT 0x103 2522851890Sopenharmony_ci#define SKL_CONTROL_TYPE_MULTI_IO_SELECT_DMIC 0x104 2622851890Sopenharmony_ci#define HDA_SST_CFG_MAX 900 2722851890Sopenharmony_ci#define MAX_IN_QUEUE 8 2822851890Sopenharmony_ci#define MAX_OUT_QUEUE 8 2922851890Sopenharmony_ci#define SKL_UUID_STR_SZ 40 3022851890Sopenharmony_cienum skl_event_types { 3122851890Sopenharmony_ci SKL_EVENT_NONE = 0, 3222851890Sopenharmony_ci SKL_MIXER_EVENT, 3322851890Sopenharmony_ci SKL_MUX_EVENT, 3422851890Sopenharmony_ci SKL_VMIXER_EVENT, 3522851890Sopenharmony_ci SKL_PGA_EVENT 3622851890Sopenharmony_ci}; 3722851890Sopenharmony_cienum skl_ch_cfg { 3822851890Sopenharmony_ci SKL_CH_CFG_MONO = 0, 3922851890Sopenharmony_ci SKL_CH_CFG_STEREO = 1, 4022851890Sopenharmony_ci SKL_CH_CFG_2_1 = 2, 4122851890Sopenharmony_ci SKL_CH_CFG_3_0 = 3, 4222851890Sopenharmony_ci SKL_CH_CFG_3_1 = 4, 4322851890Sopenharmony_ci SKL_CH_CFG_QUATRO = 5, 4422851890Sopenharmony_ci SKL_CH_CFG_4_0 = 6, 4522851890Sopenharmony_ci SKL_CH_CFG_5_0 = 7, 4622851890Sopenharmony_ci SKL_CH_CFG_5_1 = 8, 4722851890Sopenharmony_ci SKL_CH_CFG_DUAL_MONO = 9, 4822851890Sopenharmony_ci SKL_CH_CFG_I2S_DUAL_STEREO_0 = 10, 4922851890Sopenharmony_ci SKL_CH_CFG_I2S_DUAL_STEREO_1 = 11, 5022851890Sopenharmony_ci SKL_CH_CFG_4_CHANNEL = 12, 5122851890Sopenharmony_ci SKL_CH_CFG_INVALID 5222851890Sopenharmony_ci}; 5322851890Sopenharmony_cienum skl_module_type { 5422851890Sopenharmony_ci SKL_MODULE_TYPE_MIXER = 0, 5522851890Sopenharmony_ci SKL_MODULE_TYPE_COPIER, 5622851890Sopenharmony_ci SKL_MODULE_TYPE_UPDWMIX, 5722851890Sopenharmony_ci SKL_MODULE_TYPE_SRCINT, 5822851890Sopenharmony_ci SKL_MODULE_TYPE_ALGO, 5922851890Sopenharmony_ci SKL_MODULE_TYPE_BASE_OUTFMT, 6022851890Sopenharmony_ci SKL_MODULE_TYPE_KPB, 6122851890Sopenharmony_ci SKL_MODULE_TYPE_MIC_SELECT, 6222851890Sopenharmony_ci}; 6322851890Sopenharmony_cienum skl_core_affinity { 6422851890Sopenharmony_ci SKL_AFFINITY_CORE_0 = 0, 6522851890Sopenharmony_ci SKL_AFFINITY_CORE_1, 6622851890Sopenharmony_ci SKL_AFFINITY_CORE_MAX 6722851890Sopenharmony_ci}; 6822851890Sopenharmony_cienum skl_pipe_conn_type { 6922851890Sopenharmony_ci SKL_PIPE_CONN_TYPE_NONE = 0, 7022851890Sopenharmony_ci SKL_PIPE_CONN_TYPE_FE, 7122851890Sopenharmony_ci SKL_PIPE_CONN_TYPE_BE 7222851890Sopenharmony_ci}; 7322851890Sopenharmony_cienum skl_hw_conn_type { 7422851890Sopenharmony_ci SKL_CONN_NONE = 0, 7522851890Sopenharmony_ci SKL_CONN_SOURCE = 1, 7622851890Sopenharmony_ci SKL_CONN_SINK = 2 7722851890Sopenharmony_ci}; 7822851890Sopenharmony_cienum skl_dev_type { 7922851890Sopenharmony_ci SKL_DEVICE_BT = 0x0, 8022851890Sopenharmony_ci SKL_DEVICE_DMIC = 0x1, 8122851890Sopenharmony_ci SKL_DEVICE_I2S = 0x2, 8222851890Sopenharmony_ci SKL_DEVICE_SLIMBUS = 0x3, 8322851890Sopenharmony_ci SKL_DEVICE_HDALINK = 0x4, 8422851890Sopenharmony_ci SKL_DEVICE_HDAHOST = 0x5, 8522851890Sopenharmony_ci SKL_DEVICE_NONE 8622851890Sopenharmony_ci}; 8722851890Sopenharmony_cienum skl_interleaving { 8822851890Sopenharmony_ci SKL_INTERLEAVING_PER_CHANNEL = 0, 8922851890Sopenharmony_ci SKL_INTERLEAVING_PER_SAMPLE = 1, 9022851890Sopenharmony_ci}; 9122851890Sopenharmony_cienum skl_sample_type { 9222851890Sopenharmony_ci SKL_SAMPLE_TYPE_INT_MSB = 0, 9322851890Sopenharmony_ci SKL_SAMPLE_TYPE_INT_LSB = 1, 9422851890Sopenharmony_ci SKL_SAMPLE_TYPE_INT_SIGNED = 2, 9522851890Sopenharmony_ci SKL_SAMPLE_TYPE_INT_UNSIGNED = 3, 9622851890Sopenharmony_ci SKL_SAMPLE_TYPE_FLOAT = 4 9722851890Sopenharmony_ci}; 9822851890Sopenharmony_cienum module_pin_type { 9922851890Sopenharmony_ci SKL_PIN_TYPE_HOMOGENEOUS, 10022851890Sopenharmony_ci SKL_PIN_TYPE_HETEROGENEOUS, 10122851890Sopenharmony_ci}; 10222851890Sopenharmony_cienum skl_module_param_type { 10322851890Sopenharmony_ci SKL_PARAM_DEFAULT = 0, 10422851890Sopenharmony_ci SKL_PARAM_INIT, 10522851890Sopenharmony_ci SKL_PARAM_SET, 10622851890Sopenharmony_ci SKL_PARAM_BIND 10722851890Sopenharmony_ci}; 10822851890Sopenharmony_cistruct skl_dfw_algo_data { 10922851890Sopenharmony_ci __u32 set_params : 2; 11022851890Sopenharmony_ci __u32 rsvd : 30; 11122851890Sopenharmony_ci __u32 param_id; 11222851890Sopenharmony_ci __u32 max; 11322851890Sopenharmony_ci char params[0]; 11422851890Sopenharmony_ci} __packed; 11522851890Sopenharmony_cienum skl_tkn_dir { 11622851890Sopenharmony_ci SKL_DIR_IN, 11722851890Sopenharmony_ci SKL_DIR_OUT 11822851890Sopenharmony_ci}; 11922851890Sopenharmony_cienum skl_tuple_type { 12022851890Sopenharmony_ci SKL_TYPE_TUPLE, 12122851890Sopenharmony_ci SKL_TYPE_DATA 12222851890Sopenharmony_ci}; 12322851890Sopenharmony_cistruct skl_dfw_v4_module_pin { 12422851890Sopenharmony_ci __u16 module_id; 12522851890Sopenharmony_ci __u16 instance_id; 12622851890Sopenharmony_ci} __packed; 12722851890Sopenharmony_cistruct skl_dfw_v4_module_fmt { 12822851890Sopenharmony_ci __u32 channels; 12922851890Sopenharmony_ci __u32 freq; 13022851890Sopenharmony_ci __u32 bit_depth; 13122851890Sopenharmony_ci __u32 valid_bit_depth; 13222851890Sopenharmony_ci __u32 ch_cfg; 13322851890Sopenharmony_ci __u32 interleaving_style; 13422851890Sopenharmony_ci __u32 sample_type; 13522851890Sopenharmony_ci __u32 ch_map; 13622851890Sopenharmony_ci} __packed; 13722851890Sopenharmony_cistruct skl_dfw_v4_module_caps { 13822851890Sopenharmony_ci __u32 set_params : 2; 13922851890Sopenharmony_ci __u32 rsvd : 30; 14022851890Sopenharmony_ci __u32 param_id; 14122851890Sopenharmony_ci __u32 caps_size; 14222851890Sopenharmony_ci __u32 caps[HDA_SST_CFG_MAX]; 14322851890Sopenharmony_ci} __packed; 14422851890Sopenharmony_cistruct skl_dfw_v4_pipe { 14522851890Sopenharmony_ci __u8 pipe_id; 14622851890Sopenharmony_ci __u8 pipe_priority; 14722851890Sopenharmony_ci __u16 conn_type : 4; 14822851890Sopenharmony_ci __u16 rsvd : 4; 14922851890Sopenharmony_ci __u16 memory_pages : 8; 15022851890Sopenharmony_ci} __packed; 15122851890Sopenharmony_cistruct skl_dfw_v4_module { 15222851890Sopenharmony_ci char uuid[SKL_UUID_STR_SZ]; 15322851890Sopenharmony_ci __u16 module_id; 15422851890Sopenharmony_ci __u16 instance_id; 15522851890Sopenharmony_ci __u32 max_mcps; 15622851890Sopenharmony_ci __u32 mem_pages; 15722851890Sopenharmony_ci __u32 obs; 15822851890Sopenharmony_ci __u32 ibs; 15922851890Sopenharmony_ci __u32 vbus_id; 16022851890Sopenharmony_ci __u32 max_in_queue : 8; 16122851890Sopenharmony_ci __u32 max_out_queue : 8; 16222851890Sopenharmony_ci __u32 time_slot : 8; 16322851890Sopenharmony_ci __u32 core_id : 4; 16422851890Sopenharmony_ci __u32 rsvd1 : 4; 16522851890Sopenharmony_ci __u32 module_type : 8; 16622851890Sopenharmony_ci __u32 conn_type : 4; 16722851890Sopenharmony_ci __u32 dev_type : 4; 16822851890Sopenharmony_ci __u32 hw_conn_type : 4; 16922851890Sopenharmony_ci __u32 rsvd2 : 12; 17022851890Sopenharmony_ci __u32 params_fixup : 8; 17122851890Sopenharmony_ci __u32 converter : 8; 17222851890Sopenharmony_ci __u32 input_pin_type : 1; 17322851890Sopenharmony_ci __u32 output_pin_type : 1; 17422851890Sopenharmony_ci __u32 is_dynamic_in_pin : 1; 17522851890Sopenharmony_ci __u32 is_dynamic_out_pin : 1; 17622851890Sopenharmony_ci __u32 is_loadable : 1; 17722851890Sopenharmony_ci __u32 rsvd3 : 11; 17822851890Sopenharmony_ci struct skl_dfw_v4_pipe pipe; 17922851890Sopenharmony_ci struct skl_dfw_v4_module_fmt in_fmt[MAX_IN_QUEUE]; 18022851890Sopenharmony_ci struct skl_dfw_v4_module_fmt out_fmt[MAX_OUT_QUEUE]; 18122851890Sopenharmony_ci struct skl_dfw_v4_module_pin in_pin[MAX_IN_QUEUE]; 18222851890Sopenharmony_ci struct skl_dfw_v4_module_pin out_pin[MAX_OUT_QUEUE]; 18322851890Sopenharmony_ci struct skl_dfw_v4_module_caps caps; 18422851890Sopenharmony_ci} __packed; 18522851890Sopenharmony_ci#endif 186