diff options
-rw-r--r-- | sound/soc/ux500/ux500_ab5500.c | 7 | ||||
-rw-r--r-- | sound/soc/ux500/ux500_msp_dai.c | 9 |
2 files changed, 14 insertions, 2 deletions
diff --git a/sound/soc/ux500/ux500_ab5500.c b/sound/soc/ux500/ux500_ab5500.c index 551ec05fcb5..021ae1cd75c 100644 --- a/sound/soc/ux500/ux500_ab5500.c +++ b/sound/soc/ux500/ux500_ab5500.c @@ -14,6 +14,8 @@ #include <sound/soc.h> #include "../codecs/ab5500.h" +#include "ux500_msp_dai.h" + int ux500_ab5500_startup(struct snd_pcm_substream *substream) { return 0; @@ -44,14 +46,15 @@ int ux500_ab5500_hw_params(struct snd_pcm_substream *substream, printk(KERN_DEBUG "%s: DAI-index (Platform): %d\n", __func__, cpu_dai->id); ret = snd_soc_dai_set_fmt(codec_dai, - SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS); + SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM); if (ret < 0) return ret; ret = snd_soc_dai_set_fmt(cpu_dai, - SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS); + SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM); if (ret < 0) return ret; + ux500_msp_dai_set_data_delay(cpu_dai, MSP_DELAY_1); return ret; } diff --git a/sound/soc/ux500/ux500_msp_dai.c b/sound/soc/ux500/ux500_msp_dai.c index 430b18906da..ad698d979f6 100644 --- a/sound/soc/ux500/ux500_msp_dai.c +++ b/sound/soc/ux500/ux500_msp_dai.c @@ -362,6 +362,15 @@ static void ux500_msp_dai_setup_clocking(unsigned int fmt, msp_config->tx_clock_sel = 0; msp_config->rx_clock_sel = 0; msp_config->srg_clock_sel = 0x2 << SCKSEL_SHIFT; + + msp_config->iodelay = 0x20; + msp_config->protocol_desc.tx_clock_pol = 1; + msp_config->tx_fifo_config = 1 << TFFEN_SHIFT; + msp_config->tx_frame_sync_pol = 1 << TFSPOL_SHIFT; + msp_config->protocol_desc.rx_clock_pol = 1; + msp_config->rx_fifo_config = 1 << RFFEN_SHIFT; + msp_config->rx_frame_sync_pol = 1 << RFSPOL_SHIFT; + } else { pr_debug("%s: Codec is SLAVE.\n", __func__); |