12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- ASoC Platform Driver
- ====================
- An ASoC platform driver can be divided into audio DMA and SoC DAI configuration
- and control. The platform drivers only target the SoC CPU and must have no board
- specific code.
- Audio DMA
- =========
- The platform DMA driver optionally supports the following ALSA operations:-
- /* SoC audio ops */
- struct snd_soc_ops {
- int (*startup)(struct snd_pcm_substream *);
- void (*shutdown)(struct snd_pcm_substream *);
- int (*hw_params)(struct snd_pcm_substream *, struct snd_pcm_hw_params *);
- int (*hw_free)(struct snd_pcm_substream *);
- int (*prepare)(struct snd_pcm_substream *);
- int (*trigger)(struct snd_pcm_substream *, int);
- };
- The platform driver exports its DMA functionality via struct
- snd_soc_platform_driver:-
- struct snd_soc_platform_driver {
- char *name;
- int (*probe)(struct platform_device *pdev);
- int (*remove)(struct platform_device *pdev);
- int (*suspend)(struct platform_device *pdev, struct snd_soc_cpu_dai *cpu_dai);
- int (*resume)(struct platform_device *pdev, struct snd_soc_cpu_dai *cpu_dai);
- /* pcm creation and destruction */
- int (*pcm_new)(struct snd_card *, struct snd_soc_codec_dai *, struct snd_pcm *);
- void (*pcm_free)(struct snd_pcm *);
- /*
- * For platform caused delay reporting.
- * Optional.
- */
- snd_pcm_sframes_t (*delay)(struct snd_pcm_substream *,
- struct snd_soc_dai *);
- /* platform stream ops */
- struct snd_pcm_ops *pcm_ops;
- };
- Please refer to the ALSA driver documentation for details of audio DMA.
- http://www.alsa-project.org/~iwai/writing-an-alsa-driver/
- An example DMA driver is soc/pxa/pxa2xx-pcm.c
- SoC DAI Drivers
- ===============
- Each SoC DAI driver must provide the following features:-
- 1) Digital audio interface (DAI) description
- 2) Digital audio interface configuration
- 3) PCM's description
- 4) SYSCLK configuration
- 5) Suspend and resume (optional)
- Please see codec.txt for a description of items 1 - 4.
|