• Adam Thomson's avatar
    ASoC: da7219: Update TDM usage to be more flexible · 541ccdc1
    Adam Thomson authored
    The previous implementatation was restrictive with regards to
    BCLK rates for slave mode where the driver would not allow rates
    the codec couldn't provide itself as clock master. The codec
    is able to automatically determine and handle whatever rate is
    provided so this restriction isn't necessary for slave mode. The
    code was also flawed with regards to setting of the frame offset
    as using rx_mask to explicitly set the offset has the knock on
    effect of impacting the min and max channels for the codec, in
    soc_pcm_hw_params() through the call to
    soc_pcm_codec_params_fixup().
    
    With this update, the driver now only limits frame size if codec
    is clock master, and dynamically determines the BCLK offset
    relating to WCLK using the tx_mask for slot offset along with the
    slot width provided.
    Signed-off-by: default avatarAdam Thomson <Adam.Thomson.Opensource@diasemi.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    541ccdc1
da7219.c 69.3 KB