dma: pl330: Implement sg_limits

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
dma: pl330: Send flush command at the beginning of a transfer

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
ASoC: Xilinx: Add AXI I2S driver

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
ASoC: axi_spdif: Setup dma_data

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
zynq.dtsi: Add node for the pl330 DMA

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
ASoC: dmaengine-pcm: Add default slave config callback

Use snd_dmaengine_pcm_prepare_slave_config as default to prepare the dma slave
config, if no config for the pcm driver is supplied. This allows us to have
config-less dmaengine pcm users which are independet of a specific dmaengine
driver.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
ASoC: dmaengine_pcm: Add support for compat platforms

Add support for platforms which don't use devicetree yet or have to optionally
support a non-devicetree way to request the DMA channel. The patch adds the
compat_request_channel and compat_filter_fn callbacks to the
snd_dmaengine_pcm_config struct. If the compat_request_channel is implemented it
will be used to request the DMA channel. If not dma_request_channel with
compat_filter_fn as the filter function will be used to request the channel.

The patch also exports the snd_dmaengine_pcm_request_chan() function, since
compat platforms will want to use it to request their DMA channel.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Tested-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
ASoC: dmaengine-pcm: Add support for platforms which can't report residue

Unfortunately there are still quite a few platforms with a dmaengine driver
which do not support reporting the number of bytes left to transfer. If we want
to support these platforms in the generic dmaengine PCM driver we have.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Tested-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
ASoC: generic-dmaengine-pcm: Add support for half-duplex

Some platforms which are half-duplex share the same DMA channel between the
playback and capture stream. Add support for this to the generic dmaengine PCM
driver.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
ASoC: generic-dmaengine-pcm: use a more common dma name

The examples in Documentation/devicetree/bindings/dma/dma.txt recommends
the name for dma channel doing both RX and TX to be "rx-tx".  This
becomes a common pattern that has been adopted by platforms that
converts to generic DMA bindings.  Let's follow this common pattern in
generic-dmaengine-pcm.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
ASoC: generic-dmaengine-pcm: call dma_request_slave_channel()

dma_request_slave_channel() is a more appropriate API for dmaengine
clients that adopt generic DMA bindings to call.  Let's use it instead
of of_dma_request_slave_channel() to save <linux/of_dma.h> include.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
ASoC: axi_spdif: Update driver

  * Use regmap for IO access
  * Use the clock framework
  * Allow all sample rates that the design supports

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
ASoC: adv7511_hdmi: Pass codec node directly

Pass the devicetree node to the adv7511 directly to the sound driver instead of
using the I2C adapter's node.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
ASoC: Add ZED ADAU1761 board file

Add support for the ADAU1761 found on the ZED board.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
ASoC: Add support for virtual switch controls

Virtual switches are similar to virtual MUX controls. It does not have a
representation in the actual hardware but allows to control the DAPM routing by
enabling or disabling a input path into the mixer. This is useful if we want to
present a way to the user to for example mute a path despite the absence of a
separate mute control in hardware.

More specific this will be used by the ADAU1361 driver where the hardware has
a mute control for each of the DAC output paths, but we have to make sure that
the path is muted whenever the DAC is disabled. So the mute switches needs
to be controlled by DAPM so it can disable them before disabling the DAC. On the
other hand we still want to be to mute individual paths. This will be
accomplished by using virtual switch controls.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
ASoC: Add ADAU1X61 and ADAU1X81 CODECs common code

The ADAU1X61 and ADAU1X81 are very similar in the digital domain of the CODECs,
but are quite different in the analog domain. This patch adds support for the
common parts of the ADAU161 and ADAU181 CODECs.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
ASoC: Add ADAU1361/ADAU1761 CODEC support

This patch adds support for the Analog Devices ADAU1361 and ADAU1761 CODECs.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
ASoC: Add ADAU1381/ADAU1781 CODEC support

This patch adds support for the Analog Devices ADAU1381 and ADAU1781
audio CODECs.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
ASoC: axi-{i2s,spdif}: Set SND_DMAENGINE_PCM_FLAG_NO_RESIDUE for now

The PL330 DMA driver doesn't support residue supporting, so set the
SND_DMAENGINE_PCM_FLAG_NO_RESIDUE for now.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
ASoC: Move xlnx/ to adi/

Now that the audio drivers use the generic dmaengine PCM driver there is nothing
Xilinx specific in here anymore.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>