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

Commit 85e184e4 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge tag 'asoc-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Last minute updates

These are all new code, they've been in -next already so should be OK
for merge this time round.  I'd been planning to send a pull request
today after they'd had a bit of exposure there to make sure breakage
didn't propagate into your tree.
parents 382e6a85 766812e6
Loading
Loading
Loading
Loading
+54 −0
Original line number Diff line number Diff line
NVIDIA Tegra audio complex

Required properties:
- compatible : "nvidia,tegra-audio-wm8753"
- nvidia,model : The user-visible name of this sound complex.
- nvidia,audio-routing : A list of the connections between audio components.
  Each entry is a pair of strings, the first being the connection's sink,
  the second being the connection's source. Valid names for sources and
  sinks are the WM8753's pins, and the jacks on the board:

  WM8753 pins:

  * LOUT1
  * LOUT2
  * ROUT1
  * ROUT2
  * MONO1
  * MONO2
  * OUT3
  * OUT4
  * LINE1
  * LINE2
  * RXP
  * RXN
  * ACIN
  * ACOP
  * MIC1N
  * MIC1
  * MIC2N
  * MIC2
  * Mic Bias

  Board connectors:

  * Headphone Jack
  * Mic Jack

- nvidia,i2s-controller : The phandle of the Tegra I2S1 controller
- nvidia,audio-codec : The phandle of the WM8753 audio codec
Example:

sound {
	compatible = "nvidia,tegra-audio-wm8753-whistler",
		     "nvidia,tegra-audio-wm8753"
	nvidia,model = "tegra-wm8753-harmony";

	nvidia,audio-routing =
		"Headphone Jack", "LOUT1",
		"Headphone Jack", "ROUT1";

	nvidia,i2s-controller = <&i2s1>;
	nvidia,audio-codec = <&wm8753>;
};
+5 −1
Original line number Diff line number Diff line
@@ -21,10 +21,11 @@
/*
 * flags format
 *
 * 0x000000BA
 * 0x00000CBA
 *
 * A:  inversion
 * B:  format mode
 * C:  chip specific
 */

/* A: clock inversion */
@@ -39,6 +40,9 @@
#define SH_FSI_FMT_DAI		(0 << 4)
#define SH_FSI_FMT_SPDIF	(1 << 4)

/* C: chip specific */
#define SH_FSI_OPTION_MASK	0x00000F00
#define SH_FSI_ENABLE_STREAM_MODE	(1 << 8) /* for 16bit data */

/*
 * set_rate return value
+4 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ config SND_SOC_ALL_CODECS
	select SND_SOC_MAX9877 if I2C
	select SND_SOC_MC13783 if MFD_MC13XXX
	select SND_SOC_ML26124 if I2C
	select SND_SOC_OMAP_HDMI_CODEC if OMAP4_DSS_HDMI
	select SND_SOC_PCM3008
	select SND_SOC_RT5631 if I2C
	select SND_SOC_SGTL5000 if I2C
@@ -236,6 +237,9 @@ config SND_SOC_MAX98095
config SND_SOC_MAX9850
	tristate

config SND_SOC_OMAP_HDMI_CODEC
       tristate

config SND_SOC_PCM3008
       tristate

+2 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ snd-soc-max98095-objs := max98095.o
snd-soc-max9850-objs := max9850.o
snd-soc-mc13783-objs := mc13783.o
snd-soc-ml26124-objs := ml26124.o
snd-soc-omap-hdmi-codec-objs := omap-hdmi.o
snd-soc-pcm3008-objs := pcm3008.o
snd-soc-rt5631-objs := rt5631.o
snd-soc-sgtl5000-objs := sgtl5000.o
@@ -143,6 +144,7 @@ obj-$(CONFIG_SND_SOC_MAX98095) += snd-soc-max98095.o
obj-$(CONFIG_SND_SOC_MAX9850)	+= snd-soc-max9850.o
obj-$(CONFIG_SND_SOC_MC13783)	+= snd-soc-mc13783.o
obj-$(CONFIG_SND_SOC_ML26124)	+= snd-soc-ml26124.o
obj-$(CONFIG_SND_SOC_OMAP_HDMI_CODEC) += snd-soc-omap-hdmi-codec.o
obj-$(CONFIG_SND_SOC_PCM3008)	+= snd-soc-pcm3008.o
obj-$(CONFIG_SND_SOC_RT5631)	+= snd-soc-rt5631.o
obj-$(CONFIG_SND_SOC_SGTL5000)  += snd-soc-sgtl5000.o
+69 −0
Original line number Diff line number Diff line
/*
 * ALSA SoC codec driver for HDMI audio on OMAP processors.
 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
 * Author: Ricardo Neri <ricardo.neri@ti.com>
 *
 * 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.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA
 *
 */
#include <linux/module.h>
#include <sound/soc.h>

#define DRV_NAME "hdmi-audio-codec"

static struct snd_soc_codec_driver omap_hdmi_codec;

static struct snd_soc_dai_driver omap_hdmi_codec_dai = {
	.name = "omap-hdmi-hifi",
	.playback = {
		.channels_min = 2,
		.channels_max = 8,
		.rates = SNDRV_PCM_RATE_32000 |
			SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 |
			SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000 |
			SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_192000,
		.formats = SNDRV_PCM_FMTBIT_S16_LE |
			SNDRV_PCM_FMTBIT_S24_LE,
	},
};

static __devinit int omap_hdmi_codec_probe(struct platform_device *pdev)
{
	return snd_soc_register_codec(&pdev->dev, &omap_hdmi_codec,
			&omap_hdmi_codec_dai, 1);
}

static __devexit int omap_hdmi_codec_remove(struct platform_device *pdev)
{
	snd_soc_unregister_codec(&pdev->dev);
	return 0;
}

static struct platform_driver omap_hdmi_codec_driver = {
	.driver		= {
		.name	= DRV_NAME,
		.owner	= THIS_MODULE,
	},

	.probe		= omap_hdmi_codec_probe,
	.remove		= __devexit_p(omap_hdmi_codec_remove),
};

module_platform_driver(omap_hdmi_codec_driver);

MODULE_AUTHOR("Ricardo Neri <ricardo.neri@ti.com>");
MODULE_DESCRIPTION("ASoC OMAP HDMI codec driver");
MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:" DRV_NAME);
Loading