mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 21:54:11 +08:00
ASoC: wm2200: Add WM2200 CODEC driver
The WM2200 is a low power mobile CODEC with enhanced Wolfson myZone Ambient Noise Cancellation (ANC) intended for mobile telephony applications. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
1cf733569e
commit
d5315a23cc
41
include/sound/wm2200.h
Normal file
41
include/sound/wm2200.h
Normal file
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* linux/sound/wm2200.h -- Platform data for WM2200
|
||||
*
|
||||
* Copyright 2012 Wolfson Microelectronics. PLC.
|
||||
*
|
||||
* 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 __LINUX_SND_WM2200_H
|
||||
#define __LINUX_SND_WM2200_H
|
||||
|
||||
#define WM2200_GPIO_SET 0x10000
|
||||
|
||||
enum wm2200_in_mode {
|
||||
WM2200_IN_SE = 0,
|
||||
WM2200_IN_DIFF = 1,
|
||||
WM2200_IN_DMIC = 2,
|
||||
};
|
||||
|
||||
enum wm2200_dmic_sup {
|
||||
WM2200_DMIC_SUP_MICVDD = 0,
|
||||
WM2200_DMIC_SUP_MICBIAS1 = 1,
|
||||
WM2200_DMIC_SUP_MICBIAS2 = 2,
|
||||
};
|
||||
|
||||
struct wm2200_pdata {
|
||||
int reset; /** GPIO controlling /RESET, if any */
|
||||
int ldo_ena; /** GPIO controlling LODENA, if any */
|
||||
int irq_flags;
|
||||
|
||||
int gpio_defaults[4];
|
||||
|
||||
enum wm2200_in_mode in_mode[3];
|
||||
enum wm2200_dmic_sup dmic_sup[3];
|
||||
|
||||
int micbias_cfg[2]; /** Register value to configure MICBIAS */
|
||||
};
|
||||
|
||||
#endif
|
@ -62,6 +62,7 @@ config SND_SOC_ALL_CODECS
|
||||
select SND_SOC_WL1273 if MFD_WL1273_CORE
|
||||
select SND_SOC_WM1250_EV1 if I2C
|
||||
select SND_SOC_WM2000 if I2C
|
||||
select SND_SOC_WM2200 if I2C
|
||||
select SND_SOC_WM5100 if I2C
|
||||
select SND_SOC_WM8350 if MFD_WM8350
|
||||
select SND_SOC_WM8400 if MFD_WM8400
|
||||
@ -292,6 +293,9 @@ config SND_SOC_WM1250_EV1
|
||||
config SND_SOC_WM2000
|
||||
tristate
|
||||
|
||||
config SND_SOC_WM2200
|
||||
tristate
|
||||
|
||||
config SND_SOC_WM5100
|
||||
tristate
|
||||
|
||||
|
@ -51,6 +51,7 @@ snd-soc-uda1380-objs := uda1380.o
|
||||
snd-soc-wl1273-objs := wl1273.o
|
||||
snd-soc-wm1250-ev1-objs := wm1250-ev1.o
|
||||
snd-soc-wm2000-objs := wm2000.o
|
||||
snd-soc-wm2200-objs := wm2200.o
|
||||
snd-soc-wm5100-objs := wm5100.o wm5100-tables.o
|
||||
snd-soc-wm8350-objs := wm8350.o
|
||||
snd-soc-wm8400-objs := wm8400.o
|
||||
@ -153,6 +154,7 @@ obj-$(CONFIG_SND_SOC_UDA1380) += snd-soc-uda1380.o
|
||||
obj-$(CONFIG_SND_SOC_WL1273) += snd-soc-wl1273.o
|
||||
obj-$(CONFIG_SND_SOC_WM1250_EV1) += snd-soc-wm1250-ev1.o
|
||||
obj-$(CONFIG_SND_SOC_WM2000) += snd-soc-wm2000.o
|
||||
obj-$(CONFIG_SND_SOC_WM2200) += snd-soc-wm2200.o
|
||||
obj-$(CONFIG_SND_SOC_WM5100) += snd-soc-wm5100.o
|
||||
obj-$(CONFIG_SND_SOC_WM8350) += snd-soc-wm8350.o
|
||||
obj-$(CONFIG_SND_SOC_WM8400) += snd-soc-wm8400.o
|
||||
|
2285
sound/soc/codecs/wm2200.c
Normal file
2285
sound/soc/codecs/wm2200.c
Normal file
File diff suppressed because it is too large
Load Diff
3674
sound/soc/codecs/wm2200.h
Normal file
3674
sound/soc/codecs/wm2200.h
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user