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

Commit 287d414e authored by Mark Brown's avatar Mark Brown
Browse files

Merge branch 'topic/fsl' of...

Merge branch 'topic/fsl' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-fsl-ssi

Conflicts:
	sound/soc/fsl/Kconfig
parents 43248122 7b8751ab
Loading
Loading
Loading
Loading
+58 −24
Original line number Diff line number Diff line
menu "SoC Audio for Freescale CPUs"

comment "Common SoC Audio options for Freescale CPUs:"

config SND_SOC_FSL_SAI
	tristate
	tristate "Synchronous Audio Interface (SAI) module support"
	select REGMAP_MMIO
	select SND_SOC_GENERIC_DMAENGINE_PCM
	help
	  Say Y if you want to add Synchronous Audio Interface (SAI)
	  support for the Freescale CPUs.
	  This option is only useful for out-of-tree drivers since
	  in-tree drivers select it automatically.

config SND_SOC_FSL_SSI
	tristate "Synchronous Serial Interface module support"
	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
	select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && ARCH_MXC
	select REGMAP_MMIO
	tristate
	help
	  Say Y if you want to add Synchronous Serial Interface (SSI)
	  support for the Freescale CPUs.
	  This option is only useful for out-of-tree drivers since
	  in-tree drivers select it automatically.

config SND_SOC_FSL_SPDIF
	tristate
	tristate "Sony/Philips Digital Interface module support"
	select REGMAP_MMIO
	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
	select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && ARCH_MXC
	help
	  Say Y if you want to add Sony/Philips Digital Interface (SPDIF)
	  support for the Freescale CPUs.
	  This option is only useful for out-of-tree drivers since
	  in-tree drivers select it automatically.

config SND_SOC_FSL_ESAI
	tristate
	tristate "Enhanced Serial Audio Interface (ESAI) module support"
	select REGMAP_MMIO
	select SND_SOC_FSL_UTILS
	help
	  Say Y if you want to add Enhanced Synchronous Audio Interface
	  (ESAI) support for the Freescale CPUs.
	  This option is only useful for out-of-tree drivers since
	  in-tree drivers select it automatically.

config SND_SOC_FSL_UTILS
	tristate

menuconfig SND_POWERPC_SOC
config SND_SOC_IMX_PCM_DMA
	tristate
	select SND_SOC_GENERIC_DMAENGINE_PCM

config SND_SOC_IMX_AUDMUX
	tristate "Digital Audio Mux module support"
	help
	  Say Y if you want to add Digital Audio Mux (AUDMUX) support
	  for the ARM i.MX CPUs.
	  This option is only useful for out-of-tree drivers since
	  in-tree drivers select it automatically.

config SND_POWERPC_SOC
	tristate "SoC Audio for Freescale PowerPC CPUs"
	depends on FSL_SOC || PPC_MPC52xx
	help
	  Say Y or M if you want to add support for codecs attached to
	  the PowerPC CPUs.

config SND_IMX_SOC
	tristate "SoC Audio for Freescale i.MX CPUs"
	depends on ARCH_MXC || COMPILE_TEST
	help
	  Say Y or M if you want to add support for codecs attached to
	  the i.MX CPUs.

if SND_POWERPC_SOC

config SND_MPC52xx_DMA
@@ -34,6 +81,8 @@ config SND_MPC52xx_DMA
config SND_SOC_POWERPC_DMA
	tristate

comment "SoC Audio support for Freescale PPC boards:"

config SND_SOC_MPC8610_HPCD
	tristate "ALSA SoC support for the Freescale MPC8610 HPCD board"
	# I2C is necessary for the CS4270 driver
@@ -111,13 +160,6 @@ config SND_MPC52xx_SOC_EFIKA

endif # SND_POWERPC_SOC

menuconfig SND_IMX_SOC
	tristate "SoC Audio for Freescale i.MX CPUs"
	depends on ARCH_MXC || COMPILE_TEST
	help
	  Say Y or M if you want to add support for codecs attached to
	  the i.MX CPUs.

if SND_IMX_SOC

config SND_SOC_IMX_SSI
@@ -128,12 +170,7 @@ config SND_SOC_IMX_PCM_FIQ
	tristate
	select FIQ

config SND_SOC_IMX_PCM_DMA
	tristate
	select SND_SOC_GENERIC_DMAENGINE_PCM

config SND_SOC_IMX_AUDMUX
	tristate
comment "SoC Audio support for Freescale i.MX boards:"

config SND_MXC_SOC_WM1133_EV1
	tristate "Audio on the i.MX31ADS with WM1133-EV1 fitted"
