mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-06 08:46:46 +00:00
[ALSA] ASoC codecs: WM8750 support
This patch adds ASoC support for the WM8750 codec. Supported features:- o Capture/Playback/Sidetone/Bypass. o 16 & 24 bit audio. o 8k - 96k sample rates. o DAPM. Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Liam Girdwood <liam.girdwood@wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
parent
40e0aa6466
commit
abadfc928a
3 changed files with 1198 additions and 0 deletions
|
@ -116,6 +116,7 @@
|
||||||
#define I2C_DRIVERID_TLV320AIC23B 87 /* TI TLV320AIC23B audio codec */
|
#define I2C_DRIVERID_TLV320AIC23B 87 /* TI TLV320AIC23B audio codec */
|
||||||
#define I2C_DRIVERID_ISL1208 88 /* Intersil ISL1208 RTC */
|
#define I2C_DRIVERID_ISL1208 88 /* Intersil ISL1208 RTC */
|
||||||
#define I2C_DRIVERID_WM8731 89 /* Wolfson WM8731 audio codec */
|
#define I2C_DRIVERID_WM8731 89 /* Wolfson WM8731 audio codec */
|
||||||
|
#define I2C_DRIVERID_WM8750 90 /* Wolfson WM8750 audio codec */
|
||||||
|
|
||||||
#define I2C_DRIVERID_I2CDEV 900
|
#define I2C_DRIVERID_I2CDEV 900
|
||||||
#define I2C_DRIVERID_ARP 902 /* SMBus ARP Client */
|
#define I2C_DRIVERID_ARP 902 /* SMBus ARP Client */
|
||||||
|
|
1131
sound/soc/codecs/wm8750.c
Normal file
1131
sound/soc/codecs/wm8750.c
Normal file
File diff suppressed because it is too large
Load diff
66
sound/soc/codecs/wm8750.h
Normal file
66
sound/soc/codecs/wm8750.h
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
/*
|
||||||
|
* 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 _WM8750_H
|
||||||
|
#define _WM8750_H
|
||||||
|
|
||||||
|
/* WM8750 register space */
|
||||||
|
|
||||||
|
#define WM8750_LINVOL 0x00
|
||||||
|
#define WM8750_RINVOL 0x01
|
||||||
|
#define WM8750_LOUT1V 0x02
|
||||||
|
#define WM8750_ROUT1V 0x03
|
||||||
|
#define WM8750_ADCDAC 0x05
|
||||||
|
#define WM8750_IFACE 0x07
|
||||||
|
#define WM8750_SRATE 0x08
|
||||||
|
#define WM8750_LDAC 0x0a
|
||||||
|
#define WM8750_RDAC 0x0b
|
||||||
|
#define WM8750_BASS 0x0c
|
||||||
|
#define WM8750_TREBLE 0x0d
|
||||||
|
#define WM8750_RESET 0x0f
|
||||||
|
#define WM8750_3D 0x10
|
||||||
|
#define WM8750_ALC1 0x11
|
||||||
|
#define WM8750_ALC2 0x12
|
||||||
|
#define WM8750_ALC3 0x13
|
||||||
|
#define WM8750_NGATE 0x14
|
||||||
|
#define WM8750_LADC 0x15
|
||||||
|
#define WM8750_RADC 0x16
|
||||||
|
#define WM8750_ADCTL1 0x17
|
||||||
|
#define WM8750_ADCTL2 0x18
|
||||||
|
#define WM8750_PWR1 0x19
|
||||||
|
#define WM8750_PWR2 0x1a
|
||||||
|
#define WM8750_ADCTL3 0x1b
|
||||||
|
#define WM8750_ADCIN 0x1f
|
||||||
|
#define WM8750_LADCIN 0x20
|
||||||
|
#define WM8750_RADCIN 0x21
|
||||||
|
#define WM8750_LOUTM1 0x22
|
||||||
|
#define WM8750_LOUTM2 0x23
|
||||||
|
#define WM8750_ROUTM1 0x24
|
||||||
|
#define WM8750_ROUTM2 0x25
|
||||||
|
#define WM8750_MOUTM1 0x26
|
||||||
|
#define WM8750_MOUTM2 0x27
|
||||||
|
#define WM8750_LOUT2V 0x28
|
||||||
|
#define WM8750_ROUT2V 0x29
|
||||||
|
#define WM8750_MOUTV 0x2a
|
||||||
|
|
||||||
|
#define WM8750_CACHE_REGNUM 0x2a
|
||||||
|
|
||||||
|
struct wm8750_setup_data {
|
||||||
|
unsigned short i2c_address;
|
||||||
|
unsigned int mclk;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern struct snd_soc_codec_dai wm8750_dai;
|
||||||
|
extern struct snd_soc_codec_device soc_codec_dev_wm8750;
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in a new issue