Staging
v0.6.0
https://github.com/torvalds/linux
Raw File
Tip revision: 1bae4ce27c9c90344f23c65ea6966c50ffeae2f5 authored by Linus Torvalds on 22 January 2011, 03:01:34 UTC
Linux 2.6.38-rc2
Tip revision: 1bae4ce
platform.txt
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.
back to top