Skip to content

Commit

Permalink
bcm2835-i2s: Register PCM device
Browse files Browse the repository at this point in the history
Code ported from bcm2708-i2s driver in Raspberry Pi tree.

RPi commit ba46b49 ("ASoC: Add
support for BCM2708")

This driver adds support for digital audio (I2S)
for the BCM2708 SoC that is used by the
Raspberry Pi. External audio codecs can be
connected to the Raspberry Pi via P5 header.

It relies on cyclic DMA engine support for BCM2708.

Signed-off-by: Florian Meier <florian.meier@koalo.de>

Signed-off-by: Matthias Reichl <hias@horus.com>
  • Loading branch information
HiassofT authored and Phil Elwell committed Apr 28, 2016
1 parent dedf9a1 commit 20c92f0
Showing 1 changed file with 22 additions and 1 deletion.
23 changes: 22 additions & 1 deletion sound/soc/bcm/bcm2835-i2s.c
Original file line number Diff line number Diff line change
Expand Up @@ -799,6 +799,25 @@ static const struct snd_soc_component_driver bcm2835_i2s_component = {
.name = "bcm2835-i2s-comp",
};

static const struct snd_pcm_hardware bcm2835_pcm_hardware = {
.info = SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_JOINT_DUPLEX,
.formats = SNDRV_PCM_FMTBIT_S16_LE |
SNDRV_PCM_FMTBIT_S24_LE |
SNDRV_PCM_FMTBIT_S32_LE,
.period_bytes_min = 32,
.period_bytes_max = 64 * PAGE_SIZE,
.periods_min = 2,
.periods_max = 255,
.buffer_bytes_max = 128 * PAGE_SIZE,
};

static const struct snd_dmaengine_pcm_config bcm2835_dmaengine_pcm_config = {
.prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config,
.pcm_hardware = &bcm2835_pcm_hardware,
.prealloc_buffer_size = 256 * PAGE_SIZE,
};

static int bcm2835_i2s_probe(struct platform_device *pdev)
{
struct bcm2835_i2s_dev *dev;
Expand Down Expand Up @@ -870,7 +889,9 @@ static int bcm2835_i2s_probe(struct platform_device *pdev)
return ret;
}

ret = devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0);
ret = devm_snd_dmaengine_pcm_register(&pdev->dev,
&bcm2835_dmaengine_pcm_config,
SND_DMAENGINE_PCM_FLAG_COMPAT);
if (ret) {
dev_err(&pdev->dev, "Could not register PCM: %d\n", ret);
return ret;
Expand Down

0 comments on commit 20c92f0

Please sign in to comment.