summaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs
Commit message (Collapse)AuthorAgeFilesLines
* ASoC: rt5640: Add RL6231 class device shared support for RT5640, RT5645 and ↵Oder Chiou2014-06-017-53/+110
| | | | | | | | | | | RT5651 The patch adds the RL6231 class device shared support for RT5640, RT5645 and RT5651. The function of the DMIC clock calculation can be shared by RL6231 shared support. Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
*-. Merge branches 'topic/rt5640', 'topic/rt5645' and 'topic/rt5651' of ↵Mark Brown2014-06-016-0/+8653
|\ \ | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-rl6231
| | * ASoC: rt5651: Do not use rtd->codecLars-Peter Clausen2014-05-191-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | rtd->codec does not necessarily point to the CODEC instance for which the callback was called (e.g. for CODEC<->CODEC or multi-CODEC links). Use dai->codec instead. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rt5645: Fix updating wrong register for T5645_AIF2 caseAxel Lin2014-05-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | This looks like a copy-paste bug, fix it. Signed-off-by: Axel Lin <axel.lin@ingics.com> Tested-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rt5645: fix coccinelle warningsOder Chiou2014-05-081-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | Return statements in functions returning bool should use true/false instead of 1/0. Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rt5645: Correct the cache sync functionOder Chiou2014-05-081-1/+1
| | | | | | | | | | | | | | | | | | | | | The patch corrects the cache sync function Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rt5645: Move settings from probe() to reg_default structOder Chiou2014-05-081-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | The patch moves the private register settings from probe() to reg_default struct. Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rt5645: Staticise non-exported symbolsOder Chiou2014-05-081-3/+3
| | | | | | | | | | | | | | | | | | | | | The patch is for staticising non-exported symbols Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rt5645: Remove the unused variableOder Chiou2014-05-081-1/+0
| | | | | | | | | | | | | | | | | | | | | The patch is for removing the unused variable. Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rt5645: Add codec driverOder Chiou2014-05-034-0/+4670
| |/ | | | | | | | | | | | | | | | | | | | | This patch adds the Realtek ALC5645 codec driver. It is the base version that because the jack detect function is not implemented to it, the headphone and AMIC1 are not workable. We will fill up the further functions later. Signed-off-by: Bard Liao <bardliao@realtek.com> Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * ASoC: rt5651: Staticise non-exported symbolsMark Brown2014-04-181-3/+3
| | | | | | | | | | | | Make the dai_ops const too since we can. Signed-off-by: Mark Brown <broonie@linaro.org>
| * ASoC: add RT5651 CODEC driverBard Liao2014-04-184-0/+3985
| | | | | | | | | | | | | | This patch adds the Realtek ALC5651 codec driver. Signed-off-by: Bard Liao <bardliao@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | ASoC: rt5640: add default case for unexpected IDBard Liao2014-05-121-0/+4
| | | | | | | | | | | | | | | | | | | | | | We may read an unexpected value when detemining which codec is attached. In that case, either a unsupported codec is attached or something wrong with I2C. The driver will not work properly on both cases. So we return an error for that. Signed-off-by: Bard Liao <bardliao@realtek.com> Reviewed-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | ASoC: rt5640: correct 5640's device IDBard Liao2014-04-301-1/+1
| | | | | | | | | | | | | | | | This patch correct rt5640's device ID Signed-off-by: Bard Liao <bardliao@realtek.com> Tested-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | ASoC: rt5640: Add the rt5639 support to the OF match tableOder Chiou2014-04-281-0/+1
| | | | | | | | | | | | | | The patch adds the rt5639 support to the OF match table. Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | ASoC: rt5640: Add minimal support for RT5642Bard Liao2014-04-222-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have been using rt5640.c codec driver with RT5642 codec chip before commit 022d21f004c1 ("ASoC: rt5640: add rt5639 support"). That commits starts using device ID reading in reset register for adding device specific controls and routes runtime. Now since device ID appears to be different between RT5640 and RT5642 the driver doesn't add those controls and routes that are valid also on RT5642. Fix this by adding a device ID found by debugging and minimal code for supporting RT5642. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Bard Liao <bardliao@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | ASoC: rt5640: Add the string "rt5639" to the list of I2C device IDsOder Chiou2014-04-141-2/+3
| | | | | | | | | | | | | | The patch adds the string "rt5639" to the list of I2C device IDs. Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | ASoC: rt5640: add rt5639 supportOder Chiou2014-04-142-76/+213
| | | | | | | | | | | | | | This patch adds the rt5639 support Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | ASoC: rt5640: Change the setting method of idle_bias_offOder Chiou2014-04-141-1/+1
| | | | | | | | | | | | | | The patch moves the idle_bias_off setting to struct "soc_codec_dev_rt5640". Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | ASoC: rt5640: Remove the unnecessary parenthesesOder Chiou2014-04-141-1/+1
| | | | | | | | | | | | | | The patch removes the unnecessary parentheses. Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | ASoC: rt5640: Remove the unused field in private dataOder Chiou2014-04-141-1/+0
| | | | | | | | | | | | | | The patch removes the unused field in private data. Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | ASoC: rt5640: Remove the unused or incorrect setting of clock sourceOder Chiou2014-04-142-9/+1
| | | | | | | | | | | | | | The patch removes the unused or incorrect setting of clock source. Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | ASoC: rt5640: Rename the function of clock checkingOder Chiou2014-04-141-9/+9
| | | | | | | | | | | | | | | | In order to identify clearly, the patch renames the function "check_sysclk1_source" to "is_sys_clk_from_pll". Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | ASoC: rt5640: Remove the pre-allocated size of reg_defaultOder Chiou2014-04-141-1/+1
| | | | | | | | | | | | | | | | In order to prevent the redundant memory usage, the pre-allocated size of reg_default should be remove. Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | ASoC: rt5640: Use the platform data for DMIC settingsOder Chiou2014-04-141-54/+23
| | | | | | | | | | | | | | The patch uses the platform data for DMIC settings. Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | ASoC: rt5640: Correct the judgement of data lengthOder Chiou2014-04-141-5/+5
| | | | | | | | | | | | | | The patch corrects the judgement of data length. Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | ASoC: rt5640: Move cache sync() to resume()Oder Chiou2014-04-141-3/+3
|/ | | | | | | The patch fixes the defect in case of resume which doesn't sync the cache. Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
*-----. Merge remote-tracking branches 'asoc/fix/rt5640', 'asoc/fix/samsung', ↵Mark Brown2014-04-083-2/+17
|\ \ \ \ | | | | | | | | | | | | | | | 'asoc/fix/tlv320aic23' and 'asoc/fix/warn' into asoc-linus
| | | | * ASoC: alc56(23|32): fix undefined return value of probing codeChristoph Jaeger2014-04-042-4/+2
| | | |/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 5d6be5aa ("ASoC: codec: Simplify ASoC probe code.") left variable 'ret', whose value is returned, uninitialized. Since it is not used otherwise, remove it. Signed-off-by: Christoph Jaeger <christophjaeger@linux.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| | | * ASoC: tlv320aic23: add an of_match tableStephen Warren2014-04-011-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a device tree match table. This serves to make the driver's support of device tree more explicit. Perhaps the fallback for DT matching to using the i2c_device_id table will go away one day, since it fails in face of devices from different vendors with the same name. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | | ASoC: rt5640: add an of_match tableStephen Warren2014-03-311-0/+9
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a device tree match table. This serves to make the driver's support of device tree more explicit. Perhaps the fallback for DT matching to using the i2c_device_id table will go away one day, since it fails in face of devices from different vendors with the same name. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| | |
| \ \
| \ \
| \ \
| \ \
| \ \
| \ \
| \ \
| \ \
| \ \
*---------. \ \ Merge remote-tracking branches 'asoc/fix/alc5632', 'asoc/fix/cs42l52', ↵Mark Brown2014-04-086-11/+24
|\ \ \ \ \ \ \ \ | |_|_|_|_|_|/ / |/| | | | | | | | | | | | | | | 'asoc/fix/cs42xxx8', 'asoc/fix/da732x', 'asoc/fix/davinci', 'asoc/fix/fsl-sai', 'asoc/fix/fsl-ssi' and 'asoc/fix/max98090' into asoc-linus
| | | | | | * | ASoC: max98090: add an of_match tableStephen Warren2014-04-011-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a device tree match table. This serves to make the driver's support of device tree more explicit. Perhaps the fallback for DT matching to using the i2c_device_id table will go away one day, since it fails in face of devices from different vendors with the same name. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| | | | * | | | ASoC: da732x: Print correct major idAxel Lin2014-04-071-1/+2
| |_|_|/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DA732X_ID_MAJOR_MASK is 0xF0, so the major id is (reg & DA732X_ID_MAJOR_MASK) >> 4. Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| | | * | | | ASoC: cs42xx8: Check return value of regmap_read and report correct chipid valueAxel Lin2014-04-041-6/+5
| |_|/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix checking return value of regmap_read(). Also fix reporting the chip_id value. CS42XX8_CHIPID_CHIP_ID_MASK is 0xF0, so the chip_id value is (val & CS42XX8_CHIPID_CHIP_ID_MASK) >> 4). Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Paul Handrigan <paul.handrigan@cirrus.com> Acked-by: Brian Austin <brian.austin@cirrus.com> Acked-by: Nicolin Chen <Guangyu.Chen@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| | * | | | ASoC: cs42l52: Fix mask for REVIDAxel Lin2014-04-072-2/+2
| |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BIT[0:2] of register 01h is REVID, so the mask for REVID should be 0x7. Also updates the code to use CS42L52_CHIP_REV_MASK. Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Brian Austin <brian.austin@cirrus.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | | | ASoC: alc5632: add an of_match tableStephen Warren2014-04-011-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a device tree match table. This serves to make the driver's support of device tree more explicit. Perhaps the fallback for DT matching to using the i2c_device_id table will go away one day, since it fails in face of devices from different vendors with the same name. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | | | ASoC: alc5632: fix uninit var in alc5632_probe()Stephen Warren2014-04-011-2/+1
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | alc5632_probe() returns ret, yet it is not initialized or set anywhere. This ends up causing the function to appear to fail, and audio not to work on the Toshiba AC100, with my compiler at least. This function used to set ret in all cases, but recent cleanup removed that. Fixes: 5d6be5aa6bec ("ASoC: codec: Simplify ASoC probe code.") Signed-off-by: Stephen Warren <swarren@nvidia.com> Reviewed-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| | | |
| \ \ \
*-. \ \ \ Merge remote-tracking branches 'asoc/topic/simple' and 'asoc/topic/sirf' ↵Mark Brown2014-03-231-9/+0
|\ \ \ \ \ | | |/ / / | |/| | | | | | | | into asoc-next
| | * | | ASoC: sirf-audio-codec: Remove snd_soc_codec_set_cache_io() callLars-Peter Clausen2014-03-171-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There was a overlap between the snd_soc_codec_set_cache_io() cleanup and the addition of the sirf-audio-codec resulting in the sirf-audio-codec driver still using the old signature of snd_soc_codec_set_cache_io(), which will cause a compile error. Since the core is able to automatically setup IO for this driver we can just remove both the snd_soc_set_cache_io() call and the control_data assignment. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
| | | | |
| \ \ \ \
*-. \ \ \ \ Merge remote-tracking branches 'asoc/topic/max98090' and 'asoc/topic/omap' ↵Mark Brown2014-03-232-2/+0
|\ \ \ \ \ \ | | |/ / / / | | | | / / | | |_|/ / | |/| | | into asoc-next
| * | | | ASoC: max98090: Remove unused control_data fieldLars-Peter Clausen2014-03-142-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The driver assigns a value to the control_data field of the driver's state struct, but never reads it again. Which means it is unused and can be removed. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
* | | | | Merge remote-tracking branch 'asoc/topic/cs42xx8' into asoc-nextMark Brown2014-03-235-0/+918
|\ \ \ \ \
| * | | | | ASoC: cs42xx8: Add codec driver support for CS42448/CS42888Nicolin Chen2014-03-205-0/+918
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for the Cirrus Logic CS42448/CS42888 Audio CODEC that has six/four 24-bit AD and eight 24-bit DA converters. [ CS42448/CS42888 supports both I2C and SPI control ports. As initial patch, this patch only adds the support for I2C. ] Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com> Acked-by: Brian Austin <brian.austin@cirrus.com> Acked-by: Paul Handrigan <Paul.Handrigan@cirrus.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | | | | Merge remote-tracking branch 'asoc/topic/codecs' into asoc-nextMark Brown2014-03-238-43/+20
|\ \ \ \ \
| * | | | | ASoC: codecs: Replace instances of rtd->codec with dai->codecLars-Peter Clausen2014-03-188-19/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With CODEC to CODEC links rtd->codec does not necessarily point to the driver's CODEC. CODEC drivers should always use dai->codec and never even look at the PCM runtime. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Acked-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | | | | ASoC: tlv320aic31xx: Don't call kfree for memory allocated by devm_kzallocAxel Lin2014-03-181-8/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The kfree call is not necessary, but we need to call snd_soc_unregister_codec() in remove(). Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | | | | ASoC: tlv320aic31xx: Turn power off only once.Jyri Sarha2014-03-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Regulator code keep count of enables and disables. Double disable causes an ugly warning. Signed-off-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | | | | ASoC: tlv320aic31xx: Staticise non-exported symbolsMark Brown2014-03-131-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Mark Brown <broonie@linaro.org>
| * | | | | ASoC: tlv320aic31xx: Remove snd_soc_codec_set_cache_io() callJyri Sarha2014-03-131-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP) call and codec->control_data = aic31xx->regmap assignment since that already done by core. Signed-off-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Mark Brown <broonie@linaro.org>
OpenPOWER on IntegriCloud