Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -21,6 +21,9 @@ config SND_PXA2XX_SOC_AC97
config SND_PXA2XX_SOC_I2S
	tristate

config SND_PXA_SOC_SSP
	tristate

config SND_PXA2XX_SOC_CORGI
	tristate "SoC Audio support for Sharp Zaurus SL-C7x0"
	depends on SND_PXA2XX_SOC && PXA_SHARP_C7xx
@@ -75,3 +78,13 @@ config SND_PXA2XX_SOC_EM_X270
	help
	  Say Y if you want to add support for SoC audio on
	  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 −0
Original line number Diff line number Diff line
@@ -2,10 +2,12 @@
snd-soc-pxa2xx-objs := pxa2xx-pcm.o
snd-soc-pxa2xx-ac97-objs := pxa2xx-ac97.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_AC97) += snd-soc-pxa2xx-ac97.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
snd-soc-corgi-objs := corgi.o
+929 −0

File added.

Preview size limit exceeded, changes collapsed.

+47 −0
Original line number Diff line number Diff line
/*
 * 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