Commit Graph

298467 Commits

Author SHA1 Message Date
Stephen Warren
c2f6702d31 ASoC: tegra: utils: add support for Tegra30 devices
Tegra30 has some additional clocks that need to be manipulated, names
some clocks differently, runs PLLs at different base rates, etc. The
utility code needs to handle this.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-06 18:31:05 +01:00
Stephen Warren
a9005b67b3 ASoC: tegra: set a sensible initial clock rate
Initialize the audio clock tree appropriately for some reasonable rate.
This makes sure the PLLs etc. are actually programmed to something
reasonable when the audio driver is loaded.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-06 18:25:16 +01:00
Stephen Warren
17933db2e4 ASoC: tegra: use devm_ APIs in SPDIF driver
The devm_ APIs remove the need to manually clean up allocations,
thus removing some code.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-06 18:22:06 +01:00
Stephen Warren
7613c508df ASoC: tegra: sort includes, remove mach/iomap.h
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-06 18:22:06 +01:00
Maarten ter Huurne
cd11536742 ASoC: JZ4740: Replaced comma operators with semicolons.
They were harmless but also unnecessary, probably a leftover from earlier code.

Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-06 18:22:05 +01:00
Stephen Warren
896637ac1b ASoC: tegra: complete Tegra->Tegra20 renaming
Rename Tegra20-specific Kconfig variables, module filenames, all internal
symbol names, clocks, and platform devices, to reflect the fact the DAS
and I2S drivers are for a specific HW version.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-06 17:36:15 +01:00
Stephen Warren
ef280d3907 ASoC: tegra: rename Tegra20-specific driver files
Rename these files so they include a specific hardware version in their
filenames. The contents is only touched minimally so that git's rename
tracking operates correctly; renaming all symbols in the files results
in a diff so large that the rename detection fails.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-06 14:17:45 +01:00
Mark Brown
5fa87d3484 ASoC: wm8400: Use snd_soc_write() and snd_soc_read()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-05 22:05:31 +01:00
M R Swami Reddy
7e811ae74b ASoC: lm49453: fix build warnings
sound/soc/codecs/lm49453.c: In function 'lm49453_set_dai_fmt':
sound/soc/codecs/lm49453.c:1189:4: warning: overflow in implicit
constant conversion [-Woverflow]
sound/soc/codecs/lm49453.c:1193:4: warning: overflow in implicit
constant conversion [-Woverflow]
sound/soc/codecs/lm49453.c:1197:4: warning: overflow in implicit
constant conversion [-Woverflow]

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: M R Swami Reddy <mr.swami.reddy@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-05 22:01:19 +01:00
Stephen Warren
a7fda2ba82 ASoC: tegra: make Tegra20 drivers depend on Tegra20 support
Without this, the Tegra20 drivers can be built into a kernel that's
built only for Tegra30.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-05 21:57:37 +01:00
Stephen Warren
063dd9d448 ASoC: tegra: drop Kconfig description for SND_SOC_TEGRA_DAS
The DAS, I2S, and SPDIF Kconfig options are intended to be selected by
the Kconfig options for ASoC machine drivers. As such, they don't need
to be user-visible themselves. Drop the description from the DAS variable
to achieve this. I2S and SPDIF already don't have a description.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-05 21:57:37 +01:00
Mark Brown
e6968a1719 ASoC: codecs: Remove rtd->codec usage from CODEC drivers
In order to support CODEC<->CODEC links remove the assumption that there
is only a single CODEC on a DAI link by removing the use of the CODEC
pointer in the rtd from the CODEC drivers. They are already being passed
their DAI whenever they are passed an rtd and can get the CODEC from
there.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-04 15:59:12 +01:00
Mark Brown
fc9a30e85e ASoC: tlv320aic23: Remove driver-specific version number
It's never been updated since the driver was merged.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-04 15:59:10 +01:00
Shawn Guo
5c7b4a08b7 ASoC: fsl: remove redundant Kconfig dependency on SND_SOC_POWERPC_DMA
Kconfig option SND_SOC_POWERPC_DMA is under menuconfig SND_POWERPC_SOC.
Since SND_POWERPC_SOC already depends on FSL_SOC, there is no need for
SND_SOC_POWERPC_DMA to do the same.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-04 12:35:21 +01:00
Shawn Guo
20731c759a ASoC: fsl: remove redundant Kconfig option SND_SOC_FSL_SSI
While commit 606d620 (ASoC: imx: merge sound/soc/imx into sound/soc/fsl)
adds SND_SOC_FSL_SSI outside "menuconfig SND_POWERPC_SOC" to make it
visible for both PowerPC and ARM/IMX, it forgot removing the one inside
"menuconfig SND_POWERPC_SOC".

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-04 12:35:21 +01:00
Mark Brown
149c53b514 ASoC: wm8994: Don't bother updating the jackdet mode needlessly
If we're not doing jackdet it's not needed.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-04 12:35:20 +01:00
Mark Brown
41b5b3bd5b ASoC: dapm: Allow DAPM registers to be 31 bit
Supports larger register maps, not using unsigned ints for the full 32
bit as we rely on checking for negative registers.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
2012-04-04 12:35:20 +01:00
Mark Brown
67d45090e6 ASoC: sgtl5000: Convert to module_i2c_driver()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-04 11:30:05 +01:00
Fabio Estevam
cd041f642c ASoC: sgtl5000: Fix warning due to the lack of REGULATOR_CHANGE_VOLTAGE
Fix the following warning during kernel boot:

