linux/sound/soc/codecs
Mark Brown 78b76dbec8 ASoC: wm8994: Simplify button detection code
Currently the WM8994 driver allows the WM8958 microphone detection code to
be replaced in its entirety, providing a default implementation. This
doesn't actually reflect the needs of users well. They generally wish to
replace only the accessory identification parts of the algorithm (eg,
using an external GPIO to provide the equivalent of the JACKDET support in
the WM1811A).

In preparation for supporting these users better refactor the existing code
so that we have separate identification and button detection callbacks,
selecting between them rather than using the mic_detecting flag in the
existing callback. This also simplifies the code by introducing a more
explicit state machine for the detecting and button states.

In anticipation of future refactoring the callback is left in the signature
for wm8958_mic_detect(), it will be removed at a later stage.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-12-03 16:34:09 +09:00
..
88pm860x-codec.c ASoC: Convert 88pm860x-codec to devm_kzalloc() 2011-12-27 12:58:02 +00:00
88pm860x-codec.h
ab8500-codec.c Merge remote-tracking branch 'asoc/topic/ux500' into for-3.7 2012-09-22 18:47:58 -04:00
ab8500-codec.h ASoC: codecs: Add AB8500 codec-driver 2012-06-11 13:19:02 +08:00
ac97.c ASoC: ac97: Remove empty remove() function 2012-06-03 13:06:39 +01:00
ad193x.c ASoC: ad193x: Use managed regmap init 2012-09-13 18:08:21 +08:00
ad193x.h ASoC: ad193x: Use snd_soc_update_bits where appropriate 2011-11-28 18:57:52 +00:00
ad1836.c ASoC: ad1836: Convert to direct regmap usage. 2012-09-13 18:08:21 +08:00
ad1836.h ASoC: Fix wrong define for AD1836_ADC_WORD_OFFSET 2011-11-22 13:06:14 +00:00
ad1980.c Revert "ASoC: AC97 doesn't use regmap by default" 2012-09-11 11:26:03 +08:00
ad1980.h
ad73311.c ASoC: Convert CODEC drivers to module_platform_driver 2011-11-28 11:33:29 +00:00
ad73311.h
adau1373.c ASoC: adau1373: Use module_i2c_driver 2012-08-06 15:20:35 +01:00
adau1373.h ASoC: Add ADAU1373 codec support 2011-08-17 00:53:54 +09:00
adau1701.c ASoC: adau1701: Use module_i2c_driver 2012-08-06 15:20:33 +01:00
adau1701.h
adav80x.c ASoC: Drop unused state parameter from CODEC suspend callback 2011-12-02 10:32:03 +00:00
adav80x.h
ads117x.c ASoC: Convert CODEC drivers to module_platform_driver 2011-11-28 11:33:29 +00:00
ak4104.c ASoC: codecs: Remove rtd->codec usage from CODEC drivers 2012-04-04 15:59:12 +01:00
ak4535.c ASoC: codecs: Remove rtd->codec usage from CODEC drivers 2012-04-04 15:59:12 +01:00
ak4535.h ASoC: ak4535: Convert to direct regmap API usage 2012-02-16 23:04:45 -08:00
ak4641.c ASoC: codecs: Remove rtd->codec usage from CODEC drivers 2012-04-04 15:59:12 +01:00
ak4641.h
ak4642.c ASoC: ak4642: fixup: mute needs +1 step 2012-04-05 11:08:45 +01:00
ak4671.c ASoC: ak4671: Use module_i2c_driver 2012-08-06 15:20:33 +01:00
ak4671.h
alc5623.c ASoC: alc5623: Convert to module_i2c_driver() 2012-05-08 18:46:30 +01:00
alc5623.h
alc5632.c ASoC: alc5632: Convert to devm_regmap_init_i2c() 2012-05-08 18:46:31 +01:00
alc5632.h ASoC: alc5632: Refactored DAPM routes to add voice support 2012-02-11 23:02:47 +00:00
arizona.c ASoC: arizona: Add more clock rates 2012-09-26 19:16:35 +01:00
arizona.h ASoC: arizona: Add more DSP options for mixer input muxes 2012-09-26 19:16:26 +01:00
cq93vc.c ASoC: core: Add support for DAI and machine kcontrols. 2012-02-04 12:40:11 +00:00
cs42l51.c ASoC: cs42l51: Use module_i2c_driver 2012-08-06 15:20:35 +01:00
cs42l51.h
cs42l52.c ASoC: cs42l52: Remove duplicate inclusion of slab.h header file 2012-08-07 15:09:25 +01:00
cs42l52.h ASoC: Add support for CS42L52 Codec 2012-04-30 23:36:20 +01:00
cs42l73.c ASoC: cs42l73: Convert to devm_regmap_init_i2c() 2012-06-05 11:03:35 +01:00
cs42l73.h ASoC: cs42l73: Unify the way to define bits of register 2011-11-22 13:02:09 +00:00
cs4270.c ASoC: cs4270: Remove mono support 2012-09-25 13:52:42 +01:00
cs4271.c ALSA: ASoC: add DT bindings for CS4271 2012-09-28 14:12:09 +01:00
cx20442.c ASoC: cx20442: add bias control over a platform provided regulator 2012-01-09 11:20:16 +00:00
cx20442.h
da732x_reg.h ASoC: codecs: Add DA732x codec driver 2012-06-11 20:23:55 +08:00
da732x.c ASoC: da732x: Staticise non-exported symbol soc_codec_dev_da732x 2012-06-23 12:11:29 +01:00
da732x.h ASoC: codecs: Add DA732x codec driver 2012-06-11 20:23:55 +08:00
da7210.c ASoC: da7210: Minor improvements and a bugfix 2012-05-03 18:53:52 +01:00
da9055.c ASoC: codecs: Add DA9055 codec driver 2012-09-28 14:21:54 +01:00
dfbmcs320.c ASoC: Convert CODEC drivers to module_platform_driver 2011-11-28 11:33:29 +00:00
dmic.c ASoC: Convert CODEC drivers to module_platform_driver 2011-11-28 11:33:29 +00:00
isabelle.c ASoC: isabelle: Remove version.h header file inclusion 2012-08-03 23:03:55 +01:00
isabelle.h ASoC: Support TI Isabelle Audio driver 2012-06-05 10:42:57 +01:00
jz4740.c ASoC: codecs: Remove rtd->codec usage from CODEC drivers 2012-04-04 15:59:12 +01:00
Kconfig ASoC: codecs: Add DA9055 codec driver 2012-09-28 14:21:54 +01:00
l3.c
lm4857.c ASoC: lm4857: Use module_i2c_driver 2012-08-06 15:20:33 +01:00
lm49453.c ASoC: lm59453: Unconstify dai_driver 2012-06-05 11:34:35 +01:00
lm49453.h ASoC: Support TI LM49453 Audio driver 2012-04-01 11:35:41 +01:00
Makefile ASoC: codecs: Add DA9055 codec driver 2012-09-28 14:21:54 +01:00
max9768.c ASoC: max9768: Fix build and use new add control API. 2012-02-06 16:52:16 +00:00
max9850.c ASoC: max9850: Use module_i2c_driver 2012-08-06 15:20:33 +01:00
max9850.h
max9877.c ASoC: max9877: Use module_i2c_driver 2012-08-06 15:20:31 +01:00
max9877.h
max98088.c ASoC: max98088: Use module_i2c_driver 2012-08-06 15:20:34 +01:00
max98088.h
max98095.c ASoC: max98095: Use module_i2c_driver 2012-08-06 15:20:35 +01:00
max98095.h ASoC: max98095: add jack detection 2012-04-01 11:28:24 +01:00
mc13783.c Linux 3.6-rc6 2012-09-22 11:26:27 -04:00
mc13783.h ASoC: Add mc13783 codec 2012-05-18 16:42:20 +01:00
ml26124.c ASoC: ml26124: Convert to devm_regmap_init_i2c 2012-06-13 17:27:27 +08:00
ml26124.h ASoC: Add LAPIS Semiconductor ML26124 driver 2012-04-01 11:28:28 +01:00
omap-hdmi.c ASoC: OMAP: HDMI: Introduce codec 2012-05-18 17:31:24 +01:00
pcm3008.c ASoC: Drop unused state parameter from CODEC suspend callback 2011-12-02 10:32:03 +00:00
pcm3008.h
rt5631.c ASoC: rt5631: Convert to direct regmap API usage 2012-05-09 12:54:07 +01:00
rt5631.h ASoC: Add driver for rt5631 2011-09-21 15:52:23 +01:00
sgtl5000.c ASoC: sgtl5000: enable VAG_POWER for LINE_IN 2012-07-31 16:40:08 +01:00
sgtl5000.h ASoC: sgtl5000: Fix define for SGTL5000_BIAS_R_MASK 2011-10-19 13:08:18 +01:00
sigmadsp.c ASoC: SigmaDSP: Add regmap support 2011-11-29 12:01:23 +00:00
sigmadsp.h ASoC: SigmaDSP: Add regmap support 2011-11-29 12:01:23 +00:00
sn95031.c ASoC: core: Add support for DAI and machine kcontrols. 2012-02-04 12:40:11 +00:00
sn95031.h
spdif_receiver.c ASoC: spdif_receiver: Add support for spdif in Audio Codec 2012-06-28 13:15:10 +01:00
spdif_transciever.c ASoC: Convert CODEC drivers to module_platform_driver 2011-11-28 11:33:29 +00:00
ssm2602.c ASoC: SSM2602: Convert to direct regmap API usage 2012-04-25 11:28:10 +01:00
ssm2602.h ASoC: ssm2602: Support setting the oscillator and the clock output state 2011-09-27 13:30:48 +01:00
sta32x.c ASoC: sta32x: Convert to regmap 2012-09-10 17:26:10 +08:00
sta32x.h ASoC: sta32x: preserve coefficient RAM 2011-11-14 21:32:12 +00:00
sta529.c ASoC: sta529: Staticise non-exported codec driver struct 2012-08-03 23:04:01 +01:00
stac9766.c Revert "ASoC: AC97 doesn't use regmap by default" 2012-09-11 11:26:03 +08:00
stac9766.h
tlv320aic3x.c ASoC: tlv320aic3x: Add device tree bindings 2012-08-27 10:25:58 -07:00
tlv320aic3x.h Merge branch 'for-3.5' into for-3.6 2012-07-23 10:45:07 +01:00
tlv320aic23.c Linux 3.4-rc7 2012-05-13 13:32:54 +01:00
tlv320aic23.h
tlv320aic26.c ASoC: tlv320aic26: Use module_spi_driver 2012-08-27 09:55:27 -07:00
tlv320aic26.h
tlv320aic32x4.c ASoC: tlv320aic32x4: Use module_i2c_driver 2012-08-06 15:20:30 +01:00
tlv320aic32x4.h
tlv320dac33.c ASoC: tlv320dac33: Use module_i2c_driver 2012-08-06 15:20:32 +01:00
tlv320dac33.h
tpa6130a2.c ASoC: tpa6130a2: Use module_i2c_driver 2012-08-06 15:20:36 +01:00
tpa6130a2.h
twl4030.c ASoC: twl4030: Support for DT booted kernel 2012-09-22 11:18:33 -04:00
twl6040.c ASoC: twl6040: Convert to use DAI DAPM widgets 2012-09-22 10:57:41 -04:00
twl6040.h ASoC: twl6040 - add method to query HS DC offset step size in mV 2012-01-20 13:58:26 +00:00
uda134x.c ASoC: codecs: Remove rtd->codec usage from CODEC drivers 2012-04-04 15:59:12 +01:00
uda134x.h
uda1380.c ASoC: codecs: Remove rtd->codec usage from CODEC drivers 2012-04-04 15:59:12 +01:00
uda1380.h
wl1273.c ASoC: codecs: Remove rtd->codec usage from CODEC drivers 2012-04-04 15:59:12 +01:00
wl1273.h
wm0010.c ASoC: wm0010: Initialise chip state before we register the interrupt 2012-09-26 13:54:00 +01:00
wm1250-ev1.c ASoC: wm1250-ev1: Flag all supported rates in the DAI 2012-07-05 20:49:37 +01:00
wm2000.c Sound updates for 3.7-rc1 2012-10-09 07:07:14 +09:00
wm2000.h ASoC: Convert WM2000 into a standard CODEC driver 2011-12-03 21:35:21 +00:00
wm2200.c ASoC: dapm: Add flags to regulator supplies 2012-09-08 08:47:28 +08:00
wm2200.h ASoC: wm2200: Add WM2200 CODEC driver 2012-01-26 16:07:55 +00:00
wm5100-tables.c ASoC: codecs: Refresh copyrights for Wolfson drivers 2012-06-03 13:06:37 +01:00
wm5100.c Sound updates for 3.7-rc1 2012-10-09 07:07:14 +09:00
wm5100.h ASoC: Update regmap access for WM5100 DSP control registers 2012-04-23 18:52:31 +01:00
wm5102.c ASoC: wm5102: Enable bypass mode for MICVDD 2012-09-26 12:30:01 +01:00
wm5102.h ASoC: wm5102: Initial driver 2012-06-23 12:11:47 +01:00
wm5110.c ASoC: wm5110: Adding missing volume update bits 2012-09-27 17:58:25 +01:00
wm5110.h ASoC: wm5110: Add audio CODEC driver 2012-07-11 11:00:26 +01:00
wm8350.c workqueue: deprecate flush[_delayed]_work_sync() 2012-08-20 14:51:24 -07:00
wm8350.h
wm8400.c ASoC: codecs: Refresh copyrights for Wolfson drivers 2012-06-03 13:06:37 +01:00
wm8400.h
wm8510.c ASoC: wm8510: Convert to direct regmap API usage 2012-09-12 14:09:05 +08:00
wm8510.h
wm8523.c ASoC: wm8523: Move device ID verification and reset to I2C probe 2012-09-10 17:25:47 +08:00
wm8523.h
wm8580.c ASoC: wm8580: Move regulator acquisition to I2C probe 2012-09-12 14:09:18 +08:00
wm8580.h
wm8711.c ASoC: wm8711: Convert to direct regmap API usage 2012-09-12 14:09:19 +08:00
wm8711.h
wm8727.c ASoC: Remove unused -codec from Wolfson device driver names 2011-12-03 21:35:01 +00:00
wm8728.c ASoC: wm8728: Convert to direct regmap API usage 2012-09-12 14:09:37 +08:00
wm8728.h
wm8731.c ASoC: codecs: Refresh copyrights for Wolfson drivers 2012-06-03 13:06:37 +01:00
wm8731.h
wm8737.c ASoC: wm8737: Convert to direct regmap API usage 2012-09-12 14:09:38 +08:00
wm8737.h
wm8741.c ASoC: wm8741: Convert to direct regmap API usage 2012-09-10 18:04:42 +08:00
wm8741.h
wm8750.c ASoC: codecs: Remove rtd->codec usage from CODEC drivers 2012-04-04 15:59:12 +01:00
wm8750.h
wm8753.c workqueue: deprecate flush[_delayed]_work_sync() 2012-08-20 14:51:24 -07:00
wm8753.h
wm8770.c ASoC: wm8770: Use module_spi_driver 2012-08-27 09:55:28 -07:00
wm8770.h
wm8776.c ASoC: wm8776: Convert to direct regmap API usage 2012-09-18 23:23:47 -04:00
wm8776.h
wm8782.c ASoC: Convert CODEC drivers to module_platform_driver 2011-11-28 11:33:29 +00:00
wm8804.c ASoC: codecs: Refresh copyrights for Wolfson drivers 2012-06-03 13:06:37 +01:00
wm8804.h
wm8900.c ASoC: wm8900: Fix typo of name to wm9700 2012-09-11 11:26:05 +08:00
wm8900.h
wm8903.c ASoC: wm8903: Use module_i2c_driver 2012-08-06 15:20:35 +01:00
wm8903.h
wm8904.c Linux 3.6-rc6 2012-09-22 11:26:27 -04:00
wm8904.h ASoC: Optimise performance of WM8904 ADC 128fs OSR mode 2012-01-20 13:58:26 +00:00
wm8940.c ASoC: wm8940: Use module_i2c_driver 2012-08-06 15:20:34 +01:00
wm8940.h
wm8955.c ASoC: wm8955: Use module_i2c_driver 2012-08-06 15:20:34 +01:00
wm8955.h
wm8958-dsp2.c ASoC: wm8994: Use pdata cached in MFD driver 2012-11-24 00:15:08 +09:00
wm8960.c ASoC: wm8960: remove 'dres' field from platform data structure 2012-09-21 08:35:06 -04:00
wm8960.h
wm8961.c ASoC: wm8961: Move device identification and reset to I2C probe 2012-09-18 23:23:53 -04:00
wm8961.h
wm8962.c ASoC: wm8962: Don't duplicate bias level management in resume 2012-08-09 14:11:10 +01:00
wm8962.h
wm8971.c ASoC: wm8971: Use module_i2c_driver 2012-08-06 15:20:33 +01:00
wm8971.h
wm8974.c ASoC: wm8974: Use module_i2c_driver 2012-08-06 15:20:35 +01:00
wm8974.h
wm8978.c ASoC: wm8978: Use module_i2c_driver 2012-08-06 15:20:33 +01:00
wm8978.h ASoC: Convert wm8978 to direct regmap API usage 2012-01-20 13:58:19 +00:00
wm8983.c ASoC: wm8983: Convert to direct regmap API usage 2012-09-10 16:00:09 +08:00
wm8983.h ASoC: WM8983: Initial driver 2011-07-15 23:39:53 +09:00
wm8985.c ASoC: wm8985: Convert to direct regmap API usage 2012-01-21 21:15:42 +00:00
wm8985.h
wm8988.c ASoC: codecs: Remove rtd->codec usage from CODEC drivers 2012-04-04 15:59:12 +01:00
wm8988.h
wm8990.c ASoC: wm8990: Convert to devm_kzalloc() 2012-09-12 09:36:49 +08:00
wm8990.h
wm8991.c ASoC: wm8991: Convert to devm_kzalloc() 2012-09-12 09:36:50 +08:00
wm8991.h
wm8993.c ASoC: wm_hubs: Allow configuration of MICBIAS power up delay via pdata 2012-08-22 19:00:37 +01:00
wm8993.h ASoC: wm_hubs: Clamp inputs to VMID while we ramp 2012-02-11 23:11:21 +00:00
wm8994.c ASoC: wm8994: Simplify button detection code 2012-12-03 16:34:09 +09:00
wm8994.h ASoC: wm8994: Simplify button detection code 2012-12-03 16:34:09 +09:00
wm8995.c ASoC: core: Add support for DAI and machine kcontrols. 2012-02-04 12:40:11 +00:00
wm8995.h
wm8996.c ASoC: dapm: Add flags to regulator supplies 2012-09-08 08:47:28 +08:00
wm8996.h ASoC: Disable register synchronisation for low frequency WM8996 SYSCLK 2012-01-20 13:54:34 +00:00
wm9081.c ASoC: codecs: Refresh copyrights for Wolfson drivers 2012-06-03 13:06:37 +01:00
wm9081.h
wm9090.c ASoC: wm9090: Use module_i2c_driver 2012-08-06 15:20:32 +01:00
wm9090.h
wm9705.c ASoC: wm9705: Fix build due to removal of 'runtime' definition 2012-04-11 11:43:19 +01:00
wm9705.h
wm9712.c Revert "ASoC: AC97 doesn't use regmap by default" 2012-09-11 11:26:03 +08:00
wm9712.h
wm9713.c Revert "ASoC: AC97 doesn't use regmap by default" 2012-09-11 11:26:03 +08:00
wm9713.h
wm_hubs.c ASoC: wm_hubs: Ensure volume updates are handled during class W startup 2012-09-28 12:06:31 +01:00
wm_hubs.h ASoC: wm_hubs: Allow configuration of MICBIAS power up delay via pdata 2012-08-22 19:00:37 +01:00