• Mohan Kumar's avatar
    ASoC: tegra: I2S client convert formats handling · 2502f8dd
    Mohan Kumar authored
    The AHUB HW modules are interconnected with CIF which are capable of
    supporting Channel and Sample bit format conversion. Due to this, the
    I2S Client can have different Channel and Sample bit from the hw_params()
    and this config is passed from CIF port of I2S DT node which can help to
    perform this conversion.
    
    For e.g. HFP usecase consists of BT SCO with 1ch and 8k audio data
    which needs to be converted and mixed with external codec playback and
    capture path which is of 2ch and 48k format.
    
    For HFP Playback:
      The path includes mono to stereo and 8k to 48k conversion
        _ _ _ _       _ _ _          _ _ _        _ _ _ _ _       _ _ _ _ _ _
       |       |1ch  |      | 1ch   |     |2ch   | SFC     | 2ch |           |
       |BT SCO |---->| I2Sx |------>| CIF |----->| 8k->48k |---->| Codec I2Sy|
       |_ _ _ _|     |_ _ __|client |_ _ _|audio |_ _ _ _ _|     |_ _ _ _ _ _|
    
    For HFP Capture:
      The path includes stereo to mono and 48k to 8k conversion
        _ _ _ _ _ _       _ _ _ _ _        _ _ _         _ _ _ _       _ _ _ _
       |           | 2ch | SFC     | 2ch  |     | 1ch   |       | 1ch |       |
       | codec I2Sy|---->| 48k->8k |----->| CIF |------>| I2Sx  |---->| BT SCO|
       |_ _ _ _ _ _|     |_ _ _ _ _| audio|_ _ _|client |_ _ _ _|     |_ _ _ _|
    
    For above two path, I2S client channel uses existing DT binding to pass
    channels and format conversion in I2Sx CIF Port.
    Signed-off-by: default avatarMohan Kumar <mkumard@nvidia.com>
    Signed-off-by: default avatarSameer Pujar <spujar@nvidia.com>
    Link: https://msgid.link/r/20240527125608.2461300-3-spujar@nvidia.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    2502f8dd
tegra210_i2s.c 28.5 KB