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