MLK-16224-4: ASoC: fsl_sai: support multi fifo and DSD
authorShengjiu Wang <shengjiu.wang@nxp.com>
Tue, 23 Jan 2018 05:26:37 +0000 (13:26 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Tue, 20 Mar 2018 19:53:32 +0000 (14:53 -0500)
commitb6d2ba61e3990c1cfde49eb41ee4240676b64389
treeea9c405ac23beed6983b24c3d974d2b6c786c331
parent6d2bd2e4fe5d6fbf47ddf65435d7fd2731d1a5b3
MLK-16224-4: ASoC: fsl_sai: support multi fifo and DSD

The codec always mux the LRCLK pin to DSD data line, so when
we want to support DSD, the pinmux is different. For two channel
DSD, the DSDL is mapped to TX0, but the DSDR is mapped to TX4,
there is address offset for the fifo address of TX0 and TX4, TX4's
fifo is not adjacent to TX0's.

Usually, if mapping is TX0 and TX1, that will be easy for SAI
and SDMA to handle, that SAI can use the FIFO combine mode, SDMA
can use the normal script.

so for DSD:
1. The SDMA should use the multi-fifo script, and SAI can't
use the FIFO combine mode.
2. driver should to check the dts configuration(fsl,dataline) for
which dataline is used corrently
3. maxburst is the multiply of datalines
4. each channel of DSD occupy one data lane
5. according to data lane, set TRCE bits

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
sound/soc/fsl/fsl_sai.c
sound/soc/fsl/fsl_sai.h