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

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
...@@ -16,6 +16,7 @@ config SND_SOC_ALL_CODECS ...@@ -16,6 +16,7 @@ config SND_SOC_ALL_CODECS
select SND_SOC_WM8753 select SND_SOC_WM8753
select SND_SOC_WM8900 select SND_SOC_WM8900
select SND_SOC_WM8903 select SND_SOC_WM8903
select SND_SOC_WM8971
select SND_SOC_WM8990 select SND_SOC_WM8990
help help
Normally ASoC codec drivers are only built if a machine driver which Normally ASoC codec drivers are only built if a machine driver which
...@@ -89,6 +90,9 @@ config SND_SOC_WM8900 ...@@ -89,6 +90,9 @@ config SND_SOC_WM8900
config SND_SOC_WM8903 config SND_SOC_WM8903
tristate tristate
config SND_SOC_WM8971
tristate
config SND_SOC_WM8990 config SND_SOC_WM8990
tristate tristate
......
...@@ -13,6 +13,7 @@ snd-soc-wm8750-objs := wm8750.o ...@@ -13,6 +13,7 @@ snd-soc-wm8750-objs := wm8750.o
snd-soc-wm8753-objs := wm8753.o snd-soc-wm8753-objs := wm8753.o
snd-soc-wm8900-objs := wm8900.o snd-soc-wm8900-objs := wm8900.o
snd-soc-wm8903-objs := wm8903.o snd-soc-wm8903-objs := wm8903.o
snd-soc-wm8971-objs := wm8971.o
snd-soc-wm8990-objs := wm8990.o snd-soc-wm8990-objs := wm8990.o
snd-soc-wm9712-objs := wm9712.o snd-soc-wm9712-objs := wm9712.o
snd-soc-wm9713-objs := wm9713.o snd-soc-wm9713-objs := wm9713.o
...@@ -32,6 +33,7 @@ obj-$(CONFIG_SND_SOC_WM8750) += snd-soc-wm8750.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_WM8753) += snd-soc-wm8753.o
obj-$(CONFIG_SND_SOC_WM8900) += snd-soc-wm8900.o obj-$(CONFIG_SND_SOC_WM8900) += snd-soc-wm8900.o
obj-$(CONFIG_SND_SOC_WM8903) += snd-soc-wm8903.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_WM8990) += snd-soc-wm8990.o
obj-$(CONFIG_SND_SOC_WM9712) += snd-soc-wm9712.o obj-$(CONFIG_SND_SOC_WM9712) += snd-soc-wm9712.o
obj-$(CONFIG_SND_SOC_WM9713) += snd-soc-wm9713.o obj-$(CONFIG_SND_SOC_WM9713) += snd-soc-wm9713.o
This diff is collapsed.
/*
* 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
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment