Skip to content
Rick edited this page Oct 3, 2015 · 5 revisions

On the AM335x, digital sound is sent from the McASP interface to a CODEC (in this case, the TI tlv320aic3104). Several files/drivers in Linux play a role in making this work.

  • sound/soc/codec/tlv320aic3x.c|.h
  • sound/soc/davinci/davinci-evm.c
  • sound/soc/davinci/davinci-mcasp.c
  • arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
  • arch/arm/mach-omap2/omap_hwmod_33xx_43xx_interconnect_data.c
  • drivers/clk/ti/clk-33xx.c

Questions

  • Is da830 for playback only, and da850 for playback and capture?
  • What is "davinci-mcasp.0" vs "davinci-mcasp.1"? Seems like one can only do playback. The dai link for da830 (the one we were told to use in the DTS) connects to davinci-mcasp.1, which can only do playback. These may not be related to the mcasp0/1 peripheral on the SoC.

mcasp0

omap_hwmod_33xx_43xx_ipblock_data.c

The da830_evm_dai (corresponding to the DTS entry for the sound card) is found in davinci-evm.c.

Setting Clocks

The McASP (mcasp0) needs to generate the master clock. This is known as mclk to the CODEC, and mcasp0_fck to the mcasp0 peripheral on the AM335x. The driver data structure is am33xx_mcasp0_hwmod (defined in omap_hwmod_33xx_43xx_ipblock_data).

Clone this wiki locally