4 An ASoC platform driver can be divided into audio DMA and SoC DAI configuration
5 and control. The platform drivers only target the SoC CPU and must have no board
11 The platform DMA driver optionally supports the following ALSA operations:-
15 int (*startup)(struct snd_pcm_substream *);
16 void (*shutdown)(struct snd_pcm_substream *);
17 int (*hw_params)(struct snd_pcm_substream *, struct snd_pcm_hw_params *);
18 int (*hw_free)(struct snd_pcm_substream *);
19 int (*prepare)(struct snd_pcm_substream *);
20 int (*trigger)(struct snd_pcm_substream *, int);
23 The platform driver exports its DMA functionality via struct
24 snd_soc_platform_driver:-
26 struct snd_soc_platform_driver {
29 int (*probe)(struct platform_device *pdev);
30 int (*remove)(struct platform_device *pdev);
31 int (*suspend)(struct platform_device *pdev, struct snd_soc_cpu_dai *cpu_dai);
32 int (*resume)(struct platform_device *pdev, struct snd_soc_cpu_dai *cpu_dai);
34 /* pcm creation and destruction */
35 int (*pcm_new)(struct snd_card *, struct snd_soc_codec_dai *, struct snd_pcm *);
36 void (*pcm_free)(struct snd_pcm *);
39 * For platform caused delay reporting.
42 snd_pcm_sframes_t (*delay)(struct snd_pcm_substream *,
43 struct snd_soc_dai *);
45 /* platform stream ops */
46 struct snd_pcm_ops *pcm_ops;
49 Please refer to the ALSA driver documentation for details of audio DMA.
50 http://www.alsa-project.org/~iwai/writing-an-alsa-driver/
52 An example DMA driver is soc/pxa/pxa2xx-pcm.c
58 Each SoC DAI driver must provide the following features:-
60 1) Digital audio interface (DAI) description
61 2) Digital audio interface configuration
63 4) SYSCLK configuration
64 5) Suspend and resume (optional)
66 Please see codec.txt for a description of items 1 - 4.