diff options
| author | Mark Brown <broonie@linaro.org> | 2014-03-06 21:59:36 -0500 |
|---|---|---|
| committer | Mark Brown <broonie@linaro.org> | 2014-03-06 21:59:36 -0500 |
| commit | 8b621d0faedacca4e2d1f1d5f371e081af8ff2c1 (patch) | |
| tree | 413b4b56d4ab50302ef064e58a691e657041330c | |
| parent | 4f07c9ccdf92155dd8a216eee262f2954a6d69a2 (diff) | |
| parent | cc1bc54aa787c39125fe843e81bd693e8f507c32 (diff) | |
Merge branch 'topic/tlv320aic23' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-samsung
| -rw-r--r-- | sound/soc/atmel/Kconfig | 2 | ||||
| -rw-r--r-- | sound/soc/cirrus/Kconfig | 2 | ||||
| -rw-r--r-- | sound/soc/codecs/Kconfig | 11 | ||||
| -rw-r--r-- | sound/soc/codecs/Makefile | 4 | ||||
| -rw-r--r-- | sound/soc/codecs/tlv320aic23-i2c.c | 59 | ||||
| -rw-r--r-- | sound/soc/codecs/tlv320aic23-spi.c | 57 | ||||
| -rw-r--r-- | sound/soc/codecs/tlv320aic23.c | 67 | ||||
| -rw-r--r-- | sound/soc/codecs/tlv320aic23.h | 6 | ||||
| -rw-r--r-- | sound/soc/fsl/Kconfig | 2 | ||||
| -rw-r--r-- | sound/soc/omap/Kconfig | 4 | ||||
| -rw-r--r-- | sound/soc/samsung/Kconfig | 2 | ||||
| -rw-r--r-- | sound/soc/tegra/Kconfig | 2 |
12 files changed, 160 insertions, 58 deletions
diff --git a/sound/soc/atmel/Kconfig b/sound/soc/atmel/Kconfig index e634eb78ed03..4789619a52d8 100644 --- a/sound/soc/atmel/Kconfig +++ b/sound/soc/atmel/Kconfig | |||
| @@ -58,6 +58,6 @@ config SND_AT91_SOC_AFEB9260 | |||
| 58 | depends on ARCH_AT91 && ATMEL_SSC && ARCH_AT91 && MACH_AFEB9260 && SND_ATMEL_SOC | 58 | depends on ARCH_AT91 && ATMEL_SSC && ARCH_AT91 && MACH_AFEB9260 && SND_ATMEL_SOC |
| 59 | select SND_ATMEL_SOC_PDC | 59 | select SND_ATMEL_SOC_PDC |
| 60 | select SND_ATMEL_SOC_SSC | 60 | select SND_ATMEL_SOC_SSC |
| 61 | select SND_SOC_TLV320AIC23 | 61 | select SND_SOC_TLV320AIC23_I2C |
| 62 | help | 62 | help |
| 63 | Say Y here to support sound on AFEB9260 board. | 63 | Say Y here to support sound on AFEB9260 board. |
diff --git a/sound/soc/cirrus/Kconfig b/sound/soc/cirrus/Kconfig index 06f938deda15..a0bf4a610397 100644 --- a/sound/soc/cirrus/Kconfig +++ b/sound/soc/cirrus/Kconfig | |||
| @@ -18,7 +18,7 @@ config SND_EP93XX_SOC_SNAPPERCL15 | |||
| 18 | tristate "SoC Audio support for Bluewater Systems Snapper CL15 module" | 18 | tristate "SoC Audio support for Bluewater Systems Snapper CL15 module" |
| 19 | depends on SND_EP93XX_SOC && MACH_SNAPPER_CL15 | 19 | depends on SND_EP93XX_SOC && MACH_SNAPPER_CL15 |
| 20 | select SND_EP93XX_SOC_I2S | 20 | select SND_EP93XX_SOC_I2S |
| 21 | select SND_SOC_TLV320AIC23 | 21 | select SND_SOC_TLV320AIC23_I2C |
| 22 | help | 22 | help |
| 23 | Say Y or M here if you want to add support for I2S audio on the | 23 | Say Y or M here if you want to add support for I2S audio on the |
| 24 | Bluewater Systems Snapper CL15 module. | 24 | Bluewater Systems Snapper CL15 module. |
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig index 983d087aa92a..5e4fc048d42a 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig | |||
| @@ -71,7 +71,8 @@ config SND_SOC_ALL_CODECS | |||
| 71 | select SND_SOC_STA529 if I2C | 71 | select SND_SOC_STA529 if I2C |
| 72 | select SND_SOC_STAC9766 if SND_SOC_AC97_BUS | 72 | select SND_SOC_STAC9766 if SND_SOC_AC97_BUS |
| 73 | select SND_SOC_TAS5086 if I2C | 73 | select SND_SOC_TAS5086 if I2C |
| 74 | select SND_SOC_TLV320AIC23 if I2C | 74 | select SND_SOC_TLV320AIC23_I2C if I2C |
| 75 | select SND_SOC_TLV320AIC23_SPI if SPI_MASTER | ||
| 75 | select SND_SOC_TLV320AIC26 if SPI_MASTER | 76 | select SND_SOC_TLV320AIC26 if SPI_MASTER |
| 76 | select SND_SOC_TLV320AIC32X4 if I2C | 77 | select SND_SOC_TLV320AIC32X4 if I2C |
| 77 | select SND_SOC_TLV320AIC3X if I2C | 78 | select SND_SOC_TLV320AIC3X if I2C |
| @@ -357,6 +358,14 @@ config SND_SOC_TAS5086 | |||
| 357 | config SND_SOC_TLV320AIC23 | 358 | config SND_SOC_TLV320AIC23 |
| 358 | tristate | 359 | tristate |
| 359 | 360 | ||
| 361 | config SND_SOC_TLV320AIC23_I2C | ||
| 362 | tristate | ||
| 363 | select SND_SOC_TLV320AIC23 | ||
| 364 | |||
| 365 | config SND_SOC_TLV320AIC23_SPI | ||
| 366 | tristate | ||
| 367 | select SND_SOC_TLV320AIC23 | ||
| 368 | |||
| 360 | config SND_SOC_TLV320AIC26 | 369 | config SND_SOC_TLV320AIC26 |
| 361 | tristate | 370 | tristate |
| 362 | depends on SPI | 371 | depends on SPI |
diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile index bc126764a44d..ed1fd8925e43 100644 --- a/sound/soc/codecs/Makefile +++ b/sound/soc/codecs/Makefile | |||
| @@ -63,6 +63,8 @@ snd-soc-sta529-objs := sta529.o | |||
| 63 | snd-soc-stac9766-objs := stac9766.o | 63 | snd-soc-stac9766-objs := stac9766.o |
| 64 | snd-soc-tas5086-objs := tas5086.o | 64 | snd-soc-tas5086-objs := tas5086.o |
| 65 | snd-soc-tlv320aic23-objs := tlv320aic23.o | 65 | snd-soc-tlv320aic23-objs := tlv320aic23.o |
| 66 | snd-soc-tlv320aic23-i2c-objs := tlv320aic23-i2c.o | ||
| 67 | snd-soc-tlv320aic23-spi-objs := tlv320aic23-spi.o | ||
| 66 | snd-soc-tlv320aic26-objs := tlv320aic26.o | 68 | snd-soc-tlv320aic26-objs := tlv320aic26.o |
| 67 | snd-soc-tlv320aic3x-objs := tlv320aic3x.o | 69 | snd-soc-tlv320aic3x-objs := tlv320aic3x.o |
| 68 | snd-soc-tlv320aic32x4-objs := tlv320aic32x4.o | 70 | snd-soc-tlv320aic32x4-objs := tlv320aic32x4.o |
| @@ -193,6 +195,8 @@ obj-$(CONFIG_SND_SOC_STA529) += snd-soc-sta529.o | |||
| 193 | obj-$(CONFIG_SND_SOC_STAC9766) += snd-soc-stac9766.o | 195 | obj-$(CONFIG_SND_SOC_STAC9766) += snd-soc-stac9766.o |
| 194 | obj-$(CONFIG_SND_SOC_TAS5086) += snd-soc-tas5086.o | 196 | obj-$(CONFIG_SND_SOC_TAS5086) += snd-soc-tas5086.o |
| 195 | obj-$(CONFIG_SND_SOC_TLV320AIC23) += snd-soc-tlv320aic23.o | 197 | obj-$(CONFIG_SND_SOC_TLV320AIC23) += snd-soc-tlv320aic23.o |
| 198 | obj-$(CONFIG_SND_SOC_TLV320AIC23_I2C) += snd-soc-tlv320aic23-i2c.o | ||
| 199 | obj-$(CONFIG_SND_SOC_TLV320AIC23_SPI) += snd-soc-tlv320aic23-spi.o | ||
| 196 | obj-$(CONFIG_SND_SOC_TLV320AIC26) += snd-soc-tlv320aic26.o | 200 | obj-$(CONFIG_SND_SOC_TLV320AIC26) += snd-soc-tlv320aic26.o |
| 197 | obj-$(CONFIG_SND_SOC_TLV320AIC3X) += snd-soc-tlv320aic3x.o | 201 | obj-$(CONFIG_SND_SOC_TLV320AIC3X) += snd-soc-tlv320aic3x.o |
| 198 | obj-$(CONFIG_SND_SOC_TLV320AIC32X4) += snd-soc-tlv320aic32x4.o | 202 | obj-$(CONFIG_SND_SOC_TLV320AIC32X4) += snd-soc-tlv320aic32x4.o |
diff --git a/sound/soc/codecs/tlv320aic23-i2c.c b/sound/soc/codecs/tlv320aic23-i2c.c new file mode 100644 index 000000000000..20fc46092c2c --- /dev/null +++ b/sound/soc/codecs/tlv320aic23-i2c.c | |||
| @@ -0,0 +1,59 @@ | |||
| 1 | /* | ||
| 2 | * ALSA SoC TLV320AIC23 codec driver I2C interface | ||
| 3 | * | ||
| 4 | * Author: Arun KS, <arunks@mistralsolutions.com> | ||
| 5 | * Copyright: (C) 2008 Mistral Solutions Pvt Ltd., | ||
| 6 | * | ||
| 7 | * Based on sound/soc/codecs/wm8731.c by Richard Purdie | ||
| 8 | * | ||
| 9 | * This program is free software; you can redistribute it and/or modify | ||
| 10 | * it under the terms of the GNU General Public License version 2 as | ||
| 11 | * published by the Free Software Foundation. | ||
| 12 | */ | ||
| 13 | |||
| 14 | #include <linux/i2c.h> | ||
| 15 | #include <linux/module.h> | ||
| 16 | #include <linux/regmap.h> | ||
| 17 | #include <sound/soc.h> | ||
| 18 | |||
| 19 | #include "tlv320aic23.h" | ||
| 20 | |||
| 21 | static int tlv320aic23_i2c_probe(struct i2c_client *i2c, | ||
| 22 | const struct i2c_device_id *i2c_id) | ||
| 23 | { | ||
| 24 | struct regmap *regmap; | ||
| 25 | |||
| 26 | if (!i2c_check_functionality(i2c->adapter, I2C_FUNC_SMBUS_BYTE_DATA)) | ||
| 27 | return -EINVAL; | ||
| 28 | |||
| 29 | regmap = devm_regmap_init_i2c(i2c, &tlv320aic23_regmap); | ||
| 30 | return tlv320aic23_probe(&i2c->dev, regmap); | ||
| 31 | } | ||
| 32 | |||
| 33 | static int __exit tlv320aic23_i2c_remove(struct i2c_client *i2c) | ||
| 34 | { | ||
| 35 | snd_soc_unregister_codec(&i2c->dev); | ||
| 36 | return 0; | ||
| 37 | } | ||
| 38 | |||
| 39 | static const struct i2c_device_id tlv320aic23_id[] = { | ||
| 40 | {"tlv320aic23", 0}, | ||
| 41 | {} | ||
| 42 | }; | ||
| 43 | |||
| 44 | MODULE_DEVICE_TABLE(i2c, tlv320aic23_id); | ||
| 45 | |||
| 46 | static struct i2c_driver tlv320aic23_i2c_driver = { | ||
| 47 | .driver = { | ||
| 48 | .name = "tlv320aic23-codec", | ||
| 49 | }, | ||
| 50 | .probe = tlv320aic23_i2c_probe, | ||
| 51 | .remove = __exit_p(tlv320aic23_i2c_remove), | ||
| 52 | .id_table = tlv320aic23_id, | ||
| 53 | }; | ||
| 54 | |||
| 55 | module_i2c_driver(tlv320aic23_i2c_driver); | ||
| 56 | |||
| 57 | MODULE_DESCRIPTION("ASoC TLV320AIC23 codec driver I2C"); | ||
| 58 | MODULE_AUTHOR("Arun KS <arunks@mistralsolutions.com>"); | ||
| 59 | MODULE_LICENSE("GPL"); | ||
diff --git a/sound/soc/codecs/tlv320aic23-spi.c b/sound/soc/codecs/tlv320aic23-spi.c new file mode 100644 index 000000000000..585aea436c6a --- /dev/null +++ b/sound/soc/codecs/tlv320aic23-spi.c | |||
| @@ -0,0 +1,57 @@ | |||
| 1 | /* | ||
| 2 | * ALSA SoC TLV320AIC23 codec driver SPI interface | ||
| 3 | * | ||
| 4 | * Author: Arun KS, <arunks@mistralsolutions.com> | ||
| 5 | * Copyright: (C) 2008 Mistral Solutions Pvt Ltd., | ||
| 6 | * | ||
| 7 | * Based on sound/soc/codecs/wm8731.c by Richard Purdie | ||
| 8 | * | ||
| 9 | * This program is free software; you can redistribute it and/or modify | ||
| 10 | * it under the terms of the GNU General Public License version 2 as | ||
| 11 | * published by the Free Software Foundation. | ||
| 12 | */ | ||
| 13 | |||
| 14 | #include <linux/module.h> | ||
| 15 | #include <linux/regmap.h> | ||
| 16 | #include <linux/spi/spi.h> | ||
| 17 | #include <sound/soc.h> | ||
| 18 | |||
| 19 | #include "tlv320aic23.h" | ||
| 20 | |||
| 21 | static int aic23_spi_probe(struct spi_device *spi) | ||
| 22 | { | ||
| 23 | int ret; | ||
| 24 | struct regmap *regmap; | ||
| 25 | |||
| 26 | dev_dbg(&spi->dev, "probing tlv320aic23 spi device\n"); | ||
| 27 | |||
| 28 | spi->bits_per_word = 16; | ||
| 29 | spi->mode = SPI_MODE_0; | ||
| 30 | ret = spi_setup(spi); | ||
| 31 | if (ret < 0) | ||
| 32 | return ret; | ||
| 33 | |||
| 34 | regmap = devm_regmap_init_spi(spi, &tlv320aic23_regmap); | ||
| 35 | return tlv320aic23_probe(&spi->dev, regmap); | ||
| 36 | } | ||
| 37 | |||
| 38 | static int aic23_spi_remove(struct spi_device *spi) | ||
| 39 | { | ||
| 40 | snd_soc_unregister_codec(&spi->dev); | ||
| 41 | return 0; | ||
| 42 | } | ||
| 43 | |||
| 44 | static struct spi_driver aic23_spi = { | ||
| 45 | .driver = { | ||
| 46 | .name = "tlv320aic23", | ||
| 47 | .owner = THIS_MODULE, | ||
| 48 | }, | ||
| 49 | .probe = aic23_spi_probe, | ||
| 50 | .remove = aic23_spi_remove, | ||
| 51 | }; | ||
| 52 | |||
| 53 | module_spi_driver(aic23_spi); | ||
| 54 | |||
| 55 | MODULE_DESCRIPTION("ASoC TLV320AIC23 codec driver SPI"); | ||
| 56 | MODULE_AUTHOR("Arun KS <arunks@mistralsolutions.com>"); | ||
| 57 | MODULE_LICENSE("GPL"); | ||
diff --git a/sound/soc/codecs/tlv320aic23.c b/sound/soc/codecs/tlv320aic23.c index 5d430cc56f51..ab369ae76b8c 100644 --- a/sound/soc/codecs/tlv320aic23.c +++ b/sound/soc/codecs/tlv320aic23.c | |||
| @@ -23,7 +23,6 @@ | |||
| 23 | #include <linux/init.h> | 23 | #include <linux/init.h> |
| 24 | #include <linux/delay.h> | 24 | #include <linux/delay.h> |
| 25 | #include <linux/pm.h> | 25 | #include <linux/pm.h> |
| 26 | #include <linux/i2c.h> | ||
| 27 | #include <linux/regmap.h> | 26 | #include <linux/regmap.h> |
| 28 | #include <linux/slab.h> | 27 | #include <linux/slab.h> |
| 29 | #include <sound/core.h> | 28 | #include <sound/core.h> |
| @@ -51,7 +50,7 @@ static const struct reg_default tlv320aic23_reg[] = { | |||
| 51 | { 9, 0x0000 }, | 50 | { 9, 0x0000 }, |
| 52 | }; | 51 | }; |
| 53 | 52 | ||
| 54 | static const struct regmap_config tlv320aic23_regmap = { | 53 | const struct regmap_config tlv320aic23_regmap = { |
| 55 | .reg_bits = 7, | 54 | .reg_bits = 7, |
| 56 | .val_bits = 9, | 55 | .val_bits = 9, |
| 57 | 56 | ||
| @@ -64,16 +63,16 @@ static const struct regmap_config tlv320aic23_regmap = { | |||
| 64 | static const char *rec_src_text[] = { "Line", "Mic" }; | 63 | static const char *rec_src_text[] = { "Line", "Mic" }; |
| 65 | static const char *deemph_text[] = {"None", "32Khz", "44.1Khz", "48Khz"}; | 64 | static const char *deemph_text[] = {"None", "32Khz", "44.1Khz", "48Khz"}; |
| 66 | 65 | ||
| 67 | static const struct soc_enum rec_src_enum = | 66 | static SOC_ENUM_SINGLE_DECL(rec_src_enum, |
| 68 | SOC_ENUM_SINGLE(TLV320AIC23_ANLG, 2, 2, rec_src_text); | 67 | TLV320AIC23_ANLG, 2, rec_src_text); |
| 69 | 68 | ||
| 70 | static const struct snd_kcontrol_new tlv320aic23_rec_src_mux_controls = | 69 | static const struct snd_kcontrol_new tlv320aic23_rec_src_mux_controls = |
| 71 | SOC_DAPM_ENUM("Input Select", rec_src_enum); | 70 | SOC_DAPM_ENUM("Input Select", rec_src_enum); |
| 72 | 71 | ||
| 73 | static const struct soc_enum tlv320aic23_rec_src = | 72 | static SOC_ENUM_SINGLE_DECL(tlv320aic23_rec_src, |
| 74 | SOC_ENUM_SINGLE(TLV320AIC23_ANLG, 2, 2, rec_src_text); | 73 | TLV320AIC23_ANLG, 2, rec_src_text); |
| 75 | static const struct soc_enum tlv320aic23_deemph = | 74 | static SOC_ENUM_SINGLE_DECL(tlv320aic23_deemph, |
| 76 | SOC_ENUM_SINGLE(TLV320AIC23_DIGT, 1, 4, deemph_text); | 75 | TLV320AIC23_DIGT, 1, deemph_text); |
| 77 | 76 | ||
| 78 | static const DECLARE_TLV_DB_SCALE(out_gain_tlv, -12100, 100, 0); | 77 | static const DECLARE_TLV_DB_SCALE(out_gain_tlv, -12100, 100, 0); |
| 79 | static const DECLARE_TLV_DB_SCALE(input_gain_tlv, -1725, 75, 0); | 78 | static const DECLARE_TLV_DB_SCALE(input_gain_tlv, -1725, 75, 0); |
| @@ -557,7 +556,7 @@ static int tlv320aic23_resume(struct snd_soc_codec *codec) | |||
| 557 | return 0; | 556 | return 0; |
| 558 | } | 557 | } |
| 559 | 558 | ||
| 560 | static int tlv320aic23_probe(struct snd_soc_codec *codec) | 559 | static int tlv320aic23_codec_probe(struct snd_soc_codec *codec) |
| 561 | { | 560 | { |
| 562 | int ret; | 561 | int ret; |
| 563 | 562 | ||
| @@ -604,7 +603,7 @@ static int tlv320aic23_remove(struct snd_soc_codec *codec) | |||
| 604 | } | 603 | } |
| 605 | 604 | ||
| 606 | static struct snd_soc_codec_driver soc_codec_dev_tlv320aic23 = { | 605 | static struct snd_soc_codec_driver soc_codec_dev_tlv320aic23 = { |
| 607 | .probe = tlv320aic23_probe, | 606 | .probe = tlv320aic23_codec_probe, |
| 608 | .remove = tlv320aic23_remove, | 607 | .remove = tlv320aic23_remove, |
| 609 | .suspend = tlv320aic23_suspend, | 608 | .suspend = tlv320aic23_suspend, |
| 610 | .resume = tlv320aic23_resume, | 609 | .resume = tlv320aic23_resume, |
| @@ -617,57 +616,25 @@ static struct snd_soc_codec_driver soc_codec_dev_tlv320aic23 = { | |||
| 617 | .num_dapm_routes = ARRAY_SIZE(tlv320aic23_intercon), | 616 | .num_dapm_routes = ARRAY_SIZE(tlv320aic23_intercon), |
| 618 | }; | 617 | }; |
| 619 | 618 | ||
| 620 | /* | 619 | int tlv320aic23_probe(struct device *dev, struct regmap *regmap) |
| 621 | * If the i2c layer weren't so broken, we could pass this kind of data | ||
| 622 | * around | ||
| 623 | */ | ||
| 624 | static int tlv320aic23_codec_probe(struct i2c_client *i2c, | ||
| 625 | const struct i2c_device_id *i2c_id) | ||
| 626 | { | 620 | { |
| 627 | struct aic23 *aic23; | 621 | struct aic23 *aic23; |
| 628 | int ret; | ||
| 629 | 622 | ||
| 630 | if (!i2c_check_functionality(i2c->adapter, I2C_FUNC_SMBUS_BYTE_DATA)) | 623 | if (IS_ERR(regmap)) |
| 631 | return -EINVAL; | 624 | return PTR_ERR(regmap); |
| 632 | 625 | ||
| 633 | aic23 = devm_kzalloc(&i2c->dev, sizeof(struct aic23), GFP_KERNEL); | 626 | aic23 = devm_kzalloc(dev, sizeof(struct aic23), GFP_KERNEL); |
| 634 | if (aic23 == NULL) | 627 | if (aic23 == NULL) |
| 635 | return -ENOMEM; | 628 | return -ENOMEM; |
| 636 | 629 | ||
| 637 | aic23->regmap = devm_regmap_init_i2c(i2c, &tlv320aic23_regmap); | 630 | aic23->regmap = regmap; |
| 638 | if (IS_ERR(aic23->regmap)) | ||
| 639 | return PTR_ERR(aic23->regmap); | ||
| 640 | 631 | ||
| 641 | i2c_set_clientdata(i2c, aic23); | 632 | dev_set_drvdata(dev, aic23); |
| 642 | 633 | ||
| 643 | ret = snd_soc_register_codec(&i2c->dev, | 634 | return snd_soc_register_codec(dev, &soc_codec_dev_tlv320aic23, |
| 644 | &soc_codec_dev_tlv320aic23, &tlv320aic23_dai, 1); | 635 | &tlv320aic23_dai, 1); |
| 645 | return ret; | ||
| 646 | } | ||
| 647 | static int __exit tlv320aic23_i2c_remove(struct i2c_client *i2c) | ||
| 648 | { | ||
| 649 | snd_soc_unregister_codec(&i2c->dev); | ||
| 650 | return 0; | ||
| 651 | } | 636 | } |
| 652 | 637 | ||
| 653 | static const struct i2c_device_id tlv320aic23_id[] = { | ||
| 654 | {"tlv320aic23", 0}, | ||
| 655 | {} | ||
| 656 | }; | ||
| 657 | |||
| 658 | MODULE_DEVICE_TABLE(i2c, tlv320aic23_id); | ||
| 659 | |||
| 660 | static struct i2c_driver tlv320aic23_i2c_driver = { | ||
| 661 | .driver = { | ||
| 662 | .name = "tlv320aic23-codec", | ||
| 663 | }, | ||
| 664 | .probe = tlv320aic23_codec_probe, | ||
| 665 | .remove = __exit_p(tlv320aic23_i2c_remove), | ||
| 666 | .id_table = tlv320aic23_id, | ||
| 667 | }; | ||
| 668 | |||
| 669 | module_i2c_driver(tlv320aic23_i2c_driver); | ||
| 670 | |||
| 671 | MODULE_DESCRIPTION("ASoC TLV320AIC23 codec driver"); | 638 | MODULE_DESCRIPTION("ASoC TLV320AIC23 codec driver"); |
| 672 | MODULE_AUTHOR("Arun KS <arunks@mistralsolutions.com>"); | 639 | MODULE_AUTHOR("Arun KS <arunks@mistralsolutions.com>"); |
| 673 | MODULE_LICENSE("GPL"); | 640 | MODULE_LICENSE("GPL"); |
diff --git a/sound/soc/codecs/tlv320aic23.h b/sound/soc/codecs/tlv320aic23.h index e804120bd3da..3a7235a04a89 100644 --- a/sound/soc/codecs/tlv320aic23.h +++ b/sound/soc/codecs/tlv320aic23.h | |||
| @@ -12,6 +12,12 @@ | |||
| 12 | #ifndef _TLV320AIC23_H | 12 | #ifndef _TLV320AIC23_H |
| 13 | #define _TLV320AIC23_H | 13 | #define _TLV320AIC23_H |
| 14 | 14 | ||
| 15 | struct device; | ||
| 16 | struct regmap_config; | ||
| 17 | |||
| 18 | extern const struct regmap_config tlv320aic23_regmap; | ||
| 19 | int tlv320aic23_probe(struct device *dev, struct regmap *regmap); | ||
| 20 | |||
| 15 | /* Codec TLV320AIC23 */ | 21 | /* Codec TLV320AIC23 */ |
| 16 | #define TLV320AIC23_LINVOL 0x00 | 22 | #define TLV320AIC23_LINVOL 0x00 |
| 17 | #define TLV320AIC23_RINVOL 0x01 | 23 | #define TLV320AIC23_RINVOL 0x01 |
diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig index 07f8f141727d..19a18a4f133a 100644 --- a/sound/soc/fsl/Kconfig +++ b/sound/soc/fsl/Kconfig | |||
| @@ -170,7 +170,7 @@ config SND_SOC_EUKREA_TLV320 | |||
| 170 | || MACH_EUKREA_MBIMXSD35_BASEBOARD \ | 170 | || MACH_EUKREA_MBIMXSD35_BASEBOARD \ |
| 171 | || MACH_EUKREA_MBIMXSD51_BASEBOARD | 171 | || MACH_EUKREA_MBIMXSD51_BASEBOARD |
| 172 | depends on I2C | 172 | depends on I2C |
| 173 | select SND_SOC_TLV320AIC23 | 173 | select SND_SOC_TLV320AIC23_I2C |
| 174 | select SND_SOC_IMX_PCM_FIQ | 174 | select SND_SOC_IMX_PCM_FIQ |
| 175 | select SND_SOC_IMX_AUDMUX | 175 | select SND_SOC_IMX_AUDMUX |
| 176 | select SND_SOC_IMX_SSI | 176 | select SND_SOC_IMX_SSI |
diff --git a/sound/soc/omap/Kconfig b/sound/soc/omap/Kconfig index 22ad9c5654b5..e00659351a4e 100644 --- a/sound/soc/omap/Kconfig +++ b/sound/soc/omap/Kconfig | |||
| @@ -58,7 +58,7 @@ config SND_OMAP_SOC_OSK5912 | |||
| 58 | tristate "SoC Audio support for omap osk5912" | 58 | tristate "SoC Audio support for omap osk5912" |
| 59 | depends on SND_OMAP_SOC && MACH_OMAP_OSK && I2C | 59 | depends on SND_OMAP_SOC && MACH_OMAP_OSK && I2C |
| 60 | select SND_OMAP_SOC_MCBSP | 60 | select SND_OMAP_SOC_MCBSP |
| 61 | select SND_SOC_TLV320AIC23 | 61 | select SND_SOC_TLV320AIC23_I2C |
| 62 | help | 62 | help |
| 63 | Say Y if you want to add support for SoC audio on osk5912. | 63 | Say Y if you want to add support for SoC audio on osk5912. |
| 64 | 64 | ||
| @@ -66,7 +66,7 @@ config SND_OMAP_SOC_AM3517EVM | |||
| 66 | tristate "SoC Audio support for OMAP3517 / AM3517 EVM" | 66 | tristate "SoC Audio support for OMAP3517 / AM3517 EVM" |
| 67 | depends on SND_OMAP_SOC && MACH_OMAP3517EVM && I2C | 67 | depends on SND_OMAP_SOC && MACH_OMAP3517EVM && I2C |
| 68 | select SND_OMAP_SOC_MCBSP | 68 | select SND_OMAP_SOC_MCBSP |
| 69 | select SND_SOC_TLV320AIC23 | 69 | select SND_SOC_TLV320AIC23_I2C |
| 70 | help | 70 | help |
| 71 | Say Y if you want to add support for SoC audio on the OMAP3517 / AM3517 | 71 | Say Y if you want to add support for SoC audio on the OMAP3517 / AM3517 |
| 72 | EVM. | 72 | EVM. |
diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig index 454f41cfc828..47a7a1b633ae 100644 --- a/sound/soc/samsung/Kconfig +++ b/sound/soc/samsung/Kconfig | |||
| @@ -117,7 +117,7 @@ config SND_SOC_SAMSUNG_SIMTEC_TLV320AIC23 | |||
| 117 | tristate "SoC I2S Audio support for TLV320AIC23 on Simtec boards" | 117 | tristate "SoC I2S Audio support for TLV320AIC23 on Simtec boards" |
| 118 | depends on SND_SOC_SAMSUNG && ARCH_S3C24XX | 118 | depends on SND_SOC_SAMSUNG && ARCH_S3C24XX |
| 119 | select SND_S3C24XX_I2S | 119 | select SND_S3C24XX_I2S |
| 120 | select SND_SOC_TLV320AIC23 | 120 | select SND_SOC_TLV320AIC23_I2C |
| 121 | select SND_SOC_SAMSUNG_SIMTEC | 121 | select SND_SOC_SAMSUNG_SIMTEC |
| 122 | 122 | ||
| 123 | config SND_SOC_SAMSUNG_SIMTEC_HERMES | 123 | config SND_SOC_SAMSUNG_SIMTEC_HERMES |
diff --git a/sound/soc/tegra/Kconfig b/sound/soc/tegra/Kconfig index 9f9c1856f822..31198cf7f88d 100644 --- a/sound/soc/tegra/Kconfig +++ b/sound/soc/tegra/Kconfig | |||
| @@ -105,7 +105,7 @@ config SND_SOC_TEGRA_TRIMSLICE | |||
| 105 | tristate "SoC Audio support for TrimSlice board" | 105 | tristate "SoC Audio support for TrimSlice board" |
| 106 | depends on SND_SOC_TEGRA && I2C | 106 | depends on SND_SOC_TEGRA && I2C |
| 107 | select SND_SOC_TEGRA20_I2S if ARCH_TEGRA_2x_SOC | 107 | select SND_SOC_TEGRA20_I2S if ARCH_TEGRA_2x_SOC |
| 108 | select SND_SOC_TLV320AIC23 | 108 | select SND_SOC_TLV320AIC23_I2C |
| 109 | help | 109 | help |
| 110 | Say Y or M here if you want to add support for SoC audio on the | 110 | Say Y or M here if you want to add support for SoC audio on the |
| 111 | TrimSlice platform. | 111 | TrimSlice platform. |