0-000a: 850 <--> 1600 mV at 1200 mV normal
0-000a: Voltage range but no REGULATOR_CHANGE_VOLTAGE

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-04 00:50:53 +01:00
Brian Austin
27f1d75921 ASoC: core: Initialize err for snd_soc_put_volsw_sx
sound/soc/soc-core.c: In function ‘snd_soc_put_volsw_sx’:
sound/soc/soc-core.c:2600: warning: ‘err’ may be used uninitialized in this function

Signed-off-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-03 20:29:45 +01:00
Brian Austin
1d99f2436d ASoC: core: Rework SOC_DOUBLE_R_SX_TLV add SOC_SINGLE_SX_TLV
Some codecs namely Cirrus Logic Codecs have a way of wrapping the dB scale around 0dB without 0dB being in the middle.

Rework of SOC_DOUBLE_R_SX_TLV to be more consistent with other asoc tlv macros.
Add single register macro : SOC_SINGLE_SX_TLV.
Use snd_soc_info_volsw for .info
Use snd_soc_get_volsw_sx, snd_soc_put_volsw_sx for single and double.

kcontrols for CS42L51 and CS42L73 are adjusted to these new TLV Macros.

The max value is determined by: (number of steps) +1 for 0dB +max from codec datasheet.

Signed-off-by: Brian Austin <brian.austin@cirrus.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-03 11:43:23 +01:00
M R Swami Reddy
152ad44231 ASoC: MAINTAINERS: Add maintainer for TI LM49453 Audio codec driver
I will be supporting the TI LM49453 audio driver and also a few new TI codec
drivers, that are currently in development and will be upstreamed shortly.

