Commit 1b340bd7 authored by Mark Brown's avatar Mark Brown

ASoC: Add PXA SSP support

The SSP ports PXA series processors can be used to implement a variety of
audio interface formats. This patch implements support for I2S, DSP A and
DSP B modes on these ports.

This patch is based on the previous out of tree pxa2xx-ssp driver (which
was originally written by Liam Girdwood with updates from Philipp Zabel
and Nicola Perrino) and pxa3xx-ssp driver (originally written by Seth
Forsee based on the pxa2xx-ssp driver). Testing coverage is not complete
currently.
Tested-by: default avatarDaniel Ribeiro <drwyrm@gmail.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 219b93f5
...@@ -21,6 +21,9 @@ config SND_PXA2XX_SOC_AC97 ...@@ -21,6 +21,9 @@ config SND_PXA2XX_SOC_AC97
config SND_PXA2XX_SOC_I2S config SND_PXA2XX_SOC_I2S
tristate tristate
config SND_PXA_SOC_SSP
tristate
config SND_PXA2XX_SOC_CORGI config SND_PXA2XX_SOC_CORGI
tristate "SoC Audio support for Sharp Zaurus SL-C7x0" tristate "SoC Audio support for Sharp Zaurus SL-C7x0"
depends on SND_PXA2XX_SOC && PXA_SHARP_C7xx depends on SND_PXA2XX_SOC && PXA_SHARP_C7xx
...@@ -75,3 +78,13 @@ config SND_PXA2XX_SOC_EM_X270 ...@@ -75,3 +78,13 @@ config SND_PXA2XX_SOC_EM_X270
help help
Say Y if you want to add support for SoC audio on Say Y if you want to add support for SoC audio on
CompuLab EM-x270. CompuLab EM-x270.
config SND_SOC_ZYLONITE
tristate "SoC Audio support for Marvell Zylonite"
depends on SND_PXA2XX_SOC && MACH_ZYLONITE
select SND_PXA2XX_SOC_AC97
select SND_PXA_SOC_SSP
select SND_SOC_WM9713
help
Say Y if you want to add support for SoC audio on the
Marvell Zylonite reference platform.
...@@ -2,10 +2,12 @@ ...@@ -2,10 +2,12 @@
snd-soc-pxa2xx-objs := pxa2xx-pcm.o snd-soc-pxa2xx-objs := pxa2xx-pcm.o
snd-soc-pxa2xx-ac97-objs := pxa2xx-ac97.o snd-soc-pxa2xx-ac97-objs := pxa2xx-ac97.o
snd-soc-pxa2xx-i2s-objs := pxa2xx-i2s.o snd-soc-pxa2xx-i2s-objs := pxa2xx-i2s.o
snd-soc-pxa-ssp-objs := pxa-ssp.o
obj-$(CONFIG_SND_PXA2XX_SOC) += snd-soc-pxa2xx.o obj-$(CONFIG_SND_PXA2XX_SOC) += snd-soc-pxa2xx.o
obj-$(CONFIG_SND_PXA2XX_SOC_AC97) += snd-soc-pxa2xx-ac97.o obj-$(CONFIG_SND_PXA2XX_SOC_AC97) += snd-soc-pxa2xx-ac97.o
obj-$(CONFIG_SND_PXA2XX_SOC_I2S) += snd-soc-pxa2xx-i2s.o obj-$(CONFIG_SND_PXA2XX_SOC_I2S) += snd-soc-pxa2xx-i2s.o
obj-$(CONFIG_SND_PXA_SOC_SSP) += snd-soc-pxa-ssp.o
# PXA Machine Support # PXA Machine Support
snd-soc-corgi-objs := corgi.o snd-soc-corgi-objs := corgi.o
......
This diff is collapsed.
/*
* ASoC PXA SSP port support
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef _PXA_SSP_H
#define _PXA_SSP_H
/* pxa DAI SSP IDs */
#define PXA_DAI_SSP1 0
#define PXA_DAI_SSP2 1
#define PXA_DAI_SSP3 2
#define PXA_DAI_SSP4 3
/* SSP clock sources */
#define PXA_SSP_CLK_PLL 0
#define PXA_SSP_CLK_EXT 1
#define PXA_SSP_CLK_NET 2
#define PXA_SSP_CLK_AUDIO 3
#define PXA_SSP_CLK_NET_PLL 4
/* SSP audio dividers */
#define PXA_SSP_AUDIO_DIV_ACDS 0
#define PXA_SSP_AUDIO_DIV_SCDB 1
#define PXA_SSP_DIV_SCR 2
/* SSP ACDS audio dividers values */
#define PXA_SSP_CLK_AUDIO_DIV_1 0
#define PXA_SSP_CLK_AUDIO_DIV_2 1
#define PXA_SSP_CLK_AUDIO_DIV_4 2
#define PXA_SSP_CLK_AUDIO_DIV_8 3
#define PXA_SSP_CLK_AUDIO_DIV_16 4
#define PXA_SSP_CLK_AUDIO_DIV_32 5
/* SSP divider bypass */
#define PXA_SSP_CLK_SCDB_4 0
#define PXA_SSP_CLK_SCDB_1 1
#define PXA_SSP_CLK_SCDB_8 2
#define PXA_SSP_PLL_OUT 0
extern struct snd_soc_dai pxa_ssp_dai[4];
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment