• Daniel Mack's avatar
    ASoC: McASP: implement a way to force BCLK/LRCLK ratios · 1b3bc060
    Daniel Mack authored
    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: default avatarDaniel Mack <zonque@gmail.com>
    Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    1b3bc060
davinci-mcasp.c 32.6 KB