mirror of https://gitee.com/openkylin/linux.git
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
This commit is contained in:
commit
287d414eac
|
@ -1,31 +1,78 @@
|
|||
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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue