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

Commit 8bae3e23 authored by Kenneth Kiraly's avatar Kenneth Kiraly Committed by Jaroslav Kysela
Browse files

sound: ASoC: Add WM8971 CODEC driver



The WM8971 is a low power, high quality stereo codec designed for
portable digital audio applications.

This driver was originally written by Kenneth Kiraly.  While out of tree
it has had updates to reflect current kernel APIs and coding standards
from Graeme Gregory and Mark Brown.

Signed-off-by: default avatarKenneth Kiraly <kiraly@lab126.com>
Signed-off-by: default avatarLiam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: default avatarGraeme Gregory <gg@opensource.wolfsonmicro.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
parent f51ff993
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ config SND_SOC_ALL_CODECS
	select SND_SOC_WM8753
	select SND_SOC_WM8900
	select SND_SOC_WM8903
	select SND_SOC_WM8971
	select SND_SOC_WM8990
        help
          Normally ASoC codec drivers are only built if a machine driver which
@@ -89,6 +90,9 @@ config SND_SOC_WM8900
config SND_SOC_WM8903
	tristate

config SND_SOC_WM8971
	tristate

config SND_SOC_WM8990
	tristate

+2 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ snd-soc-wm8750-objs := wm8750.o
snd-soc-wm8753-objs := wm8753.o
snd-soc-wm8900-objs := wm8900.o
snd-soc-wm8903-objs := wm8903.o
snd-soc-wm8971-objs := wm8971.o
snd-soc-wm8990-objs := wm8990.o
snd-soc-wm9712-objs := wm9712.o
snd-soc-wm9713-objs := wm9713.o
@@ -32,6 +33,7 @@ obj-$(CONFIG_SND_SOC_WM8750) += snd-soc-wm8750.o
obj-$(CONFIG_SND_SOC_WM8753)	+= snd-soc-wm8753.o
obj-$(CONFIG_SND_SOC_WM8900)	+= snd-soc-wm8900.o
obj-$(CONFIG_SND_SOC_WM8903)	+= snd-soc-wm8903.o
obj-$(CONFIG_SND_SOC_WM8971)	+= snd-soc-wm8971.o
obj-$(CONFIG_SND_SOC_WM8990)	+= snd-soc-wm8990.o
obj-$(CONFIG_SND_SOC_WM9712)	+= snd-soc-wm9712.o
obj-$(CONFIG_SND_SOC_WM9713)	+= snd-soc-wm9713.o
+942 −0

File added.

Preview size limit exceeded, changes collapsed.

+64 −0
Original line number Diff line number Diff line
/*
 * wm8971.h  --  audio driver for WM8971
 *
 * Copyright 2005 Lab126, Inc.
 *
 * Author: Kenneth Kiraly <kiraly@lab126.com>
 *
 * This program is free software; you can redistribute  it and/or modify it
 * under  the terms of  the GNU General  Public License as published by the
 * Free Software Foundation;  either version 2 of the  License, or (at your
 * option) any later version.
 *
 */

#ifndef _WM8971_H
#define _WM8971_H

#define WM8971_LINVOL	0x00
#define WM8971_RINVOL	0x01
#define WM8971_LOUT1V	0x02
#define WM8971_ROUT1V	0x03
#define WM8971_ADCDAC	0x05
#define WM8971_IFACE	0x07
#define WM8971_SRATE	0x08
#define WM8971_LDAC		0x0a
#define WM8971_RDAC		0x0b
#define WM8971_BASS		0x0c
#define WM8971_TREBLE	0x0d
#define WM8971_RESET	0x0f
#define WM8971_ALC1		0x11
#define	WM8971_ALC2		0x12
#define	WM8971_ALC3		0x13
#define WM8971_NGATE	0x14
#define WM8971_LADC		0x15
#define WM8971_RADC		0x16
#define	WM8971_ADCTL1	0x17
#define	WM8971_ADCTL2	0x18
#define WM8971_PWR1		0x19
#define WM8971_PWR2		0x1a
#define	WM8971_ADCTL3	0x1b
#define WM8971_ADCIN	0x1f
#define	WM8971_LADCIN	0x20
#define	WM8971_RADCIN	0x21
#define WM8971_LOUTM1	0x22
#define WM8971_LOUTM2	0x23
#define WM8971_ROUTM1	0x24
#define WM8971_ROUTM2	0x25
#define WM8971_MOUTM1	0x26
#define WM8971_MOUTM2	0x27
#define WM8971_LOUT2V	0x28
#define WM8971_ROUT2V	0x29
#define WM8971_MOUTV	0x2A

#define WM8971_SYSCLK	0

struct wm8971_setup_data {
	int i2c_bus;
	unsigned short i2c_address;
};

extern struct snd_soc_dai wm8971_dai;
extern struct snd_soc_codec_device soc_codec_dev_wm8971;

#endif