linux/sound
Sen Wang 9db327083f
ASoC: ti: davinci-mcasp: Add asynchronous mode support
McASP has dedicated clock & frame sync registers for both transmit
and receive. Currently McASP driver only supports synchronous behavior and
couples both TX & RX settings.

Add logic that enables asynchronous mode via ti,async-mode property. In
async mode, playback & record can be done simultaneously with different
audio configurations (tdm slots, tdm width, audio bit depth).

Note the ability to have different tx/rx DSP formats (i2s, dsp_a, etc.),
while possible in hardware, remains to be a gap as it require changes
to the corresponding machine driver interface.

Existing IIS (sync mode) and DIT mode logic remains mostly unchanged.
Exceptions are IIS mode logic that previously assumed sync mode, which has
now been made aware of the distinction. And shared logic across all modes
also now checks for McASP tx/rx-specific driver attributes. Those
attributes have been populated according to the original extent, ensuring
no divergence in functionality.

Constraints no longer applicable for async mode are skipped.
Clock selection options have also been added to include rx/tx-only clk_ids,
exposing independent configuration via the machine driver as well.

Note that asynchronous mode is not applicable for McASP in DIT mode,
which is a transmitter-only mode to interface w/ self-clocking formats.

Signed-off-by: Sen Wang <sen@ti.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@gmail.com>
Tested-by: Paresh Bhagat <p-bhagat@ti.com>
Link: https://patch.msgid.link/20260203003703.2334443-5-sen@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-02-04 18:21:52 +00:00
..
ac97 ALSA: ac97: fix a double free in snd_ac97_controller_register() 2025-12-23 10:43:43 +01:00
aoa ALSA: aoa: Remove redundant size arguments from strscpy() 2025-09-12 07:54:40 +02:00
arm ASoC: ac97: Convert to GPIO descriptors 2026-01-27 12:45:57 +00:00
atmel ALSA: atmel: Use guard() for mutex locks 2025-09-01 13:54:28 +02:00
core ALSA: pcm: Improve the fix for race of buffer access at PCM OSS layer 2026-01-08 08:07:54 +01:00
drivers ALSA: pcmtest: Replace deprecated strcpy with strscpy_pad in setup_patt_bufs 2025-11-19 17:16:49 +01:00
firewire sound fixes for 6.19-rc1 2025-12-13 16:09:10 +12:00
hda Anbernic RG-DS AW87391 Speaker Amps 2026-02-02 23:31:39 +00:00
i2c ALSA: i2c: Use guard() for spin locks 2025-09-01 13:54:26 +02:00
isa ALSA: gus: Remove unused declarations 2025-11-12 10:34:44 +01:00
mips ALSA: snd-n64: Use guard() for spin locks 2025-09-10 13:20:01 +02:00
oss
parisc ALSA: parisc: Use guard() for spin locks 2025-09-10 13:20:01 +02:00
pci ALSA: ctxfi: Fix potential OOB access in audio mixer handling 2026-01-19 14:32:55 +01:00
pcmcia ALSA: pcmcia: Fix resource leak in snd_pdacf_probe error path 2025-12-15 10:11:19 +01:00
ppc ALSA: ppc: Use guard() for spin locks 2025-09-10 13:20:01 +02:00
sh
soc ASoC: ti: davinci-mcasp: Add asynchronous mode support 2026-02-04 18:21:52 +00:00
sparc ALSA: sparc/dbri: Use guard() for spin locks 2025-09-10 13:20:01 +02:00
spi ALSA: spi/at73c213: Use guard() for spin locks 2025-09-17 14:07:02 +02:00
synth ALSA: synth: Use guard() for preset locks 2025-09-01 13:54:27 +02:00
usb ALSA: usb-audio: Use the right limit for PCM OOB check 2026-01-21 09:22:12 +01:00
virtio ALSA: virtio: Use guard() for spin locks 2025-09-01 13:54:28 +02:00
x86 ALSA: x86: Use guard() for spin locks 2025-09-01 13:54:27 +02:00
xen ALSA: xen: Use guard() for mutex locks 2025-09-01 13:54:27 +02:00
ac97_bus.c ALSA: ac97: Fix kernel-doc warning for snd_ac97_reset 2025-11-06 10:52:43 +01:00
Kconfig
last.c
Makefile
sound_core.c