Add linux-next specific files for 20110831
[linux-2.6/next.git] / Documentation / sound / alsa / soc / platform.txt
blobd57efad37e0a5b33606599f6735f180706fd228d
1 ASoC Platform Driver
2 ====================
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
6 specific code.
8 Audio DMA
9 =========
11 The platform DMA driver optionally supports the following ALSA operations:-
13 /* SoC audio ops */
14 struct snd_soc_ops {
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 {
27         char *name;
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 *);
38         /*
39          * For platform caused delay reporting.
40          * Optional.
41          */
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
55 SoC DAI Drivers
56 ===============
58 Each SoC DAI driver must provide the following features:-
60  1) Digital audio interface (DAI) description
61  2) Digital audio interface configuration
62  3) PCM's description
63  4) SYSCLK configuration
64  5) Suspend and resume (optional)
66 Please see codec.txt for a description of items 1 - 4.