ASoC: OMAP: mcbsp: Fix CLKX and CLKR pinmux when used as inputs
authorThomas Niederprüm <niederp@physik.uni-kl.de>
Sat, 21 Feb 2015 17:11:29 +0000 (18:11 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 26 Feb 2015 02:48:49 +0000 (11:48 +0900)
commit8af4baa7087a0ae74c6ee29d4d979a60e14b119e
tree1e76ae6b4873c8593c6214e91860a0e7d17cace9
parentfb5ab7296a2bea17c38fae48af2808a07049ac90
ASoC: OMAP: mcbsp: Fix CLKX and CLKR pinmux when used as inputs

This patch fixes faulty behaviour in a setup where the input clock for the
SRG is fed through the CLKR/CLKX pin but the McBSP is configured to be
master (SND_SOC_DAIFMT_CBS_CFS). In that case of course CLKR/CLKX must
not be configured as output pin. Otherwise the input clock is messed up
horribly.

This patch makes it possible to use the CLKR/CLKX pin rather than CLKS to
inject a reference clock in setups where McBSP is master and not both
rx and tx are used. However for this to work it has to be ensured that
set_dai_sysclk() is called after set_dai_fmt().

This was tested on a beagleboard-xm using McBSP1 to drive a i2s DAC through
the tx lines (CLKX,FSX,DX). Using this patch the CLKR pin is used to inject
an external reference clock.

Signed-off-by: Thomas Niederprüm <niederp@physik.uni-kl.de>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/omap/omap-mcbsp.c