Signed-off-by: M R Swami Reddy <mr.swami.reddy@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-02 23:08:27 +01:00
Mark Brown
0841b04a5f ASoC: max98095: Fix build failure
sound/soc/codecs/max98095.c: In function 'max98095_jack_detect_enable':
sound/soc/codecs/max98095.c:2229:14: error: 'struct max98095_priv' has no member named 'jack_detect_delay'
sound/soc/codecs/max98095.c:2230:18: error: 'struct max98095_priv' has no member named 'jack_detect_delay'

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-02 14:53:13 +01:00
M R Swami Reddy
dbf7a733f5 ASoC: Support TI LM49453 Audio driver
Signed-off-by: M R Swami Reddy <mr.swami.reddy@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:35:41 +01:00
Stephen Warren
30d436a644 ASoC: tegra: remove open-coded clk reference counting
clk_enable/disable() already reference count the enable calls, so there's
no need for the callers to do the same.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:32 +01:00
Stephen Warren
c0d5a47ca8 ASoC: tegra: sort Makefile into common and per-SoC files
The DAS, I2S, and SPDIF drivers are Tegra20-specific. Group these
together so that when Tegra30-specific equivalents are added later, the
file ordering makes sense.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:32 +01:00
Stephen Warren
d9bba496d4 ASoC: tegra: introduce separate Kconfig variable for DAS driver
This is mainly for symmetry with a future Tegra30 driver, where the
equivalent of the DAS (the AHUB) is useful separately from the I2S driver.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:32 +01:00
Stephen Warren
7deb2b450d ASoC: tegra: fix some checkpatch warnings
ERROR: trailing whitespace
ERROR: code indent should use tabs where possible
WARNING: please, no spaces at the start of a line
ERROR: "foo * bar" should be "foo *bar"

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:31 +01:00
Stephen Warren
4df8271e1f ASoC: tegra: fix Kconfig SND_SOC_TEGRA_ALC5632 indentation
Indent with TABs to be consistent with the rest of the file.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:31 +01:00
Stephen Warren
fcff5f9974 ASoC: tegra: remove unnecessary includes
These include aren't needed, and some of the files are about to be
renamed.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:31 +01:00
Mark Brown
1947dadf2a ASoC: wm8994: Don't bother lowering clock dividers inside idle AIFs
This increases the chances we'll manage to hit a partially configured
state on restart and the power savings are extremely small.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:31 +01:00
Shawn Guo
172b4c5c8a ASoC: fsl: add audio routing for imx-sgtl5000
Add DAPM widgets and audio routing support for imx-sgtl5000 machine
driver.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:31 +01:00
Ashish Chavan
aa0e25caaf ASoC: da7210: Add support for spi regmap
This patch adds support for spi regmap feature to existing da7210
driver.

Signed-off-by: Ashish Chavan <ashish.chavan@kpitcummins.com>
Signed-off-by: David Dajun Chen <dchen@diasemi.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:31 +01:00
Mark Brown
eb794077b8 ASoC: dapm: Remove SND_SOC_DAPM_MICBIAS_E()
There are no users any more and new drivers should be using supply widgets
which fully replace it anyway.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Zeng Zhaoming <zengzm.kernel@gmail.com>
2012-04-01 11:28:30 +01:00
Mark Brown
8fc8ec92a5 ASoC: sgtl5000: Convert mic bias to a supply widget
No current users and it's the last user of MICBIAS_E().

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Dong Aisheng <dong.aisheng@linaro.org>
Acked-by: Zeng Zhaoming <zengzm.kernel@gmail.com>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
2012-04-01 11:28:30 +01:00
Mark Brown
e413ba8804 ASoC: wm8994: Don't allow reconfiguration of FLL when it provides SYSCLK
Rather than trying to work around machine drivers which try to reprogram
the FLL while it is providing SYSCLK just return an error if they try.
This will avoid audio glitches during FLL reconfiguration, or at least
move the introduction of the glitches to the machine driver.