@@ -171,12 +208,7 @@ config SND_SOC_PHYCORE_AC97

config SND_SOC_EUKREA_TLV320
	tristate "Eukrea TLV320"
	depends on MACH_EUKREA_MBIMX27_BASEBOARD \
		|| MACH_EUKREA_MBIMXSD25_BASEBOARD \
		|| MACH_EUKREA_MBIMXSD35_BASEBOARD \
		|| MACH_EUKREA_MBIMXSD51_BASEBOARD \
		|| (OF && ARM)
	depends on I2C
	depends on ARCH_MXC && I2C
	select SND_SOC_TLV320AIC23_I2C
	select SND_SOC_IMX_AUDMUX
	select SND_SOC_IMX_SSI
@@ -226,3 +258,5 @@ config SND_SOC_IMX_MC13783
	select SND_SOC_IMX_PCM_DMA

endif # SND_IMX_SOC

endmenu
+6 −3
Original line number Diff line number Diff line
@@ -209,8 +209,9 @@ static int fsl_esai_set_dai_sysclk(struct snd_soc_dai *dai, int clk_id,
	struct clk *clksrc = esai_priv->extalclk;
	bool tx = clk_id <= ESAI_HCKT_EXTAL;
	bool in = dir == SND_SOC_CLOCK_IN;
	u32 ret, ratio, ecr = 0;
	u32 ratio, ecr = 0;
	unsigned long clk_rate;
	int ret;

	/* sck_div can be only bypassed if ETO/ERO=0 and SNC_SOC_CLOCK_OUT */
	esai_priv->sck_div[tx] = true;
@@ -432,8 +433,8 @@ static int fsl_esai_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
static int fsl_esai_startup(struct snd_pcm_substream *substream,
			    struct snd_soc_dai *dai)
{
	int ret;
	struct fsl_esai *esai_priv = snd_soc_dai_get_drvdata(dai);
	int ret;

	/*
	 * Some platforms might use the same bit to gate all three or two of
@@ -491,7 +492,8 @@ static int fsl_esai_hw_params(struct snd_pcm_substream *substream,
	bool tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
	u32 width = snd_pcm_format_width(params_format(params));
	u32 channels = params_channels(params);
	u32 bclk, mask, val, ret;
	u32 bclk, mask, val;
	int ret;

	bclk = params_rate(params) * esai_priv->slot_width * 2;

@@ -816,6 +818,7 @@ static int fsl_esai_probe(struct platform_device *pdev)

static const struct of_device_id fsl_esai_dt_ids[] = {
	{ .compatible = "fsl,imx35-esai", },
	{ .compatible = "fsl,vf610-esai", },
	{}
};
MODULE_DEVICE_TABLE(of, fsl_esai_dt_ids);
+5 −4
Original line number Diff line number Diff line
@@ -13,18 +13,18 @@
 * kind, whether express or implied.
 */

#include <linux/module.h>
#include <linux/bitrev.h>
#include <linux/clk.h>
#include <linux/clk-private.h>
#include <linux/bitrev.h>
#include <linux/regmap.h>
#include <linux/module.h>
#include <linux/of_address.h>
#include <linux/of_device.h>
#include <linux/of_irq.h>
#include <linux/regmap.h>

#include <sound/asoundef.h>
#include <sound/soc.h>
#include <sound/dmaengine_pcm.h>
#include <sound/soc.h>

#include "fsl_spdif.h"
#include "imx-pcm.h"
@@ -1186,6 +1186,7 @@ static int fsl_spdif_probe(struct platform_device *pdev)

static const struct of_device_id fsl_spdif_dt_ids[] = {
	{ .compatible = "fsl,imx35-spdif", },
	{ .compatible = "fsl,vf610-spdif", },
	{}
};
MODULE_DEVICE_TABLE(of, fsl_spdif_dt_ids);
+1 −0
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/of_irq.h>
#include <linux/of_platform.h>
+0 −1
Original line number Diff line number Diff line
@@ -40,7 +40,6 @@ static const struct snd_pcm_hardware imx_pcm_hardware = {
		SNDRV_PCM_INFO_MMAP_VALID |
		SNDRV_PCM_INFO_PAUSE |
		SNDRV_PCM_INFO_RESUME,
	.formats = SNDRV_PCM_FMTBIT_S16_LE,
	.buffer_bytes_max = IMX_SSI_DMABUF_SIZE,
	.period_bytes_min = 128,
	.period_bytes_max = 65535, /* Limited by SDMA engine */