ALSA: ASoC: Add AK4535 driver

The AK4535 codec is included in some HP iPAQ systems.

This driver was originally written by Richard Purdie and with some bug
fixes from Milan Plzik.  While out of tree it has also had some
mechanical updates for new APIs and current best practices from Liam
Girdwood, Graeme Gregory and Mark Brown.

Signed-off-by: Richard Purdie <richard@openedhand.com>
Signed-off-by: Milan Plzik <milan.plzik@gmail.com>
Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: Graeme Gregory <gg@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
Richard Purdie
2008-06-23 14:51:28 +01:00
committed by Jaroslav Kysela
parent 627d3e7abc
commit 796d2ca848
4 changed files with 747 additions and 0 deletions

View File

@@ -2,6 +2,9 @@ config SND_SOC_AC97_CODEC
tristate
select SND_AC97_CODEC
config SND_SOC_AK4535
tristate
config SND_SOC_UDA1380
tristate

View File

@@ -1,4 +1,5 @@
snd-soc-ac97-objs := ac97.o
snd-soc-ak4535-objs := ak4535.o
snd-soc-uda1380-objs := uda1380.o
snd-soc-wm8510-objs := wm8510.o
snd-soc-wm8731-objs := wm8731.o
@@ -11,6 +12,7 @@ snd-soc-cs4270-objs := cs4270.o
snd-soc-tlv320aic3x-objs := tlv320aic3x.o
obj-$(CONFIG_SND_SOC_AC97_CODEC) += snd-soc-ac97.o
obj-$(CONFIG_SND_SOC_AK4535) += snd-soc-ak4535.o
obj-$(CONFIG_SND_SOC_UDA1380) += snd-soc-uda1380.o
obj-$(CONFIG_SND_SOC_WM8510) += snd-soc-wm8510.o
obj-$(CONFIG_SND_SOC_WM8731) += snd-soc-wm8731.o

696
sound/soc/codecs/ak4535.c Normal file

File diff suppressed because it is too large Load Diff

46
sound/soc/codecs/ak4535.h Normal file
View File

@@ -0,0 +1,46 @@
/*
* ak4535.h -- AK4535 Soc Audio driver
*
* Copyright 2005 Openedhand Ltd.
*
* Author: Richard Purdie <richard@openedhand.com>
*
* Based on wm8753.h
*
* 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 _AK4535_H
#define _AK4535_H
/* AK4535 register space */
#define AK4535_PM1 0x0
#define AK4535_PM2 0x1
#define AK4535_SIG1 0x2
#define AK4535_SIG2 0x3
#define AK4535_MODE1 0x4
#define AK4535_MODE2 0x5
#define AK4535_DAC 0x6
#define AK4535_MIC 0x7
#define AK4535_TIMER 0x8
#define AK4535_ALC1 0x9
#define AK4535_ALC2 0xa
#define AK4535_PGA 0xb
#define AK4535_LATT 0xc
#define AK4535_RATT 0xd
#define AK4535_VOL 0xe
#define AK4535_STATUS 0xf
#define AK4535_CACHEREGNUM 0x10
struct ak4535_setup_data {
unsigned short i2c_address;
};
extern struct snd_soc_codec_dai ak4535_dai;
extern struct snd_soc_codec_device soc_codec_dev_ak4535;
#endif