Commit 31d79a9
ASoC: atmel: Add ASRC driver
The Asynchronous Sample Rate Converter (ASRC) converts the sample rate of
an incoming audio frame without affecting quality. It supports input and
output sampling rates up to 192 kHz. It is made of 4 independent digital
signal processing modules (DSP). Each DSP can be configured with specific
input and output sampling frequencies and is associated to oneof the DMA
channels. Each DSP can process mono or stereo audio stream.
Data can be provided to the DSPs via up to four input channels and data
can be read from the DSPs via up to 4 output channels. A channel comprises
a holding register that can be accessed via software or via a channel of
the central DMA. The ASRC generates the trigger events for the central DMA.
Up to 8 channels are available.
Depending on the channel index and its configuration, a channel manages
from one up to eight audio frames. The ASRC can be configured to process
up to four stereo audio streams in a fully independent manner. Input/out
sampling frequencies differ for each DSP. The ASRC supports TDM audio
stream. ASRC is capable to concatenate/split audio streams while resampling
frequencies. The ASRC can be configured to resample and merge several
audio input sources of the same or of different sampling frequencies
carried by several DMA channels into a single output audio stream sampled
at a unique frequency and carried on a single DMA channel (TDM audio
stream creation from multiple sources). The ASRC can also split and
resample audio streams (e.g. TDM stream) carried on a single DMA channel
to multiple audio streams, each having the same or different resampling
frequencies.
Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
(cherry picked from linux-6.1-trunk/at91/sound)
[andrei.simion: adapt to v6.6.9]
Signed-off-by: Andrei Simion <andrei.simion@microchip.com>1 parent f09b1fa commit 31d79a9
5 files changed
Lines changed: 3127 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
176 | 176 | | |
177 | 177 | | |
178 | 178 | | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
179 | 192 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
| 27 | + | |
26 | 28 | | |
27 | 29 | | |
28 | 30 | | |
| |||
0 commit comments