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 <[email protected]>

Signed-off-by: Matthias Reichl <[email protected]>
  • Loading branch information
HiassofT authored and popcornmix committed Aug 23, 2016
1 parent 6019d04 commit b99821f
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 b99821f

Please sign in to comment.