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

Commit d5315a23 authored by Mark Brown's avatar Mark Brown
Browse files

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: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 1cf73356
Loading
Loading
Loading
Loading

include/sound/wm2200.h

0 → 100644
+41 −0
Original line number Diff line number Diff line
/*
 * 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
+4 −0
Original line number Diff line number Diff line
@@ -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

+2 −0
Original line number Diff line number Diff line
@@ -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 −0

File added.

Preview size limit exceeded, changes collapsed.

+3674 −0

File added.

Preview size limit exceeded, changes collapsed.