diff options
-rw-r--r-- | sound/soc/codecs/da7213.c | 13 | ||||
-rw-r--r-- | sound/soc/codecs/da7213.h | 3 |
2 files changed, 16 insertions, 0 deletions
diff --git a/sound/soc/codecs/da7213.c b/sound/soc/codecs/da7213.c index 680d11116ccf..657b7eba9954 100644 --- a/sound/soc/codecs/da7213.c +++ b/sound/soc/codecs/da7213.c | |||
@@ -746,6 +746,10 @@ static int da7213_dai_event(struct snd_soc_dapm_widget *w, | |||
746 | DA7213_DAI_CLK_EN_MASK, | 746 | DA7213_DAI_CLK_EN_MASK, |
747 | DA7213_DAI_CLK_EN_MASK); | 747 | DA7213_DAI_CLK_EN_MASK); |
748 | 748 | ||
749 | /* PC synchronised to DAI */ | ||
750 | snd_soc_update_bits(codec, DA7213_PC_COUNT, | ||
751 | DA7213_PC_FREERUN_MASK, 0); | ||
752 | |||
749 | /* Slave mode, if SRM not enabled no need for status checks */ | 753 | /* Slave mode, if SRM not enabled no need for status checks */ |
750 | pll_ctrl = snd_soc_read(codec, DA7213_PLL_CTRL); | 754 | pll_ctrl = snd_soc_read(codec, DA7213_PLL_CTRL); |
751 | if (!(pll_ctrl & DA7213_PLL_SRM_EN)) | 755 | if (!(pll_ctrl & DA7213_PLL_SRM_EN)) |
@@ -767,6 +771,11 @@ static int da7213_dai_event(struct snd_soc_dapm_widget *w, | |||
767 | 771 | ||
768 | return 0; | 772 | return 0; |
769 | case SND_SOC_DAPM_POST_PMD: | 773 | case SND_SOC_DAPM_POST_PMD: |
774 | /* PC free-running */ | ||
775 | snd_soc_update_bits(codec, DA7213_PC_COUNT, | ||
776 | DA7213_PC_FREERUN_MASK, | ||
777 | DA7213_PC_FREERUN_MASK); | ||
778 | |||
770 | /* Disable DAI clks if in master mode */ | 779 | /* Disable DAI clks if in master mode */ |
771 | if (da7213->master) | 780 | if (da7213->master) |
772 | snd_soc_update_bits(codec, DA7213_DAI_CLK_MODE, | 781 | snd_soc_update_bits(codec, DA7213_DAI_CLK_MODE, |
@@ -1599,6 +1608,10 @@ static int da7213_probe(struct snd_soc_codec *codec) | |||
1599 | /* Default to using SRM for slave mode */ | 1608 | /* Default to using SRM for slave mode */ |
1600 | da7213->srm_en = true; | 1609 | da7213->srm_en = true; |
1601 | 1610 | ||
1611 | /* Default PC counter to free-running */ | ||
1612 | snd_soc_update_bits(codec, DA7213_PC_COUNT, DA7213_PC_FREERUN_MASK, | ||
1613 | DA7213_PC_FREERUN_MASK); | ||
1614 | |||
1602 | /* Enable all Gain Ramps */ | 1615 | /* Enable all Gain Ramps */ |
1603 | snd_soc_update_bits(codec, DA7213_AUX_L_CTRL, | 1616 | snd_soc_update_bits(codec, DA7213_AUX_L_CTRL, |
1604 | DA7213_GAIN_RAMP_EN, DA7213_GAIN_RAMP_EN); | 1617 | DA7213_GAIN_RAMP_EN, DA7213_GAIN_RAMP_EN); |
diff --git a/sound/soc/codecs/da7213.h b/sound/soc/codecs/da7213.h index af75340dea63..26b87e3c3088 100644 --- a/sound/soc/codecs/da7213.h +++ b/sound/soc/codecs/da7213.h | |||
@@ -413,6 +413,9 @@ | |||
413 | #define DA7213_DMIC_CLK_RATE_SHIFT 2 | 413 | #define DA7213_DMIC_CLK_RATE_SHIFT 2 |
414 | #define DA7213_DMIC_CLK_RATE_MASK (0x1 << 2) | 414 | #define DA7213_DMIC_CLK_RATE_MASK (0x1 << 2) |
415 | 415 | ||
416 | /* DA7213_PC_COUNT = 0x94 */ | ||
417 | #define DA7213_PC_FREERUN_MASK (0x1 << 0) | ||
418 | |||
416 | /* DA7213_DIG_CTRL = 0x99 */ | 419 | /* DA7213_DIG_CTRL = 0x99 */ |
417 | #define DA7213_DAC_L_INV_SHIFT 3 | 420 | #define DA7213_DAC_L_INV_SHIFT 3 |
418 | #define DA7213_DAC_R_INV_SHIFT 7 | 421 | #define DA7213_DAC_R_INV_SHIFT 7 |