ASoC: McASP: implement a way to force BCLK/LRCLK ratios
authorDaniel Mack <zonque@gmail.com>
Wed, 5 Dec 2012 17:20:38 +0000 (18:20 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 7 Dec 2012 05:47:10 +0000 (14:47 +0900)
commit1b3bc060fb008ddd75fe60c876c24784a517c10c
tree5cad74b24aec395aef242745a6c8c9d5a890318b
parentba764b3def0b979fd22884779f1a02f701e3af72
ASoC: McASP: implement a way to force BCLK/LRCLK ratios

Depending on the Codec, the the BCLK/LRCLK ratio might not be freely
chosen by the CPU DAI.

For example, some Codec might want to be supplied with 32-bit samples
for both its channels regardless of the actual audio word size the CPU
sends. In such cases, the rest of the bits on the data lines must be
padded with zeros:

          _______________________________
LRCLK    /                               \
      --'                                 `---------- .....

BCLK  ||||||||||||||||||||||||||||||||||||||||||||||| .....

DATA  ____||||||||||||||||_________________|||||||||| .....

          |<--  data  -->|<--   pads  --> |

This patch adds a new clock divider to configure the BCLK/LRCLK ratio.
If the machine code uses that divider, the driver uses the specified
value, instead of deriving that information from the audio word size.

Otherwise, the original behaviour is retained.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/davinci/davinci-mcasp.c
sound/soc/davinci/davinci-mcasp.h