Merge branch 'fix/asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 into for-3.1
This commit is contained in:
commit
7cb0aa21a5
|
@ -65,7 +65,7 @@
|
|||
#include <plat/iic.h>
|
||||
#include <plat/pm.h>
|
||||
|
||||
#include <sound/wm8915.h>
|
||||
#include <sound/wm8996.h>
|
||||
#include <sound/wm8962.h>
|
||||
#include <sound/wm9081.h>
|
||||
|
||||
|
@ -614,7 +614,7 @@ static struct wm831x_pdata glenfarclas_pmic_pdata __initdata = {
|
|||
.disable_touch = true,
|
||||
};
|
||||
|
||||
static struct wm8915_retune_mobile_config wm8915_retune[] = {
|
||||
static struct wm8996_retune_mobile_config wm8996_retune[] = {
|
||||
{
|
||||
.name = "Sub LPF",
|
||||
.rate = 48000,
|
||||
|
@ -635,12 +635,12 @@ static struct wm8915_retune_mobile_config wm8915_retune[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct wm8915_pdata wm8915_pdata __initdata = {
|
||||
static struct wm8996_pdata wm8996_pdata __initdata = {
|
||||
.ldo_ena = S3C64XX_GPN(7),
|
||||
.gpio_base = CODEC_GPIO_BASE,
|
||||
.micdet_def = 1,
|
||||
.inl_mode = WM8915_DIFFERRENTIAL_1,
|
||||
.inr_mode = WM8915_DIFFERRENTIAL_1,
|
||||
.inl_mode = WM8996_DIFFERRENTIAL_1,
|
||||
.inr_mode = WM8996_DIFFERRENTIAL_1,
|
||||
|
||||
.irq_flags = IRQF_TRIGGER_RISING,
|
||||
|
||||
|
@ -652,8 +652,8 @@ static struct wm8915_pdata wm8915_pdata __initdata = {
|
|||
0x020e, /* GPIO5 == CLKOUT */
|
||||
},
|
||||
|
||||
.retune_mobile_cfgs = wm8915_retune,
|
||||
.num_retune_mobile_cfgs = ARRAY_SIZE(wm8915_retune),
|
||||
.retune_mobile_cfgs = wm8996_retune,
|
||||
.num_retune_mobile_cfgs = ARRAY_SIZE(wm8996_retune),
|
||||
};
|
||||
|
||||
static struct wm8962_pdata wm8962_pdata __initdata = {
|
||||
|
@ -679,8 +679,8 @@ static struct i2c_board_info i2c_devs1[] __initdata = {
|
|||
.platform_data = &glenfarclas_pmic_pdata },
|
||||
|
||||
{ I2C_BOARD_INFO("wm1250-ev1", 0x27) },
|
||||
{ I2C_BOARD_INFO("wm8915", 0x1a),
|
||||
.platform_data = &wm8915_pdata,
|
||||
{ I2C_BOARD_INFO("wm8996", 0x1a),
|
||||
.platform_data = &wm8996_pdata,
|
||||
.irq = GLENFARCLAS_PMIC_IRQ_BASE + WM831X_IRQ_GPIO_2,
|
||||
},
|
||||
{ I2C_BOARD_INFO("wm9081", 0x6c),
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* linux/sound/wm8915.h -- Platform data for WM8915
|
||||
* linux/sound/wm8996.h -- Platform data for WM8996
|
||||
*
|
||||
* Copyright 2011 Wolfson Microelectronics. PLC.
|
||||
*
|
||||
|
@ -8,14 +8,14 @@
|
|||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef __LINUX_SND_WM8903_H
|
||||
#define __LINUX_SND_WM8903_H
|
||||
#ifndef __LINUX_SND_WM8996_H
|
||||
#define __LINUX_SND_WM8996_H
|
||||
|
||||
enum wm8915_inmode {
|
||||
WM8915_DIFFERRENTIAL_1 = 0, /* IN1xP - IN1xN */
|
||||
WM8915_INVERTING = 1, /* IN1xN */
|
||||
WM8915_NON_INVERTING = 2, /* IN1xP */
|
||||
WM8915_DIFFERENTIAL_2 = 3, /* IN2xP - IN2xP */
|
||||
enum wm8996_inmode {
|
||||
WM8996_DIFFERRENTIAL_1 = 0, /* IN1xP - IN1xN */
|
||||
WM8996_INVERTING = 1, /* IN1xN */
|
||||
WM8996_NON_INVERTING = 2, /* IN1xP */
|
||||
WM8996_DIFFERENTIAL_2 = 3, /* IN2xP - IN2xP */
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -25,23 +25,23 @@ enum wm8915_inmode {
|
|||
* Configurations are expected to be generated using the ReTune Mobile
|
||||
* control panel in WISCE - see http://www.wolfsonmicro.com/wisce/
|
||||
*/
|
||||
struct wm8915_retune_mobile_config {
|
||||
struct wm8996_retune_mobile_config {
|
||||
const char *name;
|
||||
int rate;
|
||||
u16 regs[20];
|
||||
};
|
||||
|
||||
#define WM8915_SET_DEFAULT 0x10000
|
||||
#define WM8996_SET_DEFAULT 0x10000
|
||||
|
||||
struct wm8915_pdata {
|
||||
struct wm8996_pdata {
|
||||
int irq_flags; /** Set IRQ trigger flags; default active low */
|
||||
|
||||
int ldo_ena; /** GPIO for LDO1; -1 for none */
|
||||
|
||||
int micdet_def; /** Default MICDET_SRC/HP1FB_SRC/MICD_BIAS */
|
||||
|
||||
enum wm8915_inmode inl_mode;
|
||||
enum wm8915_inmode inr_mode;
|
||||
enum wm8996_inmode inl_mode;
|
||||
enum wm8996_inmode inr_mode;
|
||||
|
||||
u32 spkmute_seq; /** Value for register 0x802 */
|
||||
|
||||
|
@ -49,7 +49,7 @@ struct wm8915_pdata {
|
|||
u32 gpio_default[5];
|
||||
|
||||
int num_retune_mobile_cfgs;
|
||||
struct wm8915_retune_mobile_config *retune_mobile_cfgs;
|
||||
struct wm8996_retune_mobile_config *retune_mobile_cfgs;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -78,7 +78,6 @@ config SND_SOC_ALL_CODECS
|
|||
select SND_SOC_WM8900 if I2C
|
||||
select SND_SOC_WM8903 if I2C
|
||||
select SND_SOC_WM8904 if I2C
|
||||
select SND_SOC_WM8915 if I2C
|
||||
select SND_SOC_WM8940 if I2C
|
||||
select SND_SOC_WM8955 if I2C
|
||||
select SND_SOC_WM8960 if I2C
|
||||
|
@ -95,6 +94,7 @@ config SND_SOC_ALL_CODECS
|
|||
select SND_SOC_WM8993 if I2C
|
||||
select SND_SOC_WM8994 if MFD_WM8994
|
||||
select SND_SOC_WM8995 if SND_SOC_I2C_AND_SPI
|
||||
select SND_SOC_WM8996 if I2C
|
||||
select SND_SOC_WM9081 if I2C
|
||||
select SND_SOC_WM9090 if I2C
|
||||
select SND_SOC_WM9705 if SND_SOC_AC97_BUS
|
||||
|
@ -329,9 +329,6 @@ config SND_SOC_WM8903
|
|||
config SND_SOC_WM8904
|
||||
tristate
|
||||
|
||||
config SND_SOC_WM8915
|
||||
tristate
|
||||
|
||||
config SND_SOC_WM8940
|
||||
tristate
|
||||
|
||||
|
@ -380,6 +377,9 @@ config SND_SOC_WM8994
|
|||
config SND_SOC_WM8995
|
||||
tristate
|
||||
|
||||
config SND_SOC_WM8996
|
||||
tristate
|
||||
|
||||
config SND_SOC_WM9081
|
||||
tristate
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ snd-soc-wm8804-objs := wm8804.o
|
|||
snd-soc-wm8900-objs := wm8900.o
|
||||
snd-soc-wm8903-objs := wm8903.o
|
||||
snd-soc-wm8904-objs := wm8904.o
|
||||
snd-soc-wm8915-objs := wm8915.o
|
||||
snd-soc-wm8996-objs := wm8996.o
|
||||
snd-soc-wm8940-objs := wm8940.o
|
||||
snd-soc-wm8955-objs := wm8955.o
|
||||
snd-soc-wm8960-objs := wm8960.o
|
||||
|
@ -160,7 +160,7 @@ obj-$(CONFIG_SND_SOC_WM8804) += snd-soc-wm8804.o
|
|||
obj-$(CONFIG_SND_SOC_WM8900) += snd-soc-wm8900.o
|
||||
obj-$(CONFIG_SND_SOC_WM8903) += snd-soc-wm8903.o
|
||||
obj-$(CONFIG_SND_SOC_WM8904) += snd-soc-wm8904.o
|
||||
obj-$(CONFIG_SND_SOC_WM8915) += snd-soc-wm8915.o
|
||||
obj-$(CONFIG_SND_SOC_WM8996) += snd-soc-wm8996.o
|
||||
obj-$(CONFIG_SND_SOC_WM8940) += snd-soc-wm8940.o
|
||||
obj-$(CONFIG_SND_SOC_WM8955) += snd-soc-wm8955.o
|
||||
obj-$(CONFIG_SND_SOC_WM8960) += snd-soc-wm8960.o
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -183,7 +183,7 @@ config SND_SOC_SPEYSIDE
|
|||
tristate "Audio support for Wolfson Speyside"
|
||||
depends on SND_SOC_SAMSUNG && MACH_WLF_CRAGG_6410
|
||||
select SND_SAMSUNG_I2S
|
||||
select SND_SOC_WM8915
|
||||
select SND_SOC_WM8996
|
||||
select SND_SOC_WM9081
|
||||
|
||||
config SND_SOC_SPEYSIDE_WM8962
|
||||
|
|
|
@ -14,10 +14,10 @@
|
|||
#include <sound/jack.h>
|
||||
#include <linux/gpio.h>
|
||||
|
||||
#include "../codecs/wm8915.h"
|
||||
#include "../codecs/wm8996.h"
|
||||
#include "../codecs/wm9081.h"
|
||||
|
||||
#define WM8915_HPSEL_GPIO 214
|
||||
#define WM8996_HPSEL_GPIO 214
|
||||
|
||||
static int speyside_set_bias_level(struct snd_soc_card *card,
|
||||
struct snd_soc_dapm_context *dapm,
|
||||
|
@ -31,12 +31,12 @@ static int speyside_set_bias_level(struct snd_soc_card *card,
|
|||
|
||||
switch (level) {
|
||||
case SND_SOC_BIAS_STANDBY:
|
||||
ret = snd_soc_dai_set_sysclk(codec_dai, WM8915_SYSCLK_MCLK2,
|
||||
ret = snd_soc_dai_set_sysclk(codec_dai, WM8996_SYSCLK_MCLK2,
|
||||
32768, SND_SOC_CLOCK_IN);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = snd_soc_dai_set_pll(codec_dai, WM8915_FLL_MCLK2,
|
||||
ret = snd_soc_dai_set_pll(codec_dai, WM8996_FLL_MCLK2,
|
||||
0, 0, 0);
|
||||
if (ret < 0) {
|
||||
pr_err("Failed to stop FLL\n");
|
||||
|
@ -65,7 +65,7 @@ static int speyside_set_bias_level_post(struct snd_soc_card *card,
|
|||
case SND_SOC_BIAS_PREPARE:
|
||||
if (card->dapm.bias_level == SND_SOC_BIAS_STANDBY) {
|
||||
ret = snd_soc_dai_set_pll(codec_dai, 0,
|
||||
WM8915_FLL_MCLK2,
|
||||
WM8996_FLL_MCLK2,
|
||||
32768, 48000 * 256);
|
||||
if (ret < 0) {
|
||||
pr_err("Failed to start FLL\n");
|
||||
|
@ -73,7 +73,7 @@ static int speyside_set_bias_level_post(struct snd_soc_card *card,
|
|||
}
|
||||
|
||||
ret = snd_soc_dai_set_sysclk(codec_dai,
|
||||
WM8915_SYSCLK_FLL,
|
||||
WM8996_SYSCLK_FLL,
|
||||
48000 * 256,
|
||||
SND_SOC_CLOCK_IN);
|
||||
if (ret < 0)
|
||||
|
@ -149,26 +149,26 @@ static void speyside_set_polarity(struct snd_soc_codec *codec,
|
|||
int polarity)
|
||||
{
|
||||
speyside_jack_polarity = !polarity;
|
||||
gpio_direction_output(WM8915_HPSEL_GPIO, speyside_jack_polarity);
|
||||
gpio_direction_output(WM8996_HPSEL_GPIO, speyside_jack_polarity);
|
||||
|
||||
/* Re-run DAPM to make sure we're using the correct mic bias */
|
||||
snd_soc_dapm_sync(&codec->dapm);
|
||||
}
|
||||
|
||||
static int speyside_wm8915_init(struct snd_soc_pcm_runtime *rtd)
|
||||
static int speyside_wm8996_init(struct snd_soc_pcm_runtime *rtd)
|
||||
{
|
||||
struct snd_soc_dai *dai = rtd->codec_dai;
|
||||
struct snd_soc_codec *codec = rtd->codec;
|
||||
int ret;
|
||||
|
||||
ret = snd_soc_dai_set_sysclk(dai, WM8915_SYSCLK_MCLK2, 32768, 0);
|
||||
ret = snd_soc_dai_set_sysclk(dai, WM8996_SYSCLK_MCLK2, 32768, 0);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = gpio_request(WM8915_HPSEL_GPIO, "HP_SEL");
|
||||
ret = gpio_request(WM8996_HPSEL_GPIO, "HP_SEL");
|
||||
if (ret != 0)
|
||||
pr_err("Failed to request HP_SEL GPIO: %d\n", ret);
|
||||
gpio_direction_output(WM8915_HPSEL_GPIO, speyside_jack_polarity);
|
||||
gpio_direction_output(WM8996_HPSEL_GPIO, speyside_jack_polarity);
|
||||
|
||||
ret = snd_soc_jack_new(codec, "Headset",
|
||||
SND_JACK_HEADSET | SND_JACK_BTN_0,
|
||||
|
@ -182,7 +182,7 @@ static int speyside_wm8915_init(struct snd_soc_pcm_runtime *rtd)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
wm8915_detect(codec, &speyside_headset, speyside_set_polarity);
|
||||
wm8996_detect(codec, &speyside_headset, speyside_set_polarity);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -205,16 +205,16 @@ static struct snd_soc_dai_link speyside_dai[] = {
|
|||
.name = "CPU",
|
||||
.stream_name = "CPU",
|
||||
.cpu_dai_name = "samsung-i2s.0",
|
||||
.codec_dai_name = "wm8915-aif1",
|
||||
.codec_dai_name = "wm8996-aif1",
|
||||
.platform_name = "samsung-audio",
|
||||
.codec_name = "wm8915.1-001a",
|
||||
.init = speyside_wm8915_init,
|
||||
.codec_name = "wm8996.1-001a",
|
||||
.init = speyside_wm8996_init,
|
||||
.ops = &speyside_ops,
|
||||
},
|
||||
{
|
||||
.name = "Baseband",
|
||||
.stream_name = "Baseband",
|
||||
.cpu_dai_name = "wm8915-aif2",
|
||||
.cpu_dai_name = "wm8996-aif2",
|
||||
.codec_dai_name = "wm1250-ev1",
|
||||
.codec_name = "wm1250-ev1.1-0027",
|
||||
.ops = &speyside_ops,
|
||||
|
|
Loading…
Reference in New Issue