ASoC: Add initial WM8962 CODEC driver

The WM8962 is a low power, high performance stereo CODEC designed for
portable digital audio applications.

This initial driver release supports the key audio paths of the WM8962.
Extended functionality, such as microphone detection, digital microphones
and the advanced DSP signal enhancements provided by the device are not
yet supported.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
Mark Brown 2010-08-05 13:20:59 +01:00
parent bda7d2a862
commit 9a76f1ff6e
6 changed files with 48051 additions and 0 deletions

23
include/sound/wm8962.h Normal file
View File

@ -0,0 +1,23 @@
/*
* wm8962.h -- WM8962 Soc Audio driver platform data
*
* 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 _WM8962_PDATA_H
#define _WM8962_PDATA_H
#define WM8962_MAX_GPIO 6
/* Use to set GPIO default values to zero */
#define WM8962_GPIO_SET 0x10000
struct wm8962_pdata {
u32 gpio_init[WM8962_MAX_GPIO];
bool spk_mono; /* Speaker outputs tied together as mono */
};
#endif

View File

@ -61,6 +61,7 @@ config SND_SOC_ALL_CODECS
select SND_SOC_WM8955 if I2C
select SND_SOC_WM8960 if I2C
select SND_SOC_WM8961 if I2C
select SND_SOC_WM8962 if I2C
select SND_SOC_WM8971 if I2C
select SND_SOC_WM8974 if I2C
select SND_SOC_WM8978 if I2C
@ -248,6 +249,9 @@ config SND_SOC_WM8960
config SND_SOC_WM8961
tristate
config SND_SOC_WM8962
tristate
config SND_SOC_WM8971
tristate

View File

@ -46,6 +46,7 @@ snd-soc-wm8940-objs := wm8940.o
snd-soc-wm8955-objs := wm8955.o
snd-soc-wm8960-objs := wm8960.o
snd-soc-wm8961-objs := wm8961.o
snd-soc-wm8962-objs := wm8962.o wm8962-tables.o
snd-soc-wm8971-objs := wm8971.o
snd-soc-wm8974-objs := wm8974.o
snd-soc-wm8978-objs := wm8978.o
@ -115,6 +116,7 @@ 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
obj-$(CONFIG_SND_SOC_WM8961) += snd-soc-wm8961.o
obj-$(CONFIG_SND_SOC_WM8962) += snd-soc-wm8962.o
obj-$(CONFIG_SND_SOC_WM8971) += snd-soc-wm8971.o
obj-$(CONFIG_SND_SOC_WM8974) += snd-soc-wm8974.o
obj-$(CONFIG_SND_SOC_WM8978) += snd-soc-wm8978.o

File diff suppressed because it is too large Load Diff

1933
sound/soc/codecs/wm8962.c Normal file

File diff suppressed because it is too large Load Diff

3790
sound/soc/codecs/wm8962.h Normal file

File diff suppressed because it is too large Load Diff