Merge "ASoC: Add support for tx data lane3 for lito v2"

This commit is contained in:
qctecmdr
2019-09-20 00:23:14 -07:00
committed by Gerrit - the friendly Code Review server
2 changed files with 32 additions and 2 deletions

View File

@@ -50,6 +50,15 @@ static struct port_params tx_frame_params_default[SWR_MSTR_PORT_LEN] = {
{3, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 1}, /* TX4 */
};
/* TX UC1: TX1: 1ch, TX2: 2chs, TX3: 1ch(MBHC) */
static struct port_params tx_frame_params_v2[SWR_MSTR_PORT_LEN] = {
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},/* PCM OUT */
{1, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 1}, /* TX1 */
{1, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2}, /* TX2 */
{3, 2, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0}, /* TX3 */
{3, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2}, /* TX4 */
};
static struct swr_mstr_port_map sm_port_map[] = {
{TX_MACRO, SWR_UC0, tx_frame_params_default},
{RX_MACRO, SWR_UC0, rx_frame_params_default},
@@ -57,4 +66,11 @@ static struct swr_mstr_port_map sm_port_map[] = {
{WSA_MACRO, SWR_UC0, wsa_frame_params_default},
};
static struct swr_mstr_port_map sm_port_map_v2[] = {
{TX_MACRO, SWR_UC0, tx_frame_params_v2},
{RX_MACRO, SWR_UC0, rx_frame_params_default},
{RX_MACRO, SWR_UC1, rx_frame_params_dsd},
{WSA_MACRO, SWR_UC0, wsa_frame_params_default},
};
#endif /* _KONA_PORT_CONFIG */

View File

@@ -167,6 +167,7 @@ enum {
struct msm_asoc_mach_data {
struct snd_info_entry *codec_root;
int usbc_en2_gpio; /* used by gpio driver API */
int lito_v2_enabled;
struct device_node *dmic01_gpio_p; /* used by pinctrl API */
struct device_node *dmic23_gpio_p; /* used by pinctrl API */
struct device_node *dmic45_gpio_p; /* used by pinctrl API */
@@ -5288,8 +5289,17 @@ static int msm_int_audrx_init(struct snd_soc_pcm_runtime *rtd)
WSA_MACRO_GAIN_OFFSET_M1P5_DB);
}
}
bolero_set_port_map(component, ARRAY_SIZE(sm_port_map),
sm_port_map);
if (pdata->lito_v2_enabled) {
/*
* Enable tx data line3 for saipan version v2 amd
* write corresponding lpi register.
*/
bolero_set_port_map(component, ARRAY_SIZE(sm_port_map_v2),
sm_port_map_v2);
} else {
bolero_set_port_map(component, ARRAY_SIZE(sm_port_map),
sm_port_map);
}
}
card = rtd->card->snd_card;
if (!pdata->codec_root) {
@@ -7898,6 +7908,10 @@ static int msm_asoc_machine_probe(struct platform_device *pdev)
if (!pdata)
return -ENOMEM;
of_property_read_u32(pdev->dev.of_node,
"qcom,lito-is-v2-enabled",
&pdata->lito_v2_enabled);
card = populate_snd_card_dailinks(&pdev->dev);
if (!card) {
dev_err(&pdev->dev, "%s: Card uninitialized\n", __func__);