mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
2502f8dd8c
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: Mohan Kumar <mkumard@nvidia.com> Signed-off-by: Sameer Pujar <spujar@nvidia.com> Link: https://msgid.link/r/20240527125608.2461300-3-spujar@nvidia.com Signed-off-by: Mark Brown <broonie@kernel.org> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
tegra20_ac97.c | ||
tegra20_ac97.h | ||
tegra20_das.c | ||
tegra20_i2s.c | ||
tegra20_i2s.h | ||
tegra20_spdif.c | ||
tegra20_spdif.h | ||
tegra30_ahub.c | ||
tegra30_ahub.h | ||
tegra30_i2s.c | ||
tegra30_i2s.h | ||
tegra186_asrc.c | ||
tegra186_asrc.h | ||
tegra186_dspk.c | ||
tegra186_dspk.h | ||
tegra210_admaif.c | ||
tegra210_admaif.h | ||
tegra210_adx.c | ||
tegra210_adx.h | ||
tegra210_ahub.c | ||
tegra210_ahub.h | ||
tegra210_amx.c | ||
tegra210_amx.h | ||
tegra210_dmic.c | ||
tegra210_dmic.h | ||
tegra210_i2s.c | ||
tegra210_i2s.h | ||
tegra210_mbdrc.c | ||
tegra210_mbdrc.h | ||
tegra210_mixer.c | ||
tegra210_mixer.h | ||
tegra210_mvc.c | ||
tegra210_mvc.h | ||
tegra210_ope.c | ||
tegra210_ope.h | ||
tegra210_peq.c | ||
tegra210_peq.h | ||
tegra210_sfc.c | ||
tegra210_sfc.h | ||
tegra_asoc_machine.c | ||
tegra_asoc_machine.h | ||
tegra_audio_graph_card.c | ||
tegra_cif.h | ||
tegra_pcm.c | ||
tegra_pcm.h | ||
tegra_wm8903.c |