1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- ASoC Platform Driver
- ====================
- An ASoC platform driver class can be divided into audio DMA drivers, SoC DAI
- drivers and DSP drivers. 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.
- SoC DSP Drivers
- ===============
- Each SoC DSP driver usually supplies the following features :-
- 1) DAPM graph
- 2) Mixer controls
- 3) DMA IO to/from DSP buffers (if applicable)
- 4) Definition of DSP front end (FE) PCM devices.
- Please see DPCM.txt for a description of item 4.
|