diff --git a/asoc/msm-dai-q6-v2.c b/asoc/msm-dai-q6-v2.c index 0c1a5e88430d..353c1b9772cb 100755 --- a/asoc/msm-dai-q6-v2.c +++ b/asoc/msm-dai-q6-v2.c @@ -204,6 +204,74 @@ enum { IDX_SENARY_TDM_TX_5, IDX_SENARY_TDM_TX_6, IDX_SENARY_TDM_TX_7, + IDX_SEPTENARY_TDM_RX_0, + IDX_SEPTENARY_TDM_RX_1, + IDX_SEPTENARY_TDM_RX_2, + IDX_SEPTENARY_TDM_RX_3, + IDX_SEPTENARY_TDM_RX_4, + IDX_SEPTENARY_TDM_RX_5, + IDX_SEPTENARY_TDM_RX_6, + IDX_SEPTENARY_TDM_RX_7, + IDX_SEPTENARY_TDM_TX_0, + IDX_SEPTENARY_TDM_TX_1, + IDX_SEPTENARY_TDM_TX_2, + IDX_SEPTENARY_TDM_TX_3, + IDX_SEPTENARY_TDM_TX_4, + IDX_SEPTENARY_TDM_TX_5, + IDX_SEPTENARY_TDM_TX_6, + IDX_SEPTENARY_TDM_TX_7, + + IDX_HSIF0_TDM_RX_0, + IDX_HSIF0_TDM_RX_1, + IDX_HSIF0_TDM_RX_2, + IDX_HSIF0_TDM_RX_3, + IDX_HSIF0_TDM_RX_4, + IDX_HSIF0_TDM_RX_5, + IDX_HSIF0_TDM_RX_6, + IDX_HSIF0_TDM_RX_7, + IDX_HSIF0_TDM_TX_0, + IDX_HSIF0_TDM_TX_1, + IDX_HSIF0_TDM_TX_2, + IDX_HSIF0_TDM_TX_3, + IDX_HSIF0_TDM_TX_4, + IDX_HSIF0_TDM_TX_5, + IDX_HSIF0_TDM_TX_6, + IDX_HSIF0_TDM_TX_7, + + IDX_HSIF1_TDM_RX_0, + IDX_HSIF1_TDM_RX_1, + IDX_HSIF1_TDM_RX_2, + IDX_HSIF1_TDM_RX_3, + IDX_HSIF1_TDM_RX_4, + IDX_HSIF1_TDM_RX_5, + IDX_HSIF1_TDM_RX_6, + IDX_HSIF1_TDM_RX_7, + IDX_HSIF1_TDM_TX_0, + IDX_HSIF1_TDM_TX_1, + IDX_HSIF1_TDM_TX_2, + IDX_HSIF1_TDM_TX_3, + IDX_HSIF1_TDM_TX_4, + IDX_HSIF1_TDM_TX_5, + IDX_HSIF1_TDM_TX_6, + IDX_HSIF1_TDM_TX_7, + + IDX_HSIF2_TDM_RX_0, + IDX_HSIF2_TDM_RX_1, + IDX_HSIF2_TDM_RX_2, + IDX_HSIF2_TDM_RX_3, + IDX_HSIF2_TDM_RX_4, + IDX_HSIF2_TDM_RX_5, + IDX_HSIF2_TDM_RX_6, + IDX_HSIF2_TDM_RX_7, + IDX_HSIF2_TDM_TX_0, + IDX_HSIF2_TDM_TX_1, + IDX_HSIF2_TDM_TX_2, + IDX_HSIF2_TDM_TX_3, + IDX_HSIF2_TDM_TX_4, + IDX_HSIF2_TDM_TX_5, + IDX_HSIF2_TDM_TX_6, + IDX_HSIF2_TDM_TX_7, + IDX_TDM_MAX, }; @@ -220,6 +288,14 @@ enum { IDX_GROUP_QUINARY_TDM_TX, IDX_GROUP_SENARY_TDM_RX, IDX_GROUP_SENARY_TDM_TX, + IDX_GROUP_SEPTENARY_TDM_RX, + IDX_GROUP_SEPTENARY_TDM_TX, + IDX_GROUP_HSIF0_TDM_RX, + IDX_GROUP_HSIF0_TDM_TX, + IDX_GROUP_HSIF1_TDM_RX, + IDX_GROUP_HSIF1_TDM_TX, + IDX_GROUP_HSIF2_TDM_RX, + IDX_GROUP_HSIF2_TDM_TX, IDX_GROUP_TDM_MAX, }; @@ -468,6 +544,22 @@ static int msm_dai_q6_get_tdm_clk_ref(u16 id) case IDX_GROUP_SENARY_TDM_TX: return atomic_read(&tdm_group_ref[IDX_GROUP_SENARY_TDM_RX]) + atomic_read(&tdm_group_ref[IDX_GROUP_SENARY_TDM_TX]); + case IDX_GROUP_SEPTENARY_TDM_RX: + case IDX_GROUP_SEPTENARY_TDM_TX: + return atomic_read(&tdm_group_ref[IDX_GROUP_SEPTENARY_TDM_RX]) + + atomic_read(&tdm_group_ref[IDX_GROUP_SEPTENARY_TDM_TX]); + case IDX_GROUP_HSIF0_TDM_RX: + case IDX_GROUP_HSIF0_TDM_TX: + return atomic_read(&tdm_group_ref[IDX_GROUP_HSIF0_TDM_RX]) + + atomic_read(&tdm_group_ref[IDX_GROUP_HSIF0_TDM_TX]); + case IDX_GROUP_HSIF1_TDM_RX: + case IDX_GROUP_HSIF1_TDM_TX: + return atomic_read(&tdm_group_ref[IDX_GROUP_HSIF1_TDM_RX]) + + atomic_read(&tdm_group_ref[IDX_GROUP_HSIF1_TDM_TX]); + case IDX_GROUP_HSIF2_TDM_RX: + case IDX_GROUP_HSIF2_TDM_TX: + return atomic_read(&tdm_group_ref[IDX_GROUP_HSIF2_TDM_RX]) + + atomic_read(&tdm_group_ref[IDX_GROUP_HSIF2_TDM_TX]); default: return -EINVAL; } } @@ -595,6 +687,86 @@ int msm_dai_q6_get_group_idx(u16 id) case AFE_PORT_ID_SENARY_TDM_TX_6: case AFE_PORT_ID_SENARY_TDM_TX_7: return IDX_GROUP_SENARY_TDM_TX; + case AFE_GROUP_DEVICE_ID_SEPTENARY_TDM_RX: + case AFE_PORT_ID_SEPTENARY_TDM_RX: + case AFE_PORT_ID_SEPTENARY_TDM_RX_1: + case AFE_PORT_ID_SEPTENARY_TDM_RX_2: + case AFE_PORT_ID_SEPTENARY_TDM_RX_3: + case AFE_PORT_ID_SEPTENARY_TDM_RX_4: + case AFE_PORT_ID_SEPTENARY_TDM_RX_5: + case AFE_PORT_ID_SEPTENARY_TDM_RX_6: + case AFE_PORT_ID_SEPTENARY_TDM_RX_7: + return IDX_GROUP_SEPTENARY_TDM_RX; + case AFE_GROUP_DEVICE_ID_SEPTENARY_TDM_TX: + case AFE_PORT_ID_SEPTENARY_TDM_TX: + case AFE_PORT_ID_SEPTENARY_TDM_TX_1: + case AFE_PORT_ID_SEPTENARY_TDM_TX_2: + case AFE_PORT_ID_SEPTENARY_TDM_TX_3: + case AFE_PORT_ID_SEPTENARY_TDM_TX_4: + case AFE_PORT_ID_SEPTENARY_TDM_TX_5: + case AFE_PORT_ID_SEPTENARY_TDM_TX_6: + case AFE_PORT_ID_SEPTENARY_TDM_TX_7: + return IDX_GROUP_SEPTENARY_TDM_TX; + case AFE_GROUP_DEVICE_ID_HSIF0_TDM_RX: + case AFE_PORT_ID_HSIF0_TDM_RX: + case AFE_PORT_ID_HSIF0_TDM_RX_1: + case AFE_PORT_ID_HSIF0_TDM_RX_2: + case AFE_PORT_ID_HSIF0_TDM_RX_3: + case AFE_PORT_ID_HSIF0_TDM_RX_4: + case AFE_PORT_ID_HSIF0_TDM_RX_5: + case AFE_PORT_ID_HSIF0_TDM_RX_6: + case AFE_PORT_ID_HSIF0_TDM_RX_7: + return IDX_GROUP_HSIF0_TDM_RX; + case AFE_GROUP_DEVICE_ID_HSIF0_TDM_TX: + case AFE_PORT_ID_HSIF0_TDM_TX: + case AFE_PORT_ID_HSIF0_TDM_TX_1: + case AFE_PORT_ID_HSIF0_TDM_TX_2: + case AFE_PORT_ID_HSIF0_TDM_TX_3: + case AFE_PORT_ID_HSIF0_TDM_TX_4: + case AFE_PORT_ID_HSIF0_TDM_TX_5: + case AFE_PORT_ID_HSIF0_TDM_TX_6: + case AFE_PORT_ID_HSIF0_TDM_TX_7: + return IDX_GROUP_HSIF0_TDM_TX; + case AFE_GROUP_DEVICE_ID_HSIF1_TDM_RX: + case AFE_PORT_ID_HSIF1_TDM_RX: + case AFE_PORT_ID_HSIF1_TDM_RX_1: + case AFE_PORT_ID_HSIF1_TDM_RX_2: + case AFE_PORT_ID_HSIF1_TDM_RX_3: + case AFE_PORT_ID_HSIF1_TDM_RX_4: + case AFE_PORT_ID_HSIF1_TDM_RX_5: + case AFE_PORT_ID_HSIF1_TDM_RX_6: + case AFE_PORT_ID_HSIF1_TDM_RX_7: + return IDX_GROUP_HSIF1_TDM_RX; + case AFE_GROUP_DEVICE_ID_HSIF1_TDM_TX: + case AFE_PORT_ID_HSIF1_TDM_TX: + case AFE_PORT_ID_HSIF1_TDM_TX_1: + case AFE_PORT_ID_HSIF1_TDM_TX_2: + case AFE_PORT_ID_HSIF1_TDM_TX_3: + case AFE_PORT_ID_HSIF1_TDM_TX_4: + case AFE_PORT_ID_HSIF1_TDM_TX_5: + case AFE_PORT_ID_HSIF1_TDM_TX_6: + case AFE_PORT_ID_HSIF1_TDM_TX_7: + return IDX_GROUP_HSIF1_TDM_TX; + case AFE_GROUP_DEVICE_ID_HSIF2_TDM_RX: + case AFE_PORT_ID_HSIF2_TDM_RX: + case AFE_PORT_ID_HSIF2_TDM_RX_1: + case AFE_PORT_ID_HSIF2_TDM_RX_2: + case AFE_PORT_ID_HSIF2_TDM_RX_3: + case AFE_PORT_ID_HSIF2_TDM_RX_4: + case AFE_PORT_ID_HSIF2_TDM_RX_5: + case AFE_PORT_ID_HSIF2_TDM_RX_6: + case AFE_PORT_ID_HSIF2_TDM_RX_7: + return IDX_GROUP_HSIF2_TDM_RX; + case AFE_GROUP_DEVICE_ID_HSIF2_TDM_TX: + case AFE_PORT_ID_HSIF2_TDM_TX: + case AFE_PORT_ID_HSIF2_TDM_TX_1: + case AFE_PORT_ID_HSIF2_TDM_TX_2: + case AFE_PORT_ID_HSIF2_TDM_TX_3: + case AFE_PORT_ID_HSIF2_TDM_TX_4: + case AFE_PORT_ID_HSIF2_TDM_TX_5: + case AFE_PORT_ID_HSIF2_TDM_TX_6: + case AFE_PORT_ID_HSIF2_TDM_TX_7: + return IDX_GROUP_HSIF2_TDM_TX; default: return -EINVAL; } } @@ -794,6 +966,134 @@ int msm_dai_q6_get_port_idx(u16 id) return IDX_SENARY_TDM_RX_7; case AFE_PORT_ID_SENARY_TDM_TX_7: return IDX_SENARY_TDM_TX_7; + case AFE_PORT_ID_SEPTENARY_TDM_RX: + return IDX_SEPTENARY_TDM_RX_0; + case AFE_PORT_ID_SEPTENARY_TDM_TX: + return IDX_SEPTENARY_TDM_TX_0; + case AFE_PORT_ID_SEPTENARY_TDM_RX_1: + return IDX_SEPTENARY_TDM_RX_1; + case AFE_PORT_ID_SEPTENARY_TDM_TX_1: + return IDX_SEPTENARY_TDM_TX_1; + case AFE_PORT_ID_SEPTENARY_TDM_RX_2: + return IDX_SEPTENARY_TDM_RX_2; + case AFE_PORT_ID_SEPTENARY_TDM_TX_2: + return IDX_SEPTENARY_TDM_TX_2; + case AFE_PORT_ID_SEPTENARY_TDM_RX_3: + return IDX_SEPTENARY_TDM_RX_3; + case AFE_PORT_ID_SEPTENARY_TDM_TX_3: + return IDX_SEPTENARY_TDM_TX_3; + case AFE_PORT_ID_SEPTENARY_TDM_RX_4: + return IDX_SEPTENARY_TDM_RX_4; + case AFE_PORT_ID_SEPTENARY_TDM_TX_4: + return IDX_SEPTENARY_TDM_TX_4; + case AFE_PORT_ID_SEPTENARY_TDM_RX_5: + return IDX_SEPTENARY_TDM_RX_5; + case AFE_PORT_ID_SEPTENARY_TDM_TX_5: + return IDX_SEPTENARY_TDM_TX_5; + case AFE_PORT_ID_SEPTENARY_TDM_RX_6: + return IDX_SEPTENARY_TDM_RX_6; + case AFE_PORT_ID_SEPTENARY_TDM_TX_6: + return IDX_SEPTENARY_TDM_TX_6; + case AFE_PORT_ID_SEPTENARY_TDM_RX_7: + return IDX_SEPTENARY_TDM_RX_7; + case AFE_PORT_ID_SEPTENARY_TDM_TX_7: + return IDX_SEPTENARY_TDM_TX_7; + case AFE_PORT_ID_HSIF0_TDM_RX: + return IDX_HSIF0_TDM_RX_0; + case AFE_PORT_ID_HSIF0_TDM_TX: + return IDX_HSIF0_TDM_TX_0; + case AFE_PORT_ID_HSIF0_TDM_RX_1: + return IDX_HSIF0_TDM_RX_1; + case AFE_PORT_ID_HSIF0_TDM_TX_1: + return IDX_HSIF0_TDM_TX_1; + case AFE_PORT_ID_HSIF0_TDM_RX_2: + return IDX_HSIF0_TDM_RX_2; + case AFE_PORT_ID_HSIF0_TDM_TX_2: + return IDX_HSIF0_TDM_TX_2; + case AFE_PORT_ID_HSIF0_TDM_RX_3: + return IDX_HSIF0_TDM_RX_3; + case AFE_PORT_ID_HSIF0_TDM_TX_3: + return IDX_HSIF0_TDM_TX_3; + case AFE_PORT_ID_HSIF0_TDM_RX_4: + return IDX_HSIF0_TDM_RX_4; + case AFE_PORT_ID_HSIF0_TDM_TX_4: + return IDX_HSIF0_TDM_TX_4; + case AFE_PORT_ID_HSIF0_TDM_RX_5: + return IDX_HSIF0_TDM_RX_5; + case AFE_PORT_ID_HSIF0_TDM_TX_5: + return IDX_HSIF0_TDM_TX_5; + case AFE_PORT_ID_HSIF0_TDM_RX_6: + return IDX_HSIF0_TDM_RX_6; + case AFE_PORT_ID_HSIF0_TDM_TX_6: + return IDX_HSIF0_TDM_TX_6; + case AFE_PORT_ID_HSIF0_TDM_RX_7: + return IDX_HSIF0_TDM_RX_7; + case AFE_PORT_ID_HSIF0_TDM_TX_7: + return IDX_HSIF0_TDM_TX_7; + case AFE_PORT_ID_HSIF1_TDM_RX: + return IDX_HSIF1_TDM_RX_0; + case AFE_PORT_ID_HSIF1_TDM_TX: + return IDX_HSIF1_TDM_TX_0; + case AFE_PORT_ID_HSIF1_TDM_RX_1: + return IDX_HSIF1_TDM_RX_1; + case AFE_PORT_ID_HSIF1_TDM_TX_1: + return IDX_HSIF1_TDM_TX_1; + case AFE_PORT_ID_HSIF1_TDM_RX_2: + return IDX_HSIF1_TDM_RX_2; + case AFE_PORT_ID_HSIF1_TDM_TX_2: + return IDX_HSIF1_TDM_TX_2; + case AFE_PORT_ID_HSIF1_TDM_RX_3: + return IDX_HSIF1_TDM_RX_3; + case AFE_PORT_ID_HSIF1_TDM_TX_3: + return IDX_HSIF1_TDM_TX_3; + case AFE_PORT_ID_HSIF1_TDM_RX_4: + return IDX_HSIF1_TDM_RX_4; + case AFE_PORT_ID_HSIF1_TDM_TX_4: + return IDX_HSIF1_TDM_TX_4; + case AFE_PORT_ID_HSIF1_TDM_RX_5: + return IDX_HSIF1_TDM_RX_5; + case AFE_PORT_ID_HSIF1_TDM_TX_5: + return IDX_HSIF1_TDM_TX_5; + case AFE_PORT_ID_HSIF1_TDM_RX_6: + return IDX_HSIF1_TDM_RX_6; + case AFE_PORT_ID_HSIF1_TDM_TX_6: + return IDX_HSIF1_TDM_TX_6; + case AFE_PORT_ID_HSIF1_TDM_RX_7: + return IDX_HSIF1_TDM_RX_7; + case AFE_PORT_ID_HSIF1_TDM_TX_7: + return IDX_HSIF1_TDM_TX_7; + case AFE_PORT_ID_HSIF2_TDM_RX: + return IDX_HSIF2_TDM_RX_0; + case AFE_PORT_ID_HSIF2_TDM_TX: + return IDX_HSIF2_TDM_TX_0; + case AFE_PORT_ID_HSIF2_TDM_RX_1: + return IDX_HSIF2_TDM_RX_1; + case AFE_PORT_ID_HSIF2_TDM_TX_1: + return IDX_HSIF2_TDM_TX_1; + case AFE_PORT_ID_HSIF2_TDM_RX_2: + return IDX_HSIF2_TDM_RX_2; + case AFE_PORT_ID_HSIF2_TDM_TX_2: + return IDX_HSIF2_TDM_TX_2; + case AFE_PORT_ID_HSIF2_TDM_RX_3: + return IDX_HSIF2_TDM_RX_3; + case AFE_PORT_ID_HSIF2_TDM_TX_3: + return IDX_HSIF2_TDM_TX_3; + case AFE_PORT_ID_HSIF2_TDM_RX_4: + return IDX_HSIF2_TDM_RX_4; + case AFE_PORT_ID_HSIF2_TDM_TX_4: + return IDX_HSIF2_TDM_TX_4; + case AFE_PORT_ID_HSIF2_TDM_RX_5: + return IDX_HSIF2_TDM_RX_5; + case AFE_PORT_ID_HSIF2_TDM_TX_5: + return IDX_HSIF2_TDM_TX_5; + case AFE_PORT_ID_HSIF2_TDM_RX_6: + return IDX_HSIF2_TDM_RX_6; + case AFE_PORT_ID_HSIF2_TDM_TX_6: + return IDX_HSIF2_TDM_TX_6; + case AFE_PORT_ID_HSIF2_TDM_RX_7: + return IDX_HSIF2_TDM_RX_7; + case AFE_PORT_ID_HSIF2_TDM_TX_7: + return IDX_HSIF2_TDM_TX_7; default: return -EINVAL; } } @@ -8011,6 +8311,34 @@ static int msm_dai_q6_tdm_set_clk_param(u32 group_id, else clk_set->clk_id = Q6AFE_LPASS_CLK_ID_SEN_TDM_EBIT; break; + case AFE_GROUP_DEVICE_ID_SEPTENARY_TDM_RX: + case AFE_GROUP_DEVICE_ID_SEPTENARY_TDM_TX: + if (mode) + clk_set->clk_id = Q6AFE_LPASS_CLK_ID_SEP_TDM_IBIT; + else + clk_set->clk_id = Q6AFE_LPASS_CLK_ID_SEP_TDM_EBIT; + break; + case AFE_GROUP_DEVICE_ID_HSIF0_TDM_RX: + case AFE_GROUP_DEVICE_ID_HSIF0_TDM_TX: + if (mode) + clk_set->clk_id = Q6AFE_LPASS_CLK_ID_HSIF0_TDM_IBIT; + else + clk_set->clk_id = Q6AFE_LPASS_CLK_ID_HSIF0_TDM_EBIT; + break; + case AFE_GROUP_DEVICE_ID_HSIF1_TDM_RX: + case AFE_GROUP_DEVICE_ID_HSIF1_TDM_TX: + if (mode) + clk_set->clk_id = Q6AFE_LPASS_CLK_ID_HSIF1_TDM_IBIT; + else + clk_set->clk_id = Q6AFE_LPASS_CLK_ID_HSIF1_TDM_EBIT; + break; + case AFE_GROUP_DEVICE_ID_HSIF2_TDM_RX: + case AFE_GROUP_DEVICE_ID_HSIF2_TDM_TX: + if (mode) + clk_set->clk_id = Q6AFE_LPASS_CLK_ID_HSIF2_TDM_IBIT; + else + clk_set->clk_id = Q6AFE_LPASS_CLK_ID_HSIF2_TDM_EBIT; + break; default: return -EINVAL; } @@ -8581,6 +8909,198 @@ static const struct snd_kcontrol_new tdm_config_controls_data_format[] = { SOC_ENUM_EXT("SEN_TDM_TX_7 Data Format", tdm_config_enum[0], msm_dai_q6_tdm_data_format_get, msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("SEP_TDM_RX_0 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("SEP_TDM_RX_1 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("SEP_TDM_RX_2 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("SEP_TDM_RX_3 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("SEP_TDM_RX_4 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("SEP_TDM_RX_5 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("SEP_TDM_RX_6 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("SEP_TDM_RX_7 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("SEP_TDM_TX_0 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("SEP_TDM_TX_1 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("SEP_TDM_TX_2 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("SEP_TDM_TX_3 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("SEP_TDM_TX_4 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("SEP_TDM_TX_5 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("SEP_TDM_TX_6 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("SEP_TDM_TX_7 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF0_TDM_RX_0 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF0_TDM_RX_1 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF0_TDM_RX_2 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF0_TDM_RX_3 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF0_TDM_RX_4 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF0_TDM_RX_5 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF0_TDM_RX_6 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF0_TDM_RX_7 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF0_TDM_TX_0 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF0_TDM_TX_1 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF0_TDM_TX_2 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF0_TDM_TX_3 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF0_TDM_TX_4 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF0_TDM_TX_5 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF0_TDM_TX_6 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF0_TDM_TX_7 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF1_TDM_RX_0 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF1_TDM_RX_1 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF1_TDM_RX_2 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF1_TDM_RX_3 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF1_TDM_RX_4 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF1_TDM_RX_5 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF1_TDM_RX_6 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF1_TDM_RX_7 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF1_TDM_TX_0 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF1_TDM_TX_1 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF1_TDM_TX_2 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF1_TDM_TX_3 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF1_TDM_TX_4 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF1_TDM_TX_5 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF1_TDM_TX_6 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF1_TDM_TX_7 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF2_TDM_RX_0 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF2_TDM_RX_1 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF2_TDM_RX_2 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF2_TDM_RX_3 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF2_TDM_RX_4 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF2_TDM_RX_5 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF2_TDM_RX_6 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF2_TDM_RX_7 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF2_TDM_TX_0 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF2_TDM_TX_1 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF2_TDM_TX_2 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF2_TDM_TX_3 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF2_TDM_TX_4 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF2_TDM_TX_5 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF2_TDM_TX_6 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), + SOC_ENUM_EXT("HSIF2_TDM_TX_7 Data Format", tdm_config_enum[0], + msm_dai_q6_tdm_data_format_get, + msm_dai_q6_tdm_data_format_put), }; static const struct snd_kcontrol_new tdm_config_controls_header_type[] = { @@ -8872,6 +9392,198 @@ static const struct snd_kcontrol_new tdm_config_controls_header_type[] = { SOC_ENUM_EXT("SEN_TDM_TX_7 Header Type", tdm_config_enum[1], msm_dai_q6_tdm_header_type_get, msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("SEP_TDM_RX_0 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("SEP_TDM_RX_1 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("SEP_TDM_RX_2 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("SEP_TDM_RX_3 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("SEP_TDM_RX_4 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("SEP_TDM_RX_5 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("SEP_TDM_RX_6 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("SEP_TDM_RX_7 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("SEP_TDM_TX_0 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("SEP_TDM_TX_1 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("SEP_TDM_TX_2 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("SEP_TDM_TX_3 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("SEP_TDM_TX_4 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("SEP_TDM_TX_5 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("SEP_TDM_TX_6 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("SEP_TDM_TX_7 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF0_TDM_RX_0 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF0_TDM_RX_1 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF0_TDM_RX_2 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF0_TDM_RX_3 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF0_TDM_RX_4 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF0_TDM_RX_5 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF0_TDM_RX_6 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF0_TDM_RX_7 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF0_TDM_TX_0 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF0_TDM_TX_1 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF0_TDM_TX_2 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF0_TDM_TX_3 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF0_TDM_TX_4 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF0_TDM_TX_5 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF0_TDM_TX_6 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF0_TDM_TX_7 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF1_TDM_RX_0 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF1_TDM_RX_1 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF1_TDM_RX_2 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF1_TDM_RX_3 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF1_TDM_RX_4 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF1_TDM_RX_5 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF1_TDM_RX_6 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF1_TDM_RX_7 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF1_TDM_TX_0 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF1_TDM_TX_1 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF1_TDM_TX_2 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF1_TDM_TX_3 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF1_TDM_TX_4 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF1_TDM_TX_5 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF1_TDM_TX_6 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF1_TDM_TX_7 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF2_TDM_RX_0 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF2_TDM_RX_1 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF2_TDM_RX_2 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF2_TDM_RX_3 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF2_TDM_RX_4 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF2_TDM_RX_5 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF2_TDM_RX_6 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF2_TDM_RX_7 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF2_TDM_TX_0 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF2_TDM_TX_1 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF2_TDM_TX_2 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF2_TDM_TX_3 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF2_TDM_TX_4 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF2_TDM_TX_5 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF2_TDM_TX_6 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), + SOC_ENUM_EXT("HSIF2_TDM_TX_7 Header Type", tdm_config_enum[1], + msm_dai_q6_tdm_header_type_get, + msm_dai_q6_tdm_header_type_put), }; static const struct snd_kcontrol_new tdm_config_controls_header[] = { @@ -9259,6 +9971,262 @@ static const struct snd_kcontrol_new tdm_config_controls_header[] = { SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, msm_dai_q6_tdm_header_get, msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("SEP_TDM_RX_0 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("SEP_TDM_RX_1 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("SEP_TDM_RX_2 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("SEP_TDM_RX_3 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("SEP_TDM_RX_4 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("SEP_TDM_RX_5 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("SEP_TDM_RX_6 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("SEP_TDM_RX_7 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("SEP_TDM_TX_0 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("SEP_TDM_TX_1 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("SEP_TDM_TX_2 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("SEP_TDM_TX_3 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("SEP_TDM_TX_4 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("SEP_TDM_TX_5 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("SEP_TDM_TX_6 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("SEP_TDM_TX_7 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF0_TDM_RX_0 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF0_TDM_RX_1 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF0_TDM_RX_2 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF0_TDM_RX_3 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF0_TDM_RX_4 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF0_TDM_RX_5 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF0_TDM_RX_6 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF0_TDM_RX_7 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF0_TDM_TX_0 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF0_TDM_TX_1 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF0_TDM_TX_2 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF0_TDM_TX_3 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF0_TDM_TX_4 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF0_TDM_TX_5 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF0_TDM_TX_6 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF0_TDM_TX_7 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF1_TDM_RX_0 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF1_TDM_RX_1 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF1_TDM_RX_2 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF1_TDM_RX_3 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF1_TDM_RX_4 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF1_TDM_RX_5 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF1_TDM_RX_6 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF1_TDM_RX_7 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF1_TDM_TX_0 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF1_TDM_TX_1 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF1_TDM_TX_2 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF1_TDM_TX_3 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF1_TDM_TX_4 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF1_TDM_TX_5 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF1_TDM_TX_6 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF1_TDM_TX_7 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF2_TDM_RX_0 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF2_TDM_RX_1 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF2_TDM_RX_2 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF2_TDM_RX_3 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF2_TDM_RX_4 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF2_TDM_RX_5 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF2_TDM_RX_6 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF2_TDM_RX_7 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF2_TDM_TX_0 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF2_TDM_TX_1 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF2_TDM_TX_2 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF2_TDM_TX_3 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF2_TDM_TX_4 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF2_TDM_TX_5 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF2_TDM_TX_6 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), + SOC_SINGLE_MULTI_EXT("HSIF2_TDM_TX_7 Header", + SND_SOC_NOPM, 0, 0xFFFFFFFF, 0, 8, + msm_dai_q6_tdm_header_get, + msm_dai_q6_tdm_header_put), }; static int msm_dai_q6_tdm_set_clk( @@ -9615,6 +10583,38 @@ static int msm_dai_q6_tdm_set_tdm_slot(struct snd_soc_dai *dai, case AFE_PORT_ID_SENARY_TDM_RX_5: case AFE_PORT_ID_SENARY_TDM_RX_6: case AFE_PORT_ID_SENARY_TDM_RX_7: + case AFE_PORT_ID_SEPTENARY_TDM_RX: + case AFE_PORT_ID_SEPTENARY_TDM_RX_1: + case AFE_PORT_ID_SEPTENARY_TDM_RX_2: + case AFE_PORT_ID_SEPTENARY_TDM_RX_3: + case AFE_PORT_ID_SEPTENARY_TDM_RX_4: + case AFE_PORT_ID_SEPTENARY_TDM_RX_5: + case AFE_PORT_ID_SEPTENARY_TDM_RX_6: + case AFE_PORT_ID_SEPTENARY_TDM_RX_7: + case AFE_PORT_ID_HSIF0_TDM_RX: + case AFE_PORT_ID_HSIF0_TDM_RX_1: + case AFE_PORT_ID_HSIF0_TDM_RX_2: + case AFE_PORT_ID_HSIF0_TDM_RX_3: + case AFE_PORT_ID_HSIF0_TDM_RX_4: + case AFE_PORT_ID_HSIF0_TDM_RX_5: + case AFE_PORT_ID_HSIF0_TDM_RX_6: + case AFE_PORT_ID_HSIF0_TDM_RX_7: + case AFE_PORT_ID_HSIF1_TDM_RX: + case AFE_PORT_ID_HSIF1_TDM_RX_1: + case AFE_PORT_ID_HSIF1_TDM_RX_2: + case AFE_PORT_ID_HSIF1_TDM_RX_3: + case AFE_PORT_ID_HSIF1_TDM_RX_4: + case AFE_PORT_ID_HSIF1_TDM_RX_5: + case AFE_PORT_ID_HSIF1_TDM_RX_6: + case AFE_PORT_ID_HSIF1_TDM_RX_7: + case AFE_PORT_ID_HSIF2_TDM_RX: + case AFE_PORT_ID_HSIF2_TDM_RX_1: + case AFE_PORT_ID_HSIF2_TDM_RX_2: + case AFE_PORT_ID_HSIF2_TDM_RX_3: + case AFE_PORT_ID_HSIF2_TDM_RX_4: + case AFE_PORT_ID_HSIF2_TDM_RX_5: + case AFE_PORT_ID_HSIF2_TDM_RX_6: + case AFE_PORT_ID_HSIF2_TDM_RX_7: tdm_group->nslots_per_frame = slots; tdm_group->slot_width = slot_width; tdm_group->slot_mask = rx_mask & cap_mask; @@ -9667,6 +10667,38 @@ static int msm_dai_q6_tdm_set_tdm_slot(struct snd_soc_dai *dai, case AFE_PORT_ID_SENARY_TDM_TX_5: case AFE_PORT_ID_SENARY_TDM_TX_6: case AFE_PORT_ID_SENARY_TDM_TX_7: + case AFE_PORT_ID_SEPTENARY_TDM_TX: + case AFE_PORT_ID_SEPTENARY_TDM_TX_1: + case AFE_PORT_ID_SEPTENARY_TDM_TX_2: + case AFE_PORT_ID_SEPTENARY_TDM_TX_3: + case AFE_PORT_ID_SEPTENARY_TDM_TX_4: + case AFE_PORT_ID_SEPTENARY_TDM_TX_5: + case AFE_PORT_ID_SEPTENARY_TDM_TX_6: + case AFE_PORT_ID_SEPTENARY_TDM_TX_7: + case AFE_PORT_ID_HSIF0_TDM_TX: + case AFE_PORT_ID_HSIF0_TDM_TX_1: + case AFE_PORT_ID_HSIF0_TDM_TX_2: + case AFE_PORT_ID_HSIF0_TDM_TX_3: + case AFE_PORT_ID_HSIF0_TDM_TX_4: + case AFE_PORT_ID_HSIF0_TDM_TX_5: + case AFE_PORT_ID_HSIF0_TDM_TX_6: + case AFE_PORT_ID_HSIF0_TDM_TX_7: + case AFE_PORT_ID_HSIF1_TDM_TX: + case AFE_PORT_ID_HSIF1_TDM_TX_1: + case AFE_PORT_ID_HSIF1_TDM_TX_2: + case AFE_PORT_ID_HSIF1_TDM_TX_3: + case AFE_PORT_ID_HSIF1_TDM_TX_4: + case AFE_PORT_ID_HSIF1_TDM_TX_5: + case AFE_PORT_ID_HSIF1_TDM_TX_6: + case AFE_PORT_ID_HSIF1_TDM_TX_7: + case AFE_PORT_ID_HSIF2_TDM_TX: + case AFE_PORT_ID_HSIF2_TDM_TX_1: + case AFE_PORT_ID_HSIF2_TDM_TX_2: + case AFE_PORT_ID_HSIF2_TDM_TX_3: + case AFE_PORT_ID_HSIF2_TDM_TX_4: + case AFE_PORT_ID_HSIF2_TDM_TX_5: + case AFE_PORT_ID_HSIF2_TDM_TX_6: + case AFE_PORT_ID_HSIF2_TDM_TX_7: tdm_group->nslots_per_frame = slots; tdm_group->slot_width = slot_width; tdm_group->slot_mask = tx_mask & cap_mask; @@ -9687,7 +10719,7 @@ static int msm_dai_q6_tdm_set_sysclk(struct snd_soc_dai *dai, dev_get_drvdata(dai->dev); if ((dai->id >= AFE_PORT_ID_PRIMARY_TDM_RX) && - (dai->id <= AFE_PORT_ID_SENARY_TDM_TX_7)) { + (dai->id <= AFE_PORT_ID_HSIF2_TDM_TX_7)) { dai_data->clk_set.clk_freq_in_hz = freq; } else { dev_err(dai->dev, "%s: invalid dai id 0x%x\n", @@ -9764,6 +10796,38 @@ static int msm_dai_q6_tdm_set_channel_map(struct snd_soc_dai *dai, case AFE_PORT_ID_SENARY_TDM_RX_5: case AFE_PORT_ID_SENARY_TDM_RX_6: case AFE_PORT_ID_SENARY_TDM_RX_7: + case AFE_PORT_ID_SEPTENARY_TDM_RX: + case AFE_PORT_ID_SEPTENARY_TDM_RX_1: + case AFE_PORT_ID_SEPTENARY_TDM_RX_2: + case AFE_PORT_ID_SEPTENARY_TDM_RX_3: + case AFE_PORT_ID_SEPTENARY_TDM_RX_4: + case AFE_PORT_ID_SEPTENARY_TDM_RX_5: + case AFE_PORT_ID_SEPTENARY_TDM_RX_6: + case AFE_PORT_ID_SEPTENARY_TDM_RX_7: + case AFE_PORT_ID_HSIF0_TDM_RX: + case AFE_PORT_ID_HSIF0_TDM_RX_1: + case AFE_PORT_ID_HSIF0_TDM_RX_2: + case AFE_PORT_ID_HSIF0_TDM_RX_3: + case AFE_PORT_ID_HSIF0_TDM_RX_4: + case AFE_PORT_ID_HSIF0_TDM_RX_5: + case AFE_PORT_ID_HSIF0_TDM_RX_6: + case AFE_PORT_ID_HSIF0_TDM_RX_7: + case AFE_PORT_ID_HSIF1_TDM_RX: + case AFE_PORT_ID_HSIF1_TDM_RX_1: + case AFE_PORT_ID_HSIF1_TDM_RX_2: + case AFE_PORT_ID_HSIF1_TDM_RX_3: + case AFE_PORT_ID_HSIF1_TDM_RX_4: + case AFE_PORT_ID_HSIF1_TDM_RX_5: + case AFE_PORT_ID_HSIF1_TDM_RX_6: + case AFE_PORT_ID_HSIF1_TDM_RX_7: + case AFE_PORT_ID_HSIF2_TDM_RX: + case AFE_PORT_ID_HSIF2_TDM_RX_1: + case AFE_PORT_ID_HSIF2_TDM_RX_2: + case AFE_PORT_ID_HSIF2_TDM_RX_3: + case AFE_PORT_ID_HSIF2_TDM_RX_4: + case AFE_PORT_ID_HSIF2_TDM_RX_5: + case AFE_PORT_ID_HSIF2_TDM_RX_6: + case AFE_PORT_ID_HSIF2_TDM_RX_7: if (q6core_get_avcs_api_version_per_service( APRV2_IDS_SERVICE_ID_ADSP_AFE_V) >= AFE_API_VERSION_V3) { if (!rx_slot) { @@ -9856,6 +10920,38 @@ static int msm_dai_q6_tdm_set_channel_map(struct snd_soc_dai *dai, case AFE_PORT_ID_SENARY_TDM_TX_5: case AFE_PORT_ID_SENARY_TDM_TX_6: case AFE_PORT_ID_SENARY_TDM_TX_7: + case AFE_PORT_ID_SEPTENARY_TDM_TX: + case AFE_PORT_ID_SEPTENARY_TDM_TX_1: + case AFE_PORT_ID_SEPTENARY_TDM_TX_2: + case AFE_PORT_ID_SEPTENARY_TDM_TX_3: + case AFE_PORT_ID_SEPTENARY_TDM_TX_4: + case AFE_PORT_ID_SEPTENARY_TDM_TX_5: + case AFE_PORT_ID_SEPTENARY_TDM_TX_6: + case AFE_PORT_ID_SEPTENARY_TDM_TX_7: + case AFE_PORT_ID_HSIF0_TDM_TX: + case AFE_PORT_ID_HSIF0_TDM_TX_1: + case AFE_PORT_ID_HSIF0_TDM_TX_2: + case AFE_PORT_ID_HSIF0_TDM_TX_3: + case AFE_PORT_ID_HSIF0_TDM_TX_4: + case AFE_PORT_ID_HSIF0_TDM_TX_5: + case AFE_PORT_ID_HSIF0_TDM_TX_6: + case AFE_PORT_ID_HSIF0_TDM_TX_7: + case AFE_PORT_ID_HSIF1_TDM_TX: + case AFE_PORT_ID_HSIF1_TDM_TX_1: + case AFE_PORT_ID_HSIF1_TDM_TX_2: + case AFE_PORT_ID_HSIF1_TDM_TX_3: + case AFE_PORT_ID_HSIF1_TDM_TX_4: + case AFE_PORT_ID_HSIF1_TDM_TX_5: + case AFE_PORT_ID_HSIF1_TDM_TX_6: + case AFE_PORT_ID_HSIF1_TDM_TX_7: + case AFE_PORT_ID_HSIF2_TDM_TX: + case AFE_PORT_ID_HSIF2_TDM_TX_1: + case AFE_PORT_ID_HSIF2_TDM_TX_2: + case AFE_PORT_ID_HSIF2_TDM_TX_3: + case AFE_PORT_ID_HSIF2_TDM_TX_4: + case AFE_PORT_ID_HSIF2_TDM_TX_5: + case AFE_PORT_ID_HSIF2_TDM_TX_6: + case AFE_PORT_ID_HSIF2_TDM_TX_7: if (q6core_get_avcs_api_version_per_service( APRV2_IDS_SERVICE_ID_ADSP_AFE_V) >= AFE_API_VERSION_V3) { if (!tx_slot) { @@ -12367,6 +13463,1350 @@ static struct snd_soc_dai_driver msm_dai_q6_tdm_dai[] = { .probe = msm_dai_q6_dai_tdm_probe, .remove = msm_dai_q6_dai_tdm_remove, }, + { + .playback = { + .stream_name = "Septenary TDM0 Playback", + .aif_name = "SEP_TDM_RX_0", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "SEP_TDM_RX_0", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_SEPTENARY_TDM_RX, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Septenary TDM1 Playback", + .aif_name = "SEP_TDM_RX_1", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "SEP_TDM_RX_1", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_SEPTENARY_TDM_RX_1, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Septenary TDM2 Playback", + .aif_name = "SEP_TDM_RX_2", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "SEP_TDM_RX_2", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_SEPTENARY_TDM_RX_2, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Septenary TDM3 Playback", + .aif_name = "SEP_TDM_RX_3", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "SEP_TDM_RX_3", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_SEPTENARY_TDM_RX_3, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Septenary TDM4 Playback", + .aif_name = "SEP_TDM_RX_4", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "SEP_TDM_RX_4", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_SEPTENARY_TDM_RX_4, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Septenary TDM5 Playback", + .aif_name = "SEP_TDM_RX_5", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "SEP_TDM_RX_5", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_SEPTENARY_TDM_RX_5, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Septenary TDM6 Playback", + .aif_name = "SEP_TDM_RX_6", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "SEP_TDM_RX_6", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_SEPTENARY_TDM_RX_6, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Septenary TDM7 Playback", + .aif_name = "SEP_TDM_RX_7", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "SEP_TDM_RX_7", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_SEPTENARY_TDM_RX_7, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Septenary TDM0 Capture", + .aif_name = "SEP_TDM_TX_0", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "SEP_TDM_TX_0", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_SEPTENARY_TDM_TX, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Septenary TDM1 Capture", + .aif_name = "SEP_TDM_TX_1", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "SEP_TDM_TX_1", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_SEPTENARY_TDM_TX_1, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Septenary TDM2 Capture", + .aif_name = "SEP_TDM_TX_2", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "SEP_TDM_TX_2", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_SEPTENARY_TDM_TX_2, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Septenary TDM3 Capture", + .aif_name = "SEP_TDM_TX_3", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "SEP_TDM_TX_3", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_SEPTENARY_TDM_TX_3, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Septenary TDM4 Capture", + .aif_name = "SEP_TDM_TX_4", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "SEP_TDM_TX_4", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_SEPTENARY_TDM_TX_4, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Septenary TDM5 Capture", + .aif_name = "SEP_TDM_TX_5", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "SEP_TDM_TX_5", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_SEPTENARY_TDM_TX_5, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Septenary TDM6 Capture", + .aif_name = "SEP_TDM_TX_6", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "SEP_TDM_TX_6", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_SEPTENARY_TDM_TX_6, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Septenary TDM7 Capture", + .aif_name = "SEP_TDM_TX_7", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "SEP_TDM_TX_7", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_SEPTENARY_TDM_TX_7, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif0 TDM0 Playback", + .aif_name = "HSIF0_TDM_RX_0", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF0_TDM_RX_0", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF0_TDM_RX, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif0 TDM1 Playback", + .aif_name = "HSIF0_TDM_RX_1", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF0_TDM_RX_1", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF0_TDM_RX_1, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif0 TDM2 Playback", + .aif_name = "HSIF0_TDM_RX_2", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF0_TDM_RX_2", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF0_TDM_RX_2, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif0 TDM3 Playback", + .aif_name = "HSIF0_TDM_RX_3", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF0_TDM_RX_3", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF0_TDM_RX_3, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif0 TDM4 Playback", + .aif_name = "HSIF0_TDM_RX_4", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF0_TDM_RX_4", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF0_TDM_RX_4, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif0 TDM5 Playback", + .aif_name = "HSIF0_TDM_RX_5", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF0_TDM_RX_5", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF0_TDM_RX_5, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif0 TDM6 Playback", + .aif_name = "HSIF0_TDM_RX_6", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF0_TDM_RX_6", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF0_TDM_RX_6, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif0 TDM7 Playback", + .aif_name = "HSIF0_TDM_RX_7", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF0_TDM_RX_7", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF0_TDM_RX_7, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif0 TDM0 Capture", + .aif_name = "HSIF0_TDM_TX_0", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF0_TDM_TX_0", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF0_TDM_TX, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif0 TDM1 Capture", + .aif_name = "HSIF0_TDM_TX_1", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF0_TDM_TX_1", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF0_TDM_TX_1, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif0 TDM2 Capture", + .aif_name = "HSIF0_TDM_TX_2", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF0_TDM_TX_2", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF0_TDM_TX_2, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif0 TDM3 Capture", + .aif_name = "HSIF0_TDM_TX_3", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF0_TDM_TX_3", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF0_TDM_TX_3, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif0 TDM4 Capture", + .aif_name = "HSIF0_TDM_TX_4", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF0_TDM_TX_4", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF0_TDM_TX_4, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif0 TDM5 Capture", + .aif_name = "HSIF0_TDM_TX_5", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF0_TDM_TX_5", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF0_TDM_TX_5, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif0 TDM6 Capture", + .aif_name = "HSIF0_TDM_TX_6", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF0_TDM_TX_6", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF0_TDM_TX_6, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif0 TDM7 Capture", + .aif_name = "HSIF0_TDM_TX_7", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF0_TDM_TX_7", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF0_TDM_TX_7, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif1 TDM0 Playback", + .aif_name = "HSIF1_TDM_RX_0", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF1_TDM_RX_0", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF1_TDM_RX, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif1 TDM1 Playback", + .aif_name = "HSIF1_TDM_RX_1", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF1_TDM_RX_1", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF1_TDM_RX_1, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif1 TDM2 Playback", + .aif_name = "HSIF1_TDM_RX_2", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF1_TDM_RX_2", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF1_TDM_RX_2, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif1 TDM3 Playback", + .aif_name = "HSIF1_TDM_RX_3", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF1_TDM_RX_3", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF1_TDM_RX_3, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif1 TDM4 Playback", + .aif_name = "HSIF1_TDM_RX_4", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF1_TDM_RX_4", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF1_TDM_RX_4, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif1 TDM5 Playback", + .aif_name = "HSIF1_TDM_RX_5", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF1_TDM_RX_5", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF1_TDM_RX_5, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif1 TDM6 Playback", + .aif_name = "HSIF1_TDM_RX_6", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF1_TDM_RX_6", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF1_TDM_RX_6, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif1 TDM7 Playback", + .aif_name = "HSIF1_TDM_RX_7", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF1_TDM_RX_7", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF1_TDM_RX_7, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif1 TDM0 Capture", + .aif_name = "HSIF1_TDM_TX_0", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF1_TDM_TX_0", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF1_TDM_TX, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif1 TDM1 Capture", + .aif_name = "HSIF1_TDM_TX_1", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF1_TDM_TX_1", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF1_TDM_TX_1, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif1 TDM2 Capture", + .aif_name = "HSIF1_TDM_TX_2", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF1_TDM_TX_2", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF1_TDM_TX_2, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif1 TDM3 Capture", + .aif_name = "HSIF1_TDM_TX_3", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF1_TDM_TX_3", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF1_TDM_TX_3, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif1 TDM4 Capture", + .aif_name = "HSIF1_TDM_TX_4", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF1_TDM_TX_4", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF1_TDM_TX_4, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif1 TDM5 Capture", + .aif_name = "HSIF1_TDM_TX_5", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF1_TDM_TX_5", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF1_TDM_TX_5, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif1 TDM6 Capture", + .aif_name = "HSIF1_TDM_TX_6", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF1_TDM_TX_6", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF1_TDM_TX_6, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif1 TDM7 Capture", + .aif_name = "HSIF1_TDM_TX_7", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF1_TDM_TX_7", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF1_TDM_TX_7, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif2 TDM0 Playback", + .aif_name = "HSIF2_TDM_RX_0", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF2_TDM_RX_0", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF2_TDM_RX, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif2 TDM1 Playback", + .aif_name = "HSIF2_TDM_RX_1", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF2_TDM_RX_1", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF2_TDM_RX_1, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif2 TDM2 Playback", + .aif_name = "HSIF2_TDM_RX_2", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF2_TDM_RX_2", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF2_TDM_RX_2, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif2 TDM3 Playback", + .aif_name = "HSIF2_TDM_RX_3", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF2_TDM_RX_3", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF2_TDM_RX_3, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif2 TDM4 Playback", + .aif_name = "HSIF2_TDM_RX_4", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF2_TDM_RX_4", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF2_TDM_RX_4, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif2 TDM5 Playback", + .aif_name = "HSIF2_TDM_RX_5", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF2_TDM_RX_5", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF2_TDM_RX_5, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif2 TDM6 Playback", + .aif_name = "HSIF2_TDM_RX_6", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF2_TDM_RX_6", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF2_TDM_RX_6, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .playback = { + .stream_name = "Hsif2 TDM7 Playback", + .aif_name = "HSIF2_TDM_RX_7", + .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF2_TDM_RX_7", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF2_TDM_RX_7, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif2 TDM0 Capture", + .aif_name = "HSIF2_TDM_TX_0", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF2_TDM_TX_0", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF2_TDM_TX, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif2 TDM1 Capture", + .aif_name = "HSIF2_TDM_TX_1", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF2_TDM_TX_1", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF2_TDM_TX_1, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif2 TDM2 Capture", + .aif_name = "HSIF2_TDM_TX_2", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF2_TDM_TX_2", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF2_TDM_TX_2, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif2 TDM3 Capture", + .aif_name = "HSIF2_TDM_TX_3", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF2_TDM_TX_3", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF2_TDM_TX_3, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif2 TDM4 Capture", + .aif_name = "HSIF2_TDM_TX_4", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF2_TDM_TX_4", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF2_TDM_TX_4, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif2 TDM5 Capture", + .aif_name = "HSIF2_TDM_TX_5", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF2_TDM_TX_5", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF2_TDM_TX_5, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif2 TDM6 Capture", + .aif_name = "HSIF2_TDM_TX_6", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF2_TDM_TX_6", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF2_TDM_TX_6, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, + { + .capture = { + .stream_name = "Hsif2 TDM7 Capture", + .aif_name = "HSIF2_TDM_TX_7", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_352800, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 352800, + }, + .name = "HSIF2_TDM_TX_7", + .ops = &msm_dai_q6_tdm_ops, + .id = AFE_PORT_ID_HSIF2_TDM_TX_7, + .probe = msm_dai_q6_dai_tdm_probe, + .remove = msm_dai_q6_dai_tdm_remove, + }, }; static const struct snd_soc_component_driver msm_q6_tdm_dai_component = { diff --git a/dsp/q6afe.c b/dsp/q6afe.c index 45cddc5240a3..2bdcc5008042 100755 --- a/dsp/q6afe.c +++ b/dsp/q6afe.c @@ -315,6 +315,14 @@ static struct afe_clkinfo_per_port clkinfo_per_port[] = { MCLK_SRC_INT, Q6AFE_EXT_MCLK_FREQ_DEFAULT, ""}, { AFE_PORT_ID_SENARY_TDM_RX, MCLK_SRC_INT, Q6AFE_EXT_MCLK_FREQ_DEFAULT, ""}, + { AFE_PORT_ID_SEPTENARY_TDM_RX, + MCLK_SRC_INT, Q6AFE_EXT_MCLK_FREQ_DEFAULT, ""}, + { AFE_PORT_ID_HSIF0_TDM_RX, + MCLK_SRC_INT, Q6AFE_EXT_MCLK_FREQ_DEFAULT, ""}, + { AFE_PORT_ID_HSIF1_TDM_RX, + MCLK_SRC_INT, Q6AFE_EXT_MCLK_FREQ_DEFAULT, ""}, + { AFE_PORT_ID_HSIF2_TDM_RX, + MCLK_SRC_INT, Q6AFE_EXT_MCLK_FREQ_DEFAULT, ""}, { AFE_PORT_ID_PRIMARY_SPDIF_RX, MCLK_SRC_INT, Q6AFE_EXT_MCLK_FREQ_DEFAULT, ""}, { AFE_PORT_ID_PRIMARY_SPDIF_TX, @@ -6659,6 +6667,134 @@ int afe_get_port_index(u16 port_id) return IDX_RT_PROXY_PORT_002_RX; case RT_PROXY_PORT_002_TX: return IDX_RT_PROXY_PORT_002_TX; + case AFE_PORT_ID_SEPTENARY_TDM_RX: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_0; + case AFE_PORT_ID_SEPTENARY_TDM_TX: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_0; + case AFE_PORT_ID_SEPTENARY_TDM_RX_1: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_1; + case AFE_PORT_ID_SEPTENARY_TDM_TX_1: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_1; + case AFE_PORT_ID_SEPTENARY_TDM_RX_2: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_2; + case AFE_PORT_ID_SEPTENARY_TDM_TX_2: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_2; + case AFE_PORT_ID_SEPTENARY_TDM_RX_3: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_3; + case AFE_PORT_ID_SEPTENARY_TDM_TX_3: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_3; + case AFE_PORT_ID_SEPTENARY_TDM_RX_4: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_4; + case AFE_PORT_ID_SEPTENARY_TDM_TX_4: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_4; + case AFE_PORT_ID_SEPTENARY_TDM_RX_5: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_5; + case AFE_PORT_ID_SEPTENARY_TDM_TX_5: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_5; + case AFE_PORT_ID_SEPTENARY_TDM_RX_6: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_6; + case AFE_PORT_ID_SEPTENARY_TDM_TX_6: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_6; + case AFE_PORT_ID_SEPTENARY_TDM_RX_7: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_7; + case AFE_PORT_ID_SEPTENARY_TDM_TX_7: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_7; + case AFE_PORT_ID_HSIF0_TDM_RX: + return IDX_AFE_PORT_ID_HSIF0_TDM_RX_0; + case AFE_PORT_ID_HSIF0_TDM_TX: + return IDX_AFE_PORT_ID_HSIF0_TDM_TX_0; + case AFE_PORT_ID_HSIF0_TDM_RX_1: + return IDX_AFE_PORT_ID_HSIF0_TDM_RX_1; + case AFE_PORT_ID_HSIF0_TDM_TX_1: + return IDX_AFE_PORT_ID_HSIF0_TDM_TX_1; + case AFE_PORT_ID_HSIF0_TDM_RX_2: + return IDX_AFE_PORT_ID_HSIF0_TDM_RX_2; + case AFE_PORT_ID_HSIF0_TDM_TX_2: + return IDX_AFE_PORT_ID_HSIF0_TDM_TX_2; + case AFE_PORT_ID_HSIF0_TDM_RX_3: + return IDX_AFE_PORT_ID_HSIF0_TDM_RX_3; + case AFE_PORT_ID_HSIF0_TDM_TX_3: + return IDX_AFE_PORT_ID_HSIF0_TDM_TX_3; + case AFE_PORT_ID_HSIF0_TDM_RX_4: + return IDX_AFE_PORT_ID_HSIF0_TDM_RX_4; + case AFE_PORT_ID_HSIF0_TDM_TX_4: + return IDX_AFE_PORT_ID_HSIF0_TDM_TX_4; + case AFE_PORT_ID_HSIF0_TDM_RX_5: + return IDX_AFE_PORT_ID_HSIF0_TDM_RX_5; + case AFE_PORT_ID_HSIF0_TDM_TX_5: + return IDX_AFE_PORT_ID_HSIF0_TDM_TX_5; + case AFE_PORT_ID_HSIF0_TDM_RX_6: + return IDX_AFE_PORT_ID_HSIF0_TDM_RX_6; + case AFE_PORT_ID_HSIF0_TDM_TX_6: + return IDX_AFE_PORT_ID_HSIF0_TDM_TX_6; + case AFE_PORT_ID_HSIF0_TDM_RX_7: + return IDX_AFE_PORT_ID_HSIF0_TDM_RX_7; + case AFE_PORT_ID_HSIF0_TDM_TX_7: + return IDX_AFE_PORT_ID_HSIF0_TDM_TX_7; + case AFE_PORT_ID_HSIF1_TDM_RX: + return IDX_AFE_PORT_ID_HSIF1_TDM_RX_0; + case AFE_PORT_ID_HSIF1_TDM_TX: + return IDX_AFE_PORT_ID_HSIF1_TDM_TX_0; + case AFE_PORT_ID_HSIF1_TDM_RX_1: + return IDX_AFE_PORT_ID_HSIF1_TDM_RX_1; + case AFE_PORT_ID_HSIF1_TDM_TX_1: + return IDX_AFE_PORT_ID_HSIF1_TDM_TX_1; + case AFE_PORT_ID_HSIF1_TDM_RX_2: + return IDX_AFE_PORT_ID_HSIF1_TDM_RX_2; + case AFE_PORT_ID_HSIF1_TDM_TX_2: + return IDX_AFE_PORT_ID_HSIF1_TDM_TX_2; + case AFE_PORT_ID_HSIF1_TDM_RX_3: + return IDX_AFE_PORT_ID_HSIF1_TDM_RX_3; + case AFE_PORT_ID_HSIF1_TDM_TX_3: + return IDX_AFE_PORT_ID_HSIF1_TDM_TX_3; + case AFE_PORT_ID_HSIF1_TDM_RX_4: + return IDX_AFE_PORT_ID_HSIF1_TDM_RX_4; + case AFE_PORT_ID_HSIF1_TDM_TX_4: + return IDX_AFE_PORT_ID_HSIF1_TDM_TX_4; + case AFE_PORT_ID_HSIF1_TDM_RX_5: + return IDX_AFE_PORT_ID_HSIF1_TDM_RX_5; + case AFE_PORT_ID_HSIF1_TDM_TX_5: + return IDX_AFE_PORT_ID_HSIF1_TDM_TX_5; + case AFE_PORT_ID_HSIF1_TDM_RX_6: + return IDX_AFE_PORT_ID_HSIF1_TDM_RX_6; + case AFE_PORT_ID_HSIF1_TDM_TX_6: + return IDX_AFE_PORT_ID_HSIF1_TDM_TX_6; + case AFE_PORT_ID_HSIF1_TDM_RX_7: + return IDX_AFE_PORT_ID_HSIF1_TDM_RX_7; + case AFE_PORT_ID_HSIF1_TDM_TX_7: + return IDX_AFE_PORT_ID_HSIF1_TDM_TX_7; + case AFE_PORT_ID_HSIF2_TDM_RX: + return IDX_AFE_PORT_ID_HSIF2_TDM_RX_0; + case AFE_PORT_ID_HSIF2_TDM_TX: + return IDX_AFE_PORT_ID_HSIF2_TDM_TX_0; + case AFE_PORT_ID_HSIF2_TDM_RX_1: + return IDX_AFE_PORT_ID_HSIF2_TDM_RX_1; + case AFE_PORT_ID_HSIF2_TDM_TX_1: + return IDX_AFE_PORT_ID_HSIF2_TDM_TX_1; + case AFE_PORT_ID_HSIF2_TDM_RX_2: + return IDX_AFE_PORT_ID_HSIF2_TDM_RX_2; + case AFE_PORT_ID_HSIF2_TDM_TX_2: + return IDX_AFE_PORT_ID_HSIF2_TDM_TX_2; + case AFE_PORT_ID_HSIF2_TDM_RX_3: + return IDX_AFE_PORT_ID_HSIF2_TDM_RX_3; + case AFE_PORT_ID_HSIF2_TDM_TX_3: + return IDX_AFE_PORT_ID_HSIF2_TDM_TX_3; + case AFE_PORT_ID_HSIF2_TDM_RX_4: + return IDX_AFE_PORT_ID_HSIF2_TDM_RX_4; + case AFE_PORT_ID_HSIF2_TDM_TX_4: + return IDX_AFE_PORT_ID_HSIF2_TDM_TX_4; + case AFE_PORT_ID_HSIF2_TDM_RX_5: + return IDX_AFE_PORT_ID_HSIF2_TDM_RX_5; + case AFE_PORT_ID_HSIF2_TDM_TX_5: + return IDX_AFE_PORT_ID_HSIF2_TDM_TX_5; + case AFE_PORT_ID_HSIF2_TDM_RX_6: + return IDX_AFE_PORT_ID_HSIF2_TDM_RX_6; + case AFE_PORT_ID_HSIF2_TDM_TX_6: + return IDX_AFE_PORT_ID_HSIF2_TDM_TX_6; + case AFE_PORT_ID_HSIF2_TDM_RX_7: + return IDX_AFE_PORT_ID_HSIF2_TDM_RX_7; + case AFE_PORT_ID_HSIF2_TDM_TX_7: + return IDX_AFE_PORT_ID_HSIF2_TDM_TX_7; default: pr_err("%s: port 0x%x\n", __func__, port_id); return -EINVAL; @@ -7150,6 +7286,14 @@ int afe_port_group_set_param(u16 group_id, case AFE_GROUP_DEVICE_ID_QUINARY_TDM_TX: case AFE_GROUP_DEVICE_ID_SENARY_TDM_RX: case AFE_GROUP_DEVICE_ID_SENARY_TDM_TX: + case AFE_GROUP_DEVICE_ID_SEPTENARY_TDM_RX: + case AFE_GROUP_DEVICE_ID_SEPTENARY_TDM_TX: + case AFE_GROUP_DEVICE_ID_HSIF0_TDM_RX: + case AFE_GROUP_DEVICE_ID_HSIF0_TDM_TX: + case AFE_GROUP_DEVICE_ID_HSIF1_TDM_RX: + case AFE_GROUP_DEVICE_ID_HSIF1_TDM_TX: + case AFE_GROUP_DEVICE_ID_HSIF2_TDM_RX: + case AFE_GROUP_DEVICE_ID_HSIF2_TDM_TX: cfg_type = AFE_PARAM_ID_GROUP_DEVICE_TDM_CONFIG; break; default: @@ -8871,6 +9015,70 @@ static bool is_port_valid(u16 port_id) case AFE_PORT_ID_RX_CODEC_DMA_RX_7: case RT_PROXY_PORT_002_RX: case RT_PROXY_PORT_002_TX: + case AFE_PORT_ID_SEPTENARY_TDM_RX: + case AFE_PORT_ID_SEPTENARY_TDM_TX: + case AFE_PORT_ID_SEPTENARY_TDM_RX_1: + case AFE_PORT_ID_SEPTENARY_TDM_TX_1: + case AFE_PORT_ID_SEPTENARY_TDM_RX_2: + case AFE_PORT_ID_SEPTENARY_TDM_TX_2: + case AFE_PORT_ID_SEPTENARY_TDM_RX_3: + case AFE_PORT_ID_SEPTENARY_TDM_TX_3: + case AFE_PORT_ID_SEPTENARY_TDM_RX_4: + case AFE_PORT_ID_SEPTENARY_TDM_TX_4: + case AFE_PORT_ID_SEPTENARY_TDM_RX_5: + case AFE_PORT_ID_SEPTENARY_TDM_TX_5: + case AFE_PORT_ID_SEPTENARY_TDM_RX_6: + case AFE_PORT_ID_SEPTENARY_TDM_TX_6: + case AFE_PORT_ID_SEPTENARY_TDM_RX_7: + case AFE_PORT_ID_SEPTENARY_TDM_TX_7: + case AFE_PORT_ID_HSIF0_TDM_RX: + case AFE_PORT_ID_HSIF0_TDM_TX: + case AFE_PORT_ID_HSIF0_TDM_RX_1: + case AFE_PORT_ID_HSIF0_TDM_TX_1: + case AFE_PORT_ID_HSIF0_TDM_RX_2: + case AFE_PORT_ID_HSIF0_TDM_TX_2: + case AFE_PORT_ID_HSIF0_TDM_RX_3: + case AFE_PORT_ID_HSIF0_TDM_TX_3: + case AFE_PORT_ID_HSIF0_TDM_RX_4: + case AFE_PORT_ID_HSIF0_TDM_TX_4: + case AFE_PORT_ID_HSIF0_TDM_RX_5: + case AFE_PORT_ID_HSIF0_TDM_TX_5: + case AFE_PORT_ID_HSIF0_TDM_RX_6: + case AFE_PORT_ID_HSIF0_TDM_TX_6: + case AFE_PORT_ID_HSIF0_TDM_RX_7: + case AFE_PORT_ID_HSIF0_TDM_TX_7: + case AFE_PORT_ID_HSIF1_TDM_RX: + case AFE_PORT_ID_HSIF1_TDM_TX: + case AFE_PORT_ID_HSIF1_TDM_RX_1: + case AFE_PORT_ID_HSIF1_TDM_TX_1: + case AFE_PORT_ID_HSIF1_TDM_RX_2: + case AFE_PORT_ID_HSIF1_TDM_TX_2: + case AFE_PORT_ID_HSIF1_TDM_RX_3: + case AFE_PORT_ID_HSIF1_TDM_TX_3: + case AFE_PORT_ID_HSIF1_TDM_RX_4: + case AFE_PORT_ID_HSIF1_TDM_TX_4: + case AFE_PORT_ID_HSIF1_TDM_RX_5: + case AFE_PORT_ID_HSIF1_TDM_TX_5: + case AFE_PORT_ID_HSIF1_TDM_RX_6: + case AFE_PORT_ID_HSIF1_TDM_TX_6: + case AFE_PORT_ID_HSIF1_TDM_RX_7: + case AFE_PORT_ID_HSIF1_TDM_TX_7: + case AFE_PORT_ID_HSIF2_TDM_RX: + case AFE_PORT_ID_HSIF2_TDM_TX: + case AFE_PORT_ID_HSIF2_TDM_RX_1: + case AFE_PORT_ID_HSIF2_TDM_TX_1: + case AFE_PORT_ID_HSIF2_TDM_RX_2: + case AFE_PORT_ID_HSIF2_TDM_TX_2: + case AFE_PORT_ID_HSIF2_TDM_RX_3: + case AFE_PORT_ID_HSIF2_TDM_TX_3: + case AFE_PORT_ID_HSIF2_TDM_RX_4: + case AFE_PORT_ID_HSIF2_TDM_TX_4: + case AFE_PORT_ID_HSIF2_TDM_RX_5: + case AFE_PORT_ID_HSIF2_TDM_TX_5: + case AFE_PORT_ID_HSIF2_TDM_RX_6: + case AFE_PORT_ID_HSIF2_TDM_TX_6: + case AFE_PORT_ID_HSIF2_TDM_RX_7: + case AFE_PORT_ID_HSIF2_TDM_TX_7: { return true; } diff --git a/dsp/q6audio-v2.c b/dsp/q6audio-v2.c index 5b71d56a630e..ed94a039cb5a 100644 --- a/dsp/q6audio-v2.c +++ b/dsp/q6audio-v2.c @@ -390,6 +390,134 @@ int q6audio_get_port_index(u16 port_id) return IDX_RT_PROXY_PORT_002_RX; case RT_PROXY_PORT_002_TX: return IDX_RT_PROXY_PORT_002_TX; + case AFE_PORT_ID_SEPTENARY_TDM_RX: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_0; + case AFE_PORT_ID_SEPTENARY_TDM_TX: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_0; + case AFE_PORT_ID_SEPTENARY_TDM_RX_1: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_1; + case AFE_PORT_ID_SEPTENARY_TDM_TX_1: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_1; + case AFE_PORT_ID_SEPTENARY_TDM_RX_2: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_2; + case AFE_PORT_ID_SEPTENARY_TDM_TX_2: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_2; + case AFE_PORT_ID_SEPTENARY_TDM_RX_3: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_3; + case AFE_PORT_ID_SEPTENARY_TDM_TX_3: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_3; + case AFE_PORT_ID_SEPTENARY_TDM_RX_4: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_4; + case AFE_PORT_ID_SEPTENARY_TDM_TX_4: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_4; + case AFE_PORT_ID_SEPTENARY_TDM_RX_5: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_5; + case AFE_PORT_ID_SEPTENARY_TDM_TX_5: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_5; + case AFE_PORT_ID_SEPTENARY_TDM_RX_6: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_6; + case AFE_PORT_ID_SEPTENARY_TDM_TX_6: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_6; + case AFE_PORT_ID_SEPTENARY_TDM_RX_7: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_7; + case AFE_PORT_ID_SEPTENARY_TDM_TX_7: + return IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_7; + case AFE_PORT_ID_HSIF0_TDM_RX: + return IDX_AFE_PORT_ID_HSIF0_TDM_RX_0; + case AFE_PORT_ID_HSIF0_TDM_TX: + return IDX_AFE_PORT_ID_HSIF0_TDM_TX_0; + case AFE_PORT_ID_HSIF0_TDM_RX_1: + return IDX_AFE_PORT_ID_HSIF0_TDM_RX_1; + case AFE_PORT_ID_HSIF0_TDM_TX_1: + return IDX_AFE_PORT_ID_HSIF0_TDM_TX_1; + case AFE_PORT_ID_HSIF0_TDM_RX_2: + return IDX_AFE_PORT_ID_HSIF0_TDM_RX_2; + case AFE_PORT_ID_HSIF0_TDM_TX_2: + return IDX_AFE_PORT_ID_HSIF0_TDM_TX_2; + case AFE_PORT_ID_HSIF0_TDM_RX_3: + return IDX_AFE_PORT_ID_HSIF0_TDM_RX_3; + case AFE_PORT_ID_HSIF0_TDM_TX_3: + return IDX_AFE_PORT_ID_HSIF0_TDM_TX_3; + case AFE_PORT_ID_HSIF0_TDM_RX_4: + return IDX_AFE_PORT_ID_HSIF0_TDM_RX_4; + case AFE_PORT_ID_HSIF0_TDM_TX_4: + return IDX_AFE_PORT_ID_HSIF0_TDM_TX_4; + case AFE_PORT_ID_HSIF0_TDM_RX_5: + return IDX_AFE_PORT_ID_HSIF0_TDM_RX_5; + case AFE_PORT_ID_HSIF0_TDM_TX_5: + return IDX_AFE_PORT_ID_HSIF0_TDM_TX_5; + case AFE_PORT_ID_HSIF0_TDM_RX_6: + return IDX_AFE_PORT_ID_HSIF0_TDM_RX_6; + case AFE_PORT_ID_HSIF0_TDM_TX_6: + return IDX_AFE_PORT_ID_HSIF0_TDM_TX_6; + case AFE_PORT_ID_HSIF0_TDM_RX_7: + return IDX_AFE_PORT_ID_HSIF0_TDM_RX_7; + case AFE_PORT_ID_HSIF0_TDM_TX_7: + return IDX_AFE_PORT_ID_HSIF0_TDM_TX_7; + case AFE_PORT_ID_HSIF1_TDM_RX: + return IDX_AFE_PORT_ID_HSIF1_TDM_RX_0; + case AFE_PORT_ID_HSIF1_TDM_TX: + return IDX_AFE_PORT_ID_HSIF1_TDM_TX_0; + case AFE_PORT_ID_HSIF1_TDM_RX_1: + return IDX_AFE_PORT_ID_HSIF1_TDM_RX_1; + case AFE_PORT_ID_HSIF1_TDM_TX_1: + return IDX_AFE_PORT_ID_HSIF1_TDM_TX_1; + case AFE_PORT_ID_HSIF1_TDM_RX_2: + return IDX_AFE_PORT_ID_HSIF1_TDM_RX_2; + case AFE_PORT_ID_HSIF1_TDM_TX_2: + return IDX_AFE_PORT_ID_HSIF1_TDM_TX_2; + case AFE_PORT_ID_HSIF1_TDM_RX_3: + return IDX_AFE_PORT_ID_HSIF1_TDM_RX_3; + case AFE_PORT_ID_HSIF1_TDM_TX_3: + return IDX_AFE_PORT_ID_HSIF1_TDM_TX_3; + case AFE_PORT_ID_HSIF1_TDM_RX_4: + return IDX_AFE_PORT_ID_HSIF1_TDM_RX_4; + case AFE_PORT_ID_HSIF1_TDM_TX_4: + return IDX_AFE_PORT_ID_HSIF1_TDM_TX_4; + case AFE_PORT_ID_HSIF1_TDM_RX_5: + return IDX_AFE_PORT_ID_HSIF1_TDM_RX_5; + case AFE_PORT_ID_HSIF1_TDM_TX_5: + return IDX_AFE_PORT_ID_HSIF1_TDM_TX_5; + case AFE_PORT_ID_HSIF1_TDM_RX_6: + return IDX_AFE_PORT_ID_HSIF1_TDM_RX_6; + case AFE_PORT_ID_HSIF1_TDM_TX_6: + return IDX_AFE_PORT_ID_HSIF1_TDM_TX_6; + case AFE_PORT_ID_HSIF1_TDM_RX_7: + return IDX_AFE_PORT_ID_HSIF1_TDM_RX_7; + case AFE_PORT_ID_HSIF1_TDM_TX_7: + return IDX_AFE_PORT_ID_HSIF1_TDM_TX_7; + case AFE_PORT_ID_HSIF2_TDM_RX: + return IDX_AFE_PORT_ID_HSIF2_TDM_RX_0; + case AFE_PORT_ID_HSIF2_TDM_TX: + return IDX_AFE_PORT_ID_HSIF2_TDM_TX_0; + case AFE_PORT_ID_HSIF2_TDM_RX_1: + return IDX_AFE_PORT_ID_HSIF2_TDM_RX_1; + case AFE_PORT_ID_HSIF2_TDM_TX_1: + return IDX_AFE_PORT_ID_HSIF2_TDM_TX_1; + case AFE_PORT_ID_HSIF2_TDM_RX_2: + return IDX_AFE_PORT_ID_HSIF2_TDM_RX_2; + case AFE_PORT_ID_HSIF2_TDM_TX_2: + return IDX_AFE_PORT_ID_HSIF2_TDM_TX_2; + case AFE_PORT_ID_HSIF2_TDM_RX_3: + return IDX_AFE_PORT_ID_HSIF2_TDM_RX_3; + case AFE_PORT_ID_HSIF2_TDM_TX_3: + return IDX_AFE_PORT_ID_HSIF2_TDM_TX_3; + case AFE_PORT_ID_HSIF2_TDM_RX_4: + return IDX_AFE_PORT_ID_HSIF2_TDM_RX_4; + case AFE_PORT_ID_HSIF2_TDM_TX_4: + return IDX_AFE_PORT_ID_HSIF2_TDM_TX_4; + case AFE_PORT_ID_HSIF2_TDM_RX_5: + return IDX_AFE_PORT_ID_HSIF2_TDM_RX_5; + case AFE_PORT_ID_HSIF2_TDM_TX_5: + return IDX_AFE_PORT_ID_HSIF2_TDM_TX_5; + case AFE_PORT_ID_HSIF2_TDM_RX_6: + return IDX_AFE_PORT_ID_HSIF2_TDM_RX_6; + case AFE_PORT_ID_HSIF2_TDM_TX_6: + return IDX_AFE_PORT_ID_HSIF2_TDM_TX_6; + case AFE_PORT_ID_HSIF2_TDM_RX_7: + return IDX_AFE_PORT_ID_HSIF2_TDM_RX_7; + case AFE_PORT_ID_HSIF2_TDM_TX_7: + return IDX_AFE_PORT_ID_HSIF2_TDM_TX_7; default: return -EINVAL; } } @@ -778,6 +906,134 @@ int q6audio_get_port_id(u16 port_id) return RT_PROXY_PORT_002_RX; case RT_PROXY_PORT_002_TX: return RT_PROXY_PORT_002_TX; + case AFE_PORT_ID_SEPTENARY_TDM_RX: + return AFE_PORT_ID_SEPTENARY_TDM_RX; + case AFE_PORT_ID_SEPTENARY_TDM_TX: + return AFE_PORT_ID_SEPTENARY_TDM_TX; + case AFE_PORT_ID_SEPTENARY_TDM_RX_1: + return AFE_PORT_ID_SEPTENARY_TDM_RX_1; + case AFE_PORT_ID_SEPTENARY_TDM_TX_1: + return AFE_PORT_ID_SEPTENARY_TDM_TX_1; + case AFE_PORT_ID_SEPTENARY_TDM_RX_2: + return AFE_PORT_ID_SEPTENARY_TDM_RX_2; + case AFE_PORT_ID_SEPTENARY_TDM_TX_2: + return AFE_PORT_ID_SEPTENARY_TDM_TX_2; + case AFE_PORT_ID_SEPTENARY_TDM_RX_3: + return AFE_PORT_ID_SEPTENARY_TDM_RX_3; + case AFE_PORT_ID_SEPTENARY_TDM_TX_3: + return AFE_PORT_ID_SEPTENARY_TDM_TX_3; + case AFE_PORT_ID_SEPTENARY_TDM_RX_4: + return AFE_PORT_ID_SEPTENARY_TDM_RX_4; + case AFE_PORT_ID_SEPTENARY_TDM_TX_4: + return AFE_PORT_ID_SEPTENARY_TDM_TX_4; + case AFE_PORT_ID_SEPTENARY_TDM_RX_5: + return AFE_PORT_ID_SEPTENARY_TDM_RX_5; + case AFE_PORT_ID_SEPTENARY_TDM_TX_5: + return AFE_PORT_ID_SEPTENARY_TDM_TX_5; + case AFE_PORT_ID_SEPTENARY_TDM_RX_6: + return AFE_PORT_ID_SEPTENARY_TDM_RX_6; + case AFE_PORT_ID_SEPTENARY_TDM_TX_6: + return AFE_PORT_ID_SEPTENARY_TDM_TX_6; + case AFE_PORT_ID_SEPTENARY_TDM_RX_7: + return AFE_PORT_ID_SEPTENARY_TDM_RX_7; + case AFE_PORT_ID_SEPTENARY_TDM_TX_7: + return AFE_PORT_ID_SEPTENARY_TDM_TX_7; + case AFE_PORT_ID_HSIF0_TDM_RX: + return AFE_PORT_ID_HSIF0_TDM_RX; + case AFE_PORT_ID_HSIF0_TDM_TX: + return AFE_PORT_ID_HSIF0_TDM_TX; + case AFE_PORT_ID_HSIF0_TDM_RX_1: + return AFE_PORT_ID_HSIF0_TDM_RX_1; + case AFE_PORT_ID_HSIF0_TDM_TX_1: + return AFE_PORT_ID_HSIF0_TDM_TX_1; + case AFE_PORT_ID_HSIF0_TDM_RX_2: + return AFE_PORT_ID_HSIF0_TDM_RX_2; + case AFE_PORT_ID_HSIF0_TDM_TX_2: + return AFE_PORT_ID_HSIF0_TDM_TX_2; + case AFE_PORT_ID_HSIF0_TDM_RX_3: + return AFE_PORT_ID_HSIF0_TDM_RX_3; + case AFE_PORT_ID_HSIF0_TDM_TX_3: + return AFE_PORT_ID_HSIF0_TDM_TX_3; + case AFE_PORT_ID_HSIF0_TDM_RX_4: + return AFE_PORT_ID_HSIF0_TDM_RX_4; + case AFE_PORT_ID_HSIF0_TDM_TX_4: + return AFE_PORT_ID_HSIF0_TDM_TX_4; + case AFE_PORT_ID_HSIF0_TDM_RX_5: + return AFE_PORT_ID_HSIF0_TDM_RX_5; + case AFE_PORT_ID_HSIF0_TDM_TX_5: + return AFE_PORT_ID_HSIF0_TDM_TX_5; + case AFE_PORT_ID_HSIF0_TDM_RX_6: + return AFE_PORT_ID_HSIF0_TDM_RX_6; + case AFE_PORT_ID_HSIF0_TDM_TX_6: + return AFE_PORT_ID_HSIF0_TDM_TX_6; + case AFE_PORT_ID_HSIF0_TDM_RX_7: + return AFE_PORT_ID_HSIF0_TDM_RX_7; + case AFE_PORT_ID_HSIF0_TDM_TX_7: + return AFE_PORT_ID_HSIF0_TDM_TX_7; + case AFE_PORT_ID_HSIF1_TDM_RX: + return AFE_PORT_ID_HSIF1_TDM_RX; + case AFE_PORT_ID_HSIF1_TDM_TX: + return AFE_PORT_ID_HSIF1_TDM_TX; + case AFE_PORT_ID_HSIF1_TDM_RX_1: + return AFE_PORT_ID_HSIF1_TDM_RX_1; + case AFE_PORT_ID_HSIF1_TDM_TX_1: + return AFE_PORT_ID_HSIF1_TDM_TX_1; + case AFE_PORT_ID_HSIF1_TDM_RX_2: + return AFE_PORT_ID_HSIF1_TDM_RX_2; + case AFE_PORT_ID_HSIF1_TDM_TX_2: + return AFE_PORT_ID_HSIF1_TDM_TX_2; + case AFE_PORT_ID_HSIF1_TDM_RX_3: + return AFE_PORT_ID_HSIF1_TDM_RX_3; + case AFE_PORT_ID_HSIF1_TDM_TX_3: + return AFE_PORT_ID_HSIF1_TDM_TX_3; + case AFE_PORT_ID_HSIF1_TDM_RX_4: + return AFE_PORT_ID_HSIF1_TDM_RX_4; + case AFE_PORT_ID_HSIF1_TDM_TX_4: + return AFE_PORT_ID_HSIF1_TDM_TX_4; + case AFE_PORT_ID_HSIF1_TDM_RX_5: + return AFE_PORT_ID_HSIF1_TDM_RX_5; + case AFE_PORT_ID_HSIF1_TDM_TX_5: + return AFE_PORT_ID_HSIF1_TDM_TX_5; + case AFE_PORT_ID_HSIF1_TDM_RX_6: + return AFE_PORT_ID_HSIF1_TDM_RX_6; + case AFE_PORT_ID_HSIF1_TDM_TX_6: + return AFE_PORT_ID_HSIF1_TDM_TX_6; + case AFE_PORT_ID_HSIF1_TDM_RX_7: + return AFE_PORT_ID_HSIF1_TDM_RX_7; + case AFE_PORT_ID_HSIF1_TDM_TX_7: + return AFE_PORT_ID_HSIF1_TDM_TX_7; + case AFE_PORT_ID_HSIF2_TDM_RX: + return AFE_PORT_ID_HSIF2_TDM_RX; + case AFE_PORT_ID_HSIF2_TDM_TX: + return AFE_PORT_ID_HSIF2_TDM_TX; + case AFE_PORT_ID_HSIF2_TDM_RX_1: + return AFE_PORT_ID_HSIF2_TDM_RX_1; + case AFE_PORT_ID_HSIF2_TDM_TX_1: + return AFE_PORT_ID_HSIF2_TDM_TX_1; + case AFE_PORT_ID_HSIF2_TDM_RX_2: + return AFE_PORT_ID_HSIF2_TDM_RX_2; + case AFE_PORT_ID_HSIF2_TDM_TX_2: + return AFE_PORT_ID_HSIF2_TDM_TX_2; + case AFE_PORT_ID_HSIF2_TDM_RX_3: + return AFE_PORT_ID_HSIF2_TDM_RX_3; + case AFE_PORT_ID_HSIF2_TDM_TX_3: + return AFE_PORT_ID_HSIF2_TDM_TX_3; + case AFE_PORT_ID_HSIF2_TDM_RX_4: + return AFE_PORT_ID_HSIF2_TDM_RX_4; + case AFE_PORT_ID_HSIF2_TDM_TX_4: + return AFE_PORT_ID_HSIF2_TDM_TX_4; + case AFE_PORT_ID_HSIF2_TDM_RX_5: + return AFE_PORT_ID_HSIF2_TDM_RX_5; + case AFE_PORT_ID_HSIF2_TDM_TX_5: + return AFE_PORT_ID_HSIF2_TDM_TX_5; + case AFE_PORT_ID_HSIF2_TDM_RX_6: + return AFE_PORT_ID_HSIF2_TDM_RX_6; + case AFE_PORT_ID_HSIF2_TDM_TX_6: + return AFE_PORT_ID_HSIF2_TDM_TX_6; + case AFE_PORT_ID_HSIF2_TDM_RX_7: + return AFE_PORT_ID_HSIF2_TDM_RX_7; + case AFE_PORT_ID_HSIF2_TDM_TX_7: + return AFE_PORT_ID_HSIF2_TDM_TX_7; default: pr_warn("%s: Invalid port_id %d\n", __func__, port_id); return -EINVAL; @@ -981,6 +1237,70 @@ int q6audio_is_digital_pcm_interface(u16 port_id) case AFE_PORT_ID_PRIMARY_SPDIF_TX: case AFE_PORT_ID_SECONDARY_SPDIF_RX: case AFE_PORT_ID_SECONDARY_SPDIF_TX: + case AFE_PORT_ID_SEPTENARY_TDM_RX: + case AFE_PORT_ID_SEPTENARY_TDM_TX: + case AFE_PORT_ID_SEPTENARY_TDM_RX_1: + case AFE_PORT_ID_SEPTENARY_TDM_TX_1: + case AFE_PORT_ID_SEPTENARY_TDM_RX_2: + case AFE_PORT_ID_SEPTENARY_TDM_TX_2: + case AFE_PORT_ID_SEPTENARY_TDM_RX_3: + case AFE_PORT_ID_SEPTENARY_TDM_TX_3: + case AFE_PORT_ID_SEPTENARY_TDM_RX_4: + case AFE_PORT_ID_SEPTENARY_TDM_TX_4: + case AFE_PORT_ID_SEPTENARY_TDM_RX_5: + case AFE_PORT_ID_SEPTENARY_TDM_TX_5: + case AFE_PORT_ID_SEPTENARY_TDM_RX_6: + case AFE_PORT_ID_SEPTENARY_TDM_TX_6: + case AFE_PORT_ID_SEPTENARY_TDM_RX_7: + case AFE_PORT_ID_SEPTENARY_TDM_TX_7: + case AFE_PORT_ID_HSIF0_TDM_RX: + case AFE_PORT_ID_HSIF0_TDM_TX: + case AFE_PORT_ID_HSIF0_TDM_RX_1: + case AFE_PORT_ID_HSIF0_TDM_TX_1: + case AFE_PORT_ID_HSIF0_TDM_RX_2: + case AFE_PORT_ID_HSIF0_TDM_TX_2: + case AFE_PORT_ID_HSIF0_TDM_RX_3: + case AFE_PORT_ID_HSIF0_TDM_TX_3: + case AFE_PORT_ID_HSIF0_TDM_RX_4: + case AFE_PORT_ID_HSIF0_TDM_TX_4: + case AFE_PORT_ID_HSIF0_TDM_RX_5: + case AFE_PORT_ID_HSIF0_TDM_TX_5: + case AFE_PORT_ID_HSIF0_TDM_RX_6: + case AFE_PORT_ID_HSIF0_TDM_TX_6: + case AFE_PORT_ID_HSIF0_TDM_RX_7: + case AFE_PORT_ID_HSIF0_TDM_TX_7: + case AFE_PORT_ID_HSIF1_TDM_RX: + case AFE_PORT_ID_HSIF1_TDM_TX: + case AFE_PORT_ID_HSIF1_TDM_RX_1: + case AFE_PORT_ID_HSIF1_TDM_TX_1: + case AFE_PORT_ID_HSIF1_TDM_RX_2: + case AFE_PORT_ID_HSIF1_TDM_TX_2: + case AFE_PORT_ID_HSIF1_TDM_RX_3: + case AFE_PORT_ID_HSIF1_TDM_TX_3: + case AFE_PORT_ID_HSIF1_TDM_RX_4: + case AFE_PORT_ID_HSIF1_TDM_TX_4: + case AFE_PORT_ID_HSIF1_TDM_RX_5: + case AFE_PORT_ID_HSIF1_TDM_TX_5: + case AFE_PORT_ID_HSIF1_TDM_RX_6: + case AFE_PORT_ID_HSIF1_TDM_TX_6: + case AFE_PORT_ID_HSIF1_TDM_RX_7: + case AFE_PORT_ID_HSIF1_TDM_TX_7: + case AFE_PORT_ID_HSIF2_TDM_RX: + case AFE_PORT_ID_HSIF2_TDM_TX: + case AFE_PORT_ID_HSIF2_TDM_RX_1: + case AFE_PORT_ID_HSIF2_TDM_TX_1: + case AFE_PORT_ID_HSIF2_TDM_RX_2: + case AFE_PORT_ID_HSIF2_TDM_TX_2: + case AFE_PORT_ID_HSIF2_TDM_RX_3: + case AFE_PORT_ID_HSIF2_TDM_TX_3: + case AFE_PORT_ID_HSIF2_TDM_RX_4: + case AFE_PORT_ID_HSIF2_TDM_TX_4: + case AFE_PORT_ID_HSIF2_TDM_RX_5: + case AFE_PORT_ID_HSIF2_TDM_TX_5: + case AFE_PORT_ID_HSIF2_TDM_RX_6: + case AFE_PORT_ID_HSIF2_TDM_TX_6: + case AFE_PORT_ID_HSIF2_TDM_RX_7: + case AFE_PORT_ID_HSIF2_TDM_TX_7: break; default: ret = -EINVAL; @@ -1212,6 +1532,70 @@ int q6audio_validate_port(u16 port_id) case AFE_PORT_ID_RX_CODEC_DMA_RX_7: case RT_PROXY_PORT_002_RX: case RT_PROXY_PORT_002_TX: + case AFE_PORT_ID_SEPTENARY_TDM_RX: + case AFE_PORT_ID_SEPTENARY_TDM_TX: + case AFE_PORT_ID_SEPTENARY_TDM_RX_1: + case AFE_PORT_ID_SEPTENARY_TDM_TX_1: + case AFE_PORT_ID_SEPTENARY_TDM_RX_2: + case AFE_PORT_ID_SEPTENARY_TDM_TX_2: + case AFE_PORT_ID_SEPTENARY_TDM_RX_3: + case AFE_PORT_ID_SEPTENARY_TDM_TX_3: + case AFE_PORT_ID_SEPTENARY_TDM_RX_4: + case AFE_PORT_ID_SEPTENARY_TDM_TX_4: + case AFE_PORT_ID_SEPTENARY_TDM_RX_5: + case AFE_PORT_ID_SEPTENARY_TDM_TX_5: + case AFE_PORT_ID_SEPTENARY_TDM_RX_6: + case AFE_PORT_ID_SEPTENARY_TDM_TX_6: + case AFE_PORT_ID_SEPTENARY_TDM_RX_7: + case AFE_PORT_ID_SEPTENARY_TDM_TX_7: + case AFE_PORT_ID_HSIF0_TDM_RX: + case AFE_PORT_ID_HSIF0_TDM_TX: + case AFE_PORT_ID_HSIF0_TDM_RX_1: + case AFE_PORT_ID_HSIF0_TDM_TX_1: + case AFE_PORT_ID_HSIF0_TDM_RX_2: + case AFE_PORT_ID_HSIF0_TDM_TX_2: + case AFE_PORT_ID_HSIF0_TDM_RX_3: + case AFE_PORT_ID_HSIF0_TDM_TX_3: + case AFE_PORT_ID_HSIF0_TDM_RX_4: + case AFE_PORT_ID_HSIF0_TDM_TX_4: + case AFE_PORT_ID_HSIF0_TDM_RX_5: + case AFE_PORT_ID_HSIF0_TDM_TX_5: + case AFE_PORT_ID_HSIF0_TDM_RX_6: + case AFE_PORT_ID_HSIF0_TDM_TX_6: + case AFE_PORT_ID_HSIF0_TDM_RX_7: + case AFE_PORT_ID_HSIF0_TDM_TX_7: + case AFE_PORT_ID_HSIF1_TDM_RX: + case AFE_PORT_ID_HSIF1_TDM_TX: + case AFE_PORT_ID_HSIF1_TDM_RX_1: + case AFE_PORT_ID_HSIF1_TDM_TX_1: + case AFE_PORT_ID_HSIF1_TDM_RX_2: + case AFE_PORT_ID_HSIF1_TDM_TX_2: + case AFE_PORT_ID_HSIF1_TDM_RX_3: + case AFE_PORT_ID_HSIF1_TDM_TX_3: + case AFE_PORT_ID_HSIF1_TDM_RX_4: + case AFE_PORT_ID_HSIF1_TDM_TX_4: + case AFE_PORT_ID_HSIF1_TDM_RX_5: + case AFE_PORT_ID_HSIF1_TDM_TX_5: + case AFE_PORT_ID_HSIF1_TDM_RX_6: + case AFE_PORT_ID_HSIF1_TDM_TX_6: + case AFE_PORT_ID_HSIF1_TDM_RX_7: + case AFE_PORT_ID_HSIF1_TDM_TX_7: + case AFE_PORT_ID_HSIF2_TDM_RX: + case AFE_PORT_ID_HSIF2_TDM_TX: + case AFE_PORT_ID_HSIF2_TDM_RX_1: + case AFE_PORT_ID_HSIF2_TDM_TX_1: + case AFE_PORT_ID_HSIF2_TDM_RX_2: + case AFE_PORT_ID_HSIF2_TDM_TX_2: + case AFE_PORT_ID_HSIF2_TDM_RX_3: + case AFE_PORT_ID_HSIF2_TDM_TX_3: + case AFE_PORT_ID_HSIF2_TDM_RX_4: + case AFE_PORT_ID_HSIF2_TDM_TX_4: + case AFE_PORT_ID_HSIF2_TDM_RX_5: + case AFE_PORT_ID_HSIF2_TDM_TX_5: + case AFE_PORT_ID_HSIF2_TDM_RX_6: + case AFE_PORT_ID_HSIF2_TDM_TX_6: + case AFE_PORT_ID_HSIF2_TDM_RX_7: + case AFE_PORT_ID_HSIF2_TDM_TX_7: { ret = 0; break; diff --git a/include/dsp/apr_audio-v2.h b/include/dsp/apr_audio-v2.h index 5abaf15a81e2..a13a01a81fa7 100644 --- a/include/dsp/apr_audio-v2.h +++ b/include/dsp/apr_audio-v2.h @@ -1440,7 +1440,7 @@ struct adm_cmd_connect_afe_port_v5 { /* End of the range of port IDs for TDM devices. */ #define AFE_PORT_ID_TDM_PORT_RANGE_END \ - (AFE_PORT_ID_TDM_PORT_RANGE_START+0x60-1) + (AFE_PORT_ID_TDM_PORT_RANGE_START+0x100-1) /* Size of the range of port IDs for TDM ports. */ #define AFE_PORT_ID_TDM_PORT_RANGE_SIZE \ @@ -1886,6 +1886,142 @@ struct adm_cmd_connect_afe_port_v5 { #define AFE_PORT_ID_SENARY_TDM_TX_7 \ (AFE_PORT_ID_SENARY_TDM_TX + 0x0E) +#define AFE_PORT_ID_SEPTENARY_TDM_RX \ + (AFE_PORT_ID_TDM_PORT_RANGE_START + 0x60) +#define AFE_PORT_ID_SEPTENARY_TDM_RX_1 \ + (AFE_PORT_ID_SEPTENARY_TDM_RX + 0x02) +#define AFE_PORT_ID_SEPTENARY_TDM_RX_2 \ + (AFE_PORT_ID_SEPTENARY_TDM_RX + 0x04) +#define AFE_PORT_ID_SEPTENARY_TDM_RX_3 \ + (AFE_PORT_ID_SEPTENARY_TDM_RX + 0x06) +#define AFE_PORT_ID_SEPTENARY_TDM_RX_4 \ + (AFE_PORT_ID_SEPTENARY_TDM_RX + 0x08) +#define AFE_PORT_ID_SEPTENARY_TDM_RX_5 \ + (AFE_PORT_ID_SEPTENARY_TDM_RX + 0x0A) +#define AFE_PORT_ID_SEPTENARY_TDM_RX_6 \ + (AFE_PORT_ID_SEPTENARY_TDM_RX + 0x0C) +#define AFE_PORT_ID_SEPTENARY_TDM_RX_7 \ + (AFE_PORT_ID_SEPTENARY_TDM_RX + 0x0E) + +#define AFE_PORT_ID_SEPTENARY_TDM_TX \ + (AFE_PORT_ID_TDM_PORT_RANGE_START + 0x61) +#define AFE_PORT_ID_SEPTENARY_TDM_TX_1 \ + (AFE_PORT_ID_SEPTENARY_TDM_TX + 0x02) +#define AFE_PORT_ID_SEPTENARY_TDM_TX_2 \ + (AFE_PORT_ID_SEPTENARY_TDM_TX + 0x04) +#define AFE_PORT_ID_SEPTENARY_TDM_TX_3 \ + (AFE_PORT_ID_SEPTENARY_TDM_TX + 0x06) +#define AFE_PORT_ID_SEPTENARY_TDM_TX_4 \ + (AFE_PORT_ID_SEPTENARY_TDM_TX + 0x08) +#define AFE_PORT_ID_SEPTENARY_TDM_TX_5 \ + (AFE_PORT_ID_SEPTENARY_TDM_TX + 0x0A) +#define AFE_PORT_ID_SEPTENARY_TDM_TX_6 \ + (AFE_PORT_ID_SEPTENARY_TDM_TX + 0x0C) +#define AFE_PORT_ID_SEPTENARY_TDM_TX_7 \ + (AFE_PORT_ID_SEPTENARY_TDM_TX + 0x0E) + +#define AFE_PORT_ID_HSIF0_TDM_RX \ + (AFE_PORT_ID_TDM_PORT_RANGE_START + 0x70) +#define AFE_PORT_ID_HSIF0_TDM_RX_1 \ + (AFE_PORT_ID_HSIF0_TDM_RX + 0x02) +#define AFE_PORT_ID_HSIF0_TDM_RX_2 \ + (AFE_PORT_ID_HSIF0_TDM_RX + 0x04) +#define AFE_PORT_ID_HSIF0_TDM_RX_3 \ + (AFE_PORT_ID_HSIF0_TDM_RX + 0x06) +#define AFE_PORT_ID_HSIF0_TDM_RX_4 \ + (AFE_PORT_ID_HSIF0_TDM_RX + 0x08) +#define AFE_PORT_ID_HSIF0_TDM_RX_5 \ + (AFE_PORT_ID_HSIF0_TDM_RX + 0x0A) +#define AFE_PORT_ID_HSIF0_TDM_RX_6 \ + (AFE_PORT_ID_HSIF0_TDM_RX + 0x0C) +#define AFE_PORT_ID_HSIF0_TDM_RX_7 \ + (AFE_PORT_ID_HSIF0_TDM_RX + 0x0E) + +#define AFE_PORT_ID_HSIF0_TDM_TX \ + (AFE_PORT_ID_TDM_PORT_RANGE_START + 0x71) +#define AFE_PORT_ID_HSIF0_TDM_TX_1 \ + (AFE_PORT_ID_HSIF0_TDM_TX + 0x02) +#define AFE_PORT_ID_HSIF0_TDM_TX_2 \ + (AFE_PORT_ID_HSIF0_TDM_TX + 0x04) +#define AFE_PORT_ID_HSIF0_TDM_TX_3 \ + (AFE_PORT_ID_HSIF0_TDM_TX + 0x06) +#define AFE_PORT_ID_HSIF0_TDM_TX_4 \ + (AFE_PORT_ID_HSIF0_TDM_TX + 0x08) +#define AFE_PORT_ID_HSIF0_TDM_TX_5 \ + (AFE_PORT_ID_HSIF0_TDM_TX + 0x0A) +#define AFE_PORT_ID_HSIF0_TDM_TX_6 \ + (AFE_PORT_ID_HSIF0_TDM_TX + 0x0C) +#define AFE_PORT_ID_HSIF0_TDM_TX_7 \ + (AFE_PORT_ID_HSIF0_TDM_TX + 0x0E) + +#define AFE_PORT_ID_HSIF1_TDM_RX \ + (AFE_PORT_ID_TDM_PORT_RANGE_START + 0x80) +#define AFE_PORT_ID_HSIF1_TDM_RX_1 \ + (AFE_PORT_ID_HSIF1_TDM_RX + 0x02) +#define AFE_PORT_ID_HSIF1_TDM_RX_2 \ + (AFE_PORT_ID_HSIF1_TDM_RX + 0x04) +#define AFE_PORT_ID_HSIF1_TDM_RX_3 \ + (AFE_PORT_ID_HSIF1_TDM_RX + 0x06) +#define AFE_PORT_ID_HSIF1_TDM_RX_4 \ + (AFE_PORT_ID_HSIF1_TDM_RX + 0x08) +#define AFE_PORT_ID_HSIF1_TDM_RX_5 \ + (AFE_PORT_ID_HSIF1_TDM_RX + 0x0A) +#define AFE_PORT_ID_HSIF1_TDM_RX_6 \ + (AFE_PORT_ID_HSIF1_TDM_RX + 0x0C) +#define AFE_PORT_ID_HSIF1_TDM_RX_7 \ + (AFE_PORT_ID_HSIF1_TDM_RX + 0x0E) + +#define AFE_PORT_ID_HSIF1_TDM_TX \ + (AFE_PORT_ID_TDM_PORT_RANGE_START + 0x81) +#define AFE_PORT_ID_HSIF1_TDM_TX_1 \ + (AFE_PORT_ID_HSIF1_TDM_TX + 0x02) +#define AFE_PORT_ID_HSIF1_TDM_TX_2 \ + (AFE_PORT_ID_HSIF1_TDM_TX + 0x04) +#define AFE_PORT_ID_HSIF1_TDM_TX_3 \ + (AFE_PORT_ID_HSIF1_TDM_TX + 0x06) +#define AFE_PORT_ID_HSIF1_TDM_TX_4 \ + (AFE_PORT_ID_HSIF1_TDM_TX + 0x08) +#define AFE_PORT_ID_HSIF1_TDM_TX_5 \ + (AFE_PORT_ID_HSIF1_TDM_TX + 0x0A) +#define AFE_PORT_ID_HSIF1_TDM_TX_6 \ + (AFE_PORT_ID_HSIF1_TDM_TX + 0x0C) +#define AFE_PORT_ID_HSIF1_TDM_TX_7 \ + (AFE_PORT_ID_HSIF1_TDM_TX + 0x0E) + +#define AFE_PORT_ID_HSIF2_TDM_RX \ + (AFE_PORT_ID_TDM_PORT_RANGE_START + 0x90) +#define AFE_PORT_ID_HSIF2_TDM_RX_1 \ + (AFE_PORT_ID_HSIF2_TDM_RX + 0x02) +#define AFE_PORT_ID_HSIF2_TDM_RX_2 \ + (AFE_PORT_ID_HSIF2_TDM_RX + 0x04) +#define AFE_PORT_ID_HSIF2_TDM_RX_3 \ + (AFE_PORT_ID_HSIF2_TDM_RX + 0x06) +#define AFE_PORT_ID_HSIF2_TDM_RX_4 \ + (AFE_PORT_ID_HSIF2_TDM_RX + 0x08) +#define AFE_PORT_ID_HSIF2_TDM_RX_5 \ + (AFE_PORT_ID_HSIF2_TDM_RX + 0x0A) +#define AFE_PORT_ID_HSIF2_TDM_RX_6 \ + (AFE_PORT_ID_HSIF2_TDM_RX + 0x0C) +#define AFE_PORT_ID_HSIF2_TDM_RX_7 \ + (AFE_PORT_ID_HSIF2_TDM_RX + 0x0E) + +#define AFE_PORT_ID_HSIF2_TDM_TX \ + (AFE_PORT_ID_TDM_PORT_RANGE_START + 0x91) +#define AFE_PORT_ID_HSIF2_TDM_TX_1 \ + (AFE_PORT_ID_HSIF2_TDM_TX + 0x02) +#define AFE_PORT_ID_HSIF2_TDM_TX_2 \ + (AFE_PORT_ID_HSIF2_TDM_TX + 0x04) +#define AFE_PORT_ID_HSIF2_TDM_TX_3 \ + (AFE_PORT_ID_HSIF2_TDM_TX + 0x06) +#define AFE_PORT_ID_HSIF2_TDM_TX_4 \ + (AFE_PORT_ID_HSIF2_TDM_TX + 0x08) +#define AFE_PORT_ID_HSIF2_TDM_TX_5 \ + (AFE_PORT_ID_HSIF2_TDM_TX + 0x0A) +#define AFE_PORT_ID_HSIF2_TDM_TX_6 \ + (AFE_PORT_ID_HSIF2_TDM_TX + 0x0C) +#define AFE_PORT_ID_HSIF2_TDM_TX_7 \ + (AFE_PORT_ID_HSIF2_TDM_TX + 0x0E) + #define AFE_PORT_ID_INVALID 0xFFFF #define AAC_ENC_MODE_AAC_LC 0x02 @@ -12181,6 +12317,22 @@ enum afe_lpass_clk_mode { #define Q6AFE_LPASS_CLK_ID_SEN_TDM_IBIT 0x20B /** Clock ID for Senary TDM EBIT */ #define Q6AFE_LPASS_CLK_ID_SEN_TDM_EBIT 0x20C +/** Clock ID for Septenary TDM IBIT */ +#define Q6AFE_LPASS_CLK_ID_SEP_TDM_IBIT 0x20D +/** Clock ID for Septenary TDM EBIT */ +#define Q6AFE_LPASS_CLK_ID_SEP_TDM_EBIT 0x20E +/** Clock ID for Hsif0 TDM IBIT */ +#define Q6AFE_LPASS_CLK_ID_HSIF0_TDM_IBIT 0x20F +/** Clock ID for Hsif0 TDM EBIT */ +#define Q6AFE_LPASS_CLK_ID_HSIF0_TDM_EBIT 0x210 +/** Clock ID for Hsif1 TDM IBIT */ +#define Q6AFE_LPASS_CLK_ID_HSIF1_TDM_IBIT 0x211 +/** Clock ID for Hsif1 TDM EBIT */ +#define Q6AFE_LPASS_CLK_ID_HSIF1_TDM_EBIT 0x212 +/** Clock ID for Hsif2 TDM IBIT */ +#define Q6AFE_LPASS_CLK_ID_HSIF2_TDM_IBIT 0x213 +/** Clock ID for Hsif2 TDM EBIT */ +#define Q6AFE_LPASS_CLK_ID_HSIF2_TDM_EBIT 0x214 /* Clock ID for MCLK1 */ #define Q6AFE_LPASS_CLK_ID_MCLK_1 0x300 @@ -12635,7 +12787,22 @@ struct afe_group_device_group_cfg { (AFE_PORT_ID_SENARY_TDM_RX + 0x100) #define AFE_GROUP_DEVICE_ID_SENARY_TDM_TX \ (AFE_PORT_ID_SENARY_TDM_TX + 0x100) - +#define AFE_GROUP_DEVICE_ID_SEPTENARY_TDM_RX \ + (AFE_PORT_ID_SEPTENARY_TDM_RX + 0x100) +#define AFE_GROUP_DEVICE_ID_SEPTENARY_TDM_TX \ + (AFE_PORT_ID_SEPTENARY_TDM_TX + 0x100) +#define AFE_GROUP_DEVICE_ID_HSIF0_TDM_RX \ + (AFE_PORT_ID_HSIF0_TDM_RX + 0x100) +#define AFE_GROUP_DEVICE_ID_HSIF0_TDM_TX \ + (AFE_PORT_ID_HSIF0_TDM_TX + 0x100) +#define AFE_GROUP_DEVICE_ID_HSIF1_TDM_RX \ + (AFE_PORT_ID_HSIF1_TDM_RX + 0x100) +#define AFE_GROUP_DEVICE_ID_HSIF1_TDM_TX \ + (AFE_PORT_ID_HSIF1_TDM_TX + 0x100) +#define AFE_GROUP_DEVICE_ID_HSIF2_TDM_RX \ + (AFE_PORT_ID_HSIF2_TDM_RX + 0x100) +#define AFE_GROUP_DEVICE_ID_HSIF2_TDM_TX \ + (AFE_PORT_ID_HSIF2_TDM_TX + 0x100) /* ID of the parameter used by #AFE_MODULE_GROUP_DEVICE to configure the * group device. #AFE_SVC_CMD_SET_PARAM can use this parameter ID. * diff --git a/include/dsp/q6afe-v2.h b/include/dsp/q6afe-v2.h index ba4e19be3535..48209087a8a2 100644 --- a/include/dsp/q6afe-v2.h +++ b/include/dsp/q6afe-v2.h @@ -305,6 +305,74 @@ enum { IDX_RT_PROXY_PORT_002_TX, /* IDX 212 */ IDX_HDMI_RX_MS, + /* IDX 213-> 228 */ + IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_0, + IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_0, + IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_1, + IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_1, + IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_2, + IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_2, + IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_3, + IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_3, + IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_4, + IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_4, + IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_5, + IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_5, + IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_6, + IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_6, + IDX_AFE_PORT_ID_SEPTENARY_TDM_RX_7, + IDX_AFE_PORT_ID_SEPTENARY_TDM_TX_7, + /* IDX 229-> 244 */ + IDX_AFE_PORT_ID_HSIF0_TDM_RX_0, + IDX_AFE_PORT_ID_HSIF0_TDM_TX_0, + IDX_AFE_PORT_ID_HSIF0_TDM_RX_1, + IDX_AFE_PORT_ID_HSIF0_TDM_TX_1, + IDX_AFE_PORT_ID_HSIF0_TDM_RX_2, + IDX_AFE_PORT_ID_HSIF0_TDM_TX_2, + IDX_AFE_PORT_ID_HSIF0_TDM_RX_3, + IDX_AFE_PORT_ID_HSIF0_TDM_TX_3, + IDX_AFE_PORT_ID_HSIF0_TDM_RX_4, + IDX_AFE_PORT_ID_HSIF0_TDM_TX_4, + IDX_AFE_PORT_ID_HSIF0_TDM_RX_5, + IDX_AFE_PORT_ID_HSIF0_TDM_TX_5, + IDX_AFE_PORT_ID_HSIF0_TDM_RX_6, + IDX_AFE_PORT_ID_HSIF0_TDM_TX_6, + IDX_AFE_PORT_ID_HSIF0_TDM_RX_7, + IDX_AFE_PORT_ID_HSIF0_TDM_TX_7, + /* IDX 244-> 259 */ + IDX_AFE_PORT_ID_HSIF1_TDM_RX_0, + IDX_AFE_PORT_ID_HSIF1_TDM_TX_0, + IDX_AFE_PORT_ID_HSIF1_TDM_RX_1, + IDX_AFE_PORT_ID_HSIF1_TDM_TX_1, + IDX_AFE_PORT_ID_HSIF1_TDM_RX_2, + IDX_AFE_PORT_ID_HSIF1_TDM_TX_2, + IDX_AFE_PORT_ID_HSIF1_TDM_RX_3, + IDX_AFE_PORT_ID_HSIF1_TDM_TX_3, + IDX_AFE_PORT_ID_HSIF1_TDM_RX_4, + IDX_AFE_PORT_ID_HSIF1_TDM_TX_4, + IDX_AFE_PORT_ID_HSIF1_TDM_RX_5, + IDX_AFE_PORT_ID_HSIF1_TDM_TX_5, + IDX_AFE_PORT_ID_HSIF1_TDM_RX_6, + IDX_AFE_PORT_ID_HSIF1_TDM_TX_6, + IDX_AFE_PORT_ID_HSIF1_TDM_RX_7, + IDX_AFE_PORT_ID_HSIF1_TDM_TX_7, + /* IDX 260-> 275 */ + IDX_AFE_PORT_ID_HSIF2_TDM_RX_0, + IDX_AFE_PORT_ID_HSIF2_TDM_TX_0, + IDX_AFE_PORT_ID_HSIF2_TDM_RX_1, + IDX_AFE_PORT_ID_HSIF2_TDM_TX_1, + IDX_AFE_PORT_ID_HSIF2_TDM_RX_2, + IDX_AFE_PORT_ID_HSIF2_TDM_TX_2, + IDX_AFE_PORT_ID_HSIF2_TDM_RX_3, + IDX_AFE_PORT_ID_HSIF2_TDM_TX_3, + IDX_AFE_PORT_ID_HSIF2_TDM_RX_4, + IDX_AFE_PORT_ID_HSIF2_TDM_TX_4, + IDX_AFE_PORT_ID_HSIF2_TDM_RX_5, + IDX_AFE_PORT_ID_HSIF2_TDM_TX_5, + IDX_AFE_PORT_ID_HSIF2_TDM_RX_6, + IDX_AFE_PORT_ID_HSIF2_TDM_TX_6, + IDX_AFE_PORT_ID_HSIF2_TDM_RX_7, + IDX_AFE_PORT_ID_HSIF2_TDM_TX_7, AFE_MAX_PORTS };