AnsweredAssumed Answered

i.MX6 Audmux settings with tlv320aic31xx codec

Question asked by Jeff White on Oct 20, 2015
Latest reply on Oct 21, 2015 by igorpadykov

Hi,

 

We have a custom board with an i.MX6 with a tlv320dac3100 codec attached (using the tlv320aic31xx driver as suggested by TI). I've followed the Linux porting guide, but still having issues getting i2s working properly. I don't see a bitclock or frame clock.

 

I'm trying to set up the audmux for ssi2 and pins5. Also note that we are not using any inputs thus RX is not connected.

 

Configuration:

tlv320aic <- AUD5 <-> SSI2

 

I have the following audmux configuration in my ported driver:

 

int_port--;

ext_port--;

ret = imx_audmux_v2_configure_port(int_port,

  IMX_AUDMUX_V2_PTCR_SYN, // |

  IMX_AUDMUX_V2_PTCR_TFSEL(ext_port) |

  IMX_AUDMUX_V2_PTCR_TCSEL(ext_port) |

  IMX_AUDMUX_V2_PTCR_TFSDIR |

  IMX_AUDMUX_V2_PTCR_TCLKDIR,

  IMX_AUDMUX_V2_PDCR_RXDSEL(ext_port));

 

imx_audmux_v2_configure_port(ext_port,

  IMX_AUDMUX_V2_PTCR_SYN,

  IMX_AUDMUX_V2_PDCR_RXDSEL(int_port));

 

int_port is passed in as 2 and ext_port is passed in as 5.

 

I'm also setting the codec as the master:

u32 dai_format = SND_SOC_DAIFMT_I2S |

  SND_SOC_DAIFMT_NB_NF |

  SND_SOC_DAIFMT_CBS_CFM;

 

  /* set codec DAI configuration */

  ret = snd_soc_dai_set_fmt(codec_dai, dai_format);

  if (ret) {

  printk(KERN_ERR "failed to set codec dai fmt: %d\n", ret);

  return ret;

  }

 

Thoughts?

 

Thanks,

Jeff

Outcomes