]> bbs.cooldavid.org Git - net-next-2.6.git/blame - Documentation/sound/alsa/soc/platform.txt
Documentation: update broken web addresses.
[net-next-2.6.git] / Documentation / sound / alsa / soc / platform.txt
CommitLineData
eb1a6af3
LG
1ASoC Platform Driver
2====================
3
4An ASoC platform driver can be divided into audio DMA and SoC DAI configuration
5and control. The platform drivers only target the SoC CPU and must have no board
6specific code.
7
8Audio DMA
9=========
10
7c4dbbd8 11The platform DMA driver optionally supports the following ALSA operations:-
eb1a6af3
LG
12
13/* SoC audio ops */
14struct snd_soc_ops {
5b78efd2
TI
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);
eb1a6af3
LG
21};
22
01dd2fbf 23The platform driver exports its DMA functionality via struct snd_soc_platform:-
eb1a6af3
LG
24
25struct snd_soc_platform {
26 char *name;
27
28 int (*probe)(struct platform_device *pdev);
29 int (*remove)(struct platform_device *pdev);
30 int (*suspend)(struct platform_device *pdev, struct snd_soc_cpu_dai *cpu_dai);
31 int (*resume)(struct platform_device *pdev, struct snd_soc_cpu_dai *cpu_dai);
32
33 /* pcm creation and destruction */
5b78efd2
TI
34 int (*pcm_new)(struct snd_card *, struct snd_soc_codec_dai *, struct snd_pcm *);
35 void (*pcm_free)(struct snd_pcm *);
eb1a6af3
LG
36
37 /* platform stream ops */
5b78efd2 38 struct snd_pcm_ops *pcm_ops;
eb1a6af3
LG
39};
40
7c4dbbd8 41Please refer to the ALSA driver documentation for details of audio DMA.
0ea6e611 42http://www.alsa-project.org/~iwai/writing-an-alsa-driver/
eb1a6af3
LG
43
44An example DMA driver is soc/pxa/pxa2xx-pcm.c
45
46
47SoC DAI Drivers
48===============
49
50Each SoC DAI driver must provide the following features:-
51
52 1) Digital audio interface (DAI) description
53 2) Digital audio interface configuration
54 3) PCM's description
7c4dbbd8 55 4) SYSCLK configuration
eb1a6af3
LG
56 5) Suspend and resume (optional)
57
58Please see codec.txt for a description of items 1 - 4.