Since disabling the source for an active SYSCLK is not supported in the
first place systems shouldn't be doing this in the first place.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:29 +01:00
Shawn Guo
95cd98f9a6 ASoC: fsl: enable ssi clock in probe function
For power saving, most IMX platform initilization code turns off
modules' clock, and expects driver turn on clock as needed.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:29 +01:00
H Hartley Sweeten
01651babb6 ASoC: ep93xx-i2s: use devm_* helpers to cleanup probe
Use the devm_* helpers to cleanup the probe routine. This also eliminates
having to carry the mem value in the private data for the remove.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Tested-by: Mika Westerberg <mika.westerberg@iki.fi>
Acked-by: Mika Westerberg <mika.westerberg@iki.fi>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:29 +01:00
H Hartley Sweeten
e7cff0abf9 ASoC: ep93xx-ac97: use devm_* helpers to cleanup probe
Use the devm_* helpers to cleanup the probe routine. This also eliminates
having to carry the mem and irq values in the private data for the remove.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Tested-by: Mika Westerberg <mika.westerberg@iki.fi>
Acked-by: Mika Westerberg <mika.westerberg@iki.fi>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:29 +01:00
Shawn Guo
b46b373f40 ASoC: fsl: assign dma peripheral type according to bus topology
The dma peripheral_type for SSI should be IMX_DMATYPE_SSI_SP if the SSI
is on SPBA bus.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:29 +01:00
Stephen Warren
ff9062c60e ARM: tegra: remove tegra_pcm_device
tegra_pcm_device is no longer needed now that the Tegra ASoC code has
cleaned up its 'platform' registration. Remove it.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:29 +01:00
Stephen Warren
518de86ba1 ASoC: tegra: register 'platform' from DAIs, get rid of pdev
Previously, the ASoC 'platform' (PCM/DMA) object was instantiated via a
platform_device. This didn't represent the hardware well, since there
was no separate hardware associated with this platform_device; it was a
virtual device with sole purpose to call snd_soc_register_platform().
This mechanism required all board files to register this device, and all
ASoC machine drivers to create and register this device when booting
using device tree.

This change removes the platform_device completely. Each Tegra DAI now
registers the ASoC 'platform' itself. Machine drivers are adjusted for
the new 'platform' name.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:28 +01:00
Stephen Warren
1ae93b9d34 ASoC: tegra: fix comment indentation in ALC5632 machine
Fix comment indentation to clear checkpatch errors in a later patch.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:28 +01:00
Tomoya MORINAGA
d808fe9f3e ASoC: Add LAPIS Semiconductor ML26124 driver
ML26124-01HB/ML26124-02GD is 16bit monaural audio CODEC which has high
resistance to voltage noise. On chip regulator realizes power supply rejection
ratio be over 90dB so more than 50dB is improved than ever. ML26124-01HB/
ML26124-02GD can deliver stable audio performance without being affected by noise
from the power supply circuit and peripheral components. The chip also includes
a composite video signal output, which can be applied to various portable device
 requirements. The ML26124 is realized these functions into very small package
the size is only 2.56mm x 2.46mm therefore can be construct high quality sound
system easily.
ML26124-01HB is 25pin WCSP package; ML26124-02GD is 32pin WQFN package.

Signed-off-by: Tomoya MORINAGA <tomoya.rohm@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:28 +01:00
Mark Brown
ab92d09d13 ASoC: cs4270: Check that we can enable regulators on resume
It's possible that the regulator enable will fail and if it does we may
as well just give up with trying to bring the rest of the device up and
report the original error.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Timur Tabi <timur@freescale.com>
2012-04-01 11:28:28 +01:00
Mark Brown
497098beff ASoC: dapm: Remove bodges for no-widget CODECs
Now that we're creating widgets for all DAIs there should be no more
need for the bodges we've been carrying for non-DAPM CODEC drivers so
remove them.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Timur Tabi <timur@freescale.com>
Acked-by: Liam Girdwood <lrg@ti.com>
2012-04-01 11:28:28 +01:00
Shawn Guo
c448303e86 ASoC: fsl: add imx-sgtl5000 machine driver
This is the initial imx-sgtl5000 machine driver support with only
playback dai link implemented.  More features can be added on top
of it later.

It's a device tree only machine driver working with fsl_ssi driver.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:27 +01:00
Shawn Guo
09ce1111f3 ASoC: fsl: let fsl_ssi work with imx pcm and machine drivers
Makes necessary changes on fsl_ssi to let it work with imx pcm and
machine drivers.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:27 +01:00
Shawn Guo
dfa1a10785 ASoC: fsl: make fsl_ssi driver compilable on ARM/IMX
Provide different pair of accessors for accessing SSI registers on
PowerPC and ARM/IMX, so that fsl_ssi driver can be built on both
architectures.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:27 +01:00
Shawn Guo
8f549d7e77 ASoC: fsl: remove helper fsl_asoc_get_codec_dev_name
The ASoC core now can support matching codec with device node besides
name, so we can save helper function fsl_asoc_get_codec_dev_name.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-01 11:28:27 +01:00