123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- ====================
- 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_component_driver:-
- ::
- struct snd_soc_component_driver {
- const char *name;
- ...
- int (*probe)(struct snd_soc_component *);
- void (*remove)(struct snd_soc_component *);
- int (*suspend)(struct snd_soc_component *);
- int (*resume)(struct snd_soc_component *);
- /* pcm creation and destruction */
- int (*pcm_new)(struct snd_soc_pcm_runtime *);
- void (*pcm_free)(struct snd_pcm *);
- ...
- const struct snd_pcm_ops *ops;
- const struct snd_compr_ops *compr_ops;
- ...
- };
- Please refer to the ALSA driver documentation for details of audio DMA.
- https://www.kernel.org/doc/html/latest/sound/kernel-api/writing-an-alsa-driver.html
- 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.rst 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.
|