mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 07:03:09 -04:00
ASoC: codecs: enable swr dmic for va
Enable soundwire dmic's for VA macro. Change-Id: Ie88ad57f1906ea81363cffd2ae5904f0a5de7bdc Signed-off-by: Vignesh Kulothungan <vigneshk@codeaurora.org>
This commit is contained in:
parent
47aa501123
commit
5a5e32093f
1 changed files with 36 additions and 0 deletions
|
|
@ -1068,6 +1068,7 @@ static int va_macro_enable_dec(struct snd_soc_dapm_widget *w,
|
|||
u16 tx_vol_ctl_reg, dec_cfg_reg, hpf_gate_reg;
|
||||
u16 tx_gain_ctl_reg;
|
||||
u8 hpf_cut_off_freq;
|
||||
u16 adc_mux_reg = 0;
|
||||
struct device *va_dev = NULL;
|
||||
struct va_macro_priv *va_priv = NULL;
|
||||
int hpf_delay = BOLERO_CDC_VA_TX_DMIC_HPF_DELAY_MS;
|
||||
|
|
@ -1089,6 +1090,8 @@ static int va_macro_enable_dec(struct snd_soc_dapm_widget *w,
|
|||
VA_MACRO_TX_PATH_OFFSET * decimator;
|
||||
tx_gain_ctl_reg = BOLERO_CDC_VA_TX0_TX_VOL_CTL +
|
||||
VA_MACRO_TX_PATH_OFFSET * decimator;
|
||||
adc_mux_reg = BOLERO_CDC_VA_INP_MUX_ADC_MUX0_CFG1 +
|
||||
VA_MACRO_ADC_MUX_CFG_OFFSET * decimator;
|
||||
|
||||
switch (event) {
|
||||
case SND_SOC_DAPM_PRE_PMU:
|
||||
|
|
@ -1149,6 +1152,32 @@ static int va_macro_enable_dec(struct snd_soc_dapm_widget *w,
|
|||
/* apply gain after decimator is enabled */
|
||||
snd_soc_component_write(component, tx_gain_ctl_reg,
|
||||
snd_soc_component_read32(component, tx_gain_ctl_reg));
|
||||
if (va_priv->version == BOLERO_VERSION_2_0) {
|
||||
if (snd_soc_component_read32(component, adc_mux_reg)
|
||||
& SWR_MIC) {
|
||||
snd_soc_component_update_bits(component,
|
||||
BOLERO_CDC_TX_TOP_CSR_SWR_CTRL,
|
||||
0x01, 0x01);
|
||||
snd_soc_component_update_bits(component,
|
||||
BOLERO_CDC_TX_TOP_CSR_SWR_MIC0_CTL,
|
||||
0x0E, 0x0C);
|
||||
snd_soc_component_update_bits(component,
|
||||
BOLERO_CDC_TX_TOP_CSR_SWR_MIC1_CTL,
|
||||
0x0E, 0x0C);
|
||||
snd_soc_component_update_bits(component,
|
||||
BOLERO_CDC_TX_TOP_CSR_SWR_MIC2_CTL,
|
||||
0x0E, 0x00);
|
||||
snd_soc_component_update_bits(component,
|
||||
BOLERO_CDC_TX_TOP_CSR_SWR_MIC3_CTL,
|
||||
0x0E, 0x00);
|
||||
snd_soc_component_update_bits(component,
|
||||
BOLERO_CDC_TX_TOP_CSR_SWR_MIC4_CTL,
|
||||
0x0E, 0x00);
|
||||
snd_soc_component_update_bits(component,
|
||||
BOLERO_CDC_TX_TOP_CSR_SWR_MIC5_CTL,
|
||||
0x0E, 0x00);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case SND_SOC_DAPM_PRE_PMD:
|
||||
hpf_cut_off_freq =
|
||||
|
|
@ -1177,6 +1206,13 @@ static int va_macro_enable_dec(struct snd_soc_dapm_widget *w,
|
|||
}
|
||||
cancel_delayed_work_sync(
|
||||
&va_priv->va_mute_dwork[decimator].dwork);
|
||||
if (va_priv->version == BOLERO_VERSION_2_0) {
|
||||
if (snd_soc_component_read32(component, adc_mux_reg)
|
||||
& SWR_MIC)
|
||||
snd_soc_component_update_bits(component,
|
||||
BOLERO_CDC_TX_TOP_CSR_SWR_CTRL,
|
||||
0x01, 0x00);
|
||||
}
|
||||
break;
|
||||
case SND_SOC_DAPM_POST_PMD:
|
||||
/* Disable TX CLK */
|
||||
|
|
|
|||
Loading…
Reference in a new issue