5 An ASoC platform driver class can be divided into audio DMA drivers, SoC DAI
6 drivers and DSP drivers. The platform drivers only target the SoC CPU and must
7 have no board specific code.
12 The platform DMA driver optionally supports the following ALSA operations:-
17 int (*startup)(struct snd_pcm_substream *);
18 void (*shutdown)(struct snd_pcm_substream *);
19 int (*hw_params)(struct snd_pcm_substream *, struct snd_pcm_hw_params *);
20 int (*hw_free)(struct snd_pcm_substream *);
21 int (*prepare)(struct snd_pcm_substream *);
22 int (*trigger)(struct snd_pcm_substream *, int);
25 The platform driver exports its DMA functionality via struct
26 snd_soc_component_driver:-
29 struct snd_soc_component_driver {
33 int (*probe)(struct snd_soc_component *);
34 void (*remove)(struct snd_soc_component *);
35 int (*suspend)(struct snd_soc_component *);
36 int (*resume)(struct snd_soc_component *);
38 /* pcm creation and destruction */
39 int (*pcm_new)(struct snd_soc_pcm_runtime *);
40 void (*pcm_free)(struct snd_pcm *);
43 const struct snd_pcm_ops *ops;
44 const struct snd_compr_ops *compr_ops;
48 Please refer to the ALSA driver documentation for details of audio DMA.
49 http://www.alsa-project.org/~iwai/writing-an-alsa-driver/
51 An example DMA driver is soc/pxa/pxa2xx-pcm.c
57 Each SoC DAI driver must provide the following features:-
59 1. Digital audio interface (DAI) description
60 2. Digital audio interface configuration
62 4. SYSCLK configuration
63 5. Suspend and resume (optional)
65 Please see codec.rst for a description of items 1 - 4.
71 Each SoC DSP driver usually supplies the following features :-
75 3. DMA IO to/from DSP buffers (if applicable)
76 4. Definition of DSP front end (FE) PCM devices.
78 Please see DPCM.txt for a description of item 4.