On Fri, Aug 09, 2013 at 08:44:34PM +0100, Mark Brown wrote:
If someone wants to it should also be possible to convert the existing platforms without S/PDIF support over to DT, providing you don't mind changing the code once the DPCM and S/PDIF support is added and a bit of thought is put into where the S/PDIF output will fit into the bindings.
Okay, so you're thinking that the I2S output will be enabled in the absence of DPCM? If so, that tells me that you don't understand my patches, and this is getting *really* tiresome.
One more time: - There are two outputs from the FIFO. - There is an I2S output, and there is a SPDIF output. - All hardware has an I2S output. - Some hardware also has the SPDIF output. - Each output is individually enable-able via separate bits. - When both outputs are used, both must be enabled simultaneously. - Otherwise, only one output must be enabled at any one time. - At least one output must be enabled for there to be any activity from the unit at all (that's obvious!)
So, what I'm doing is providing _two_ AIF connection points, one for I2S and one for SPDIF. The appropriate AIF connection point must be attached to for the appropriate output to be enabled.
That means that if you want to use the SPDIF output, the SPDIF AIF must be linked to the codec. If you want to use the I2S output, the I2S AIF must be linked to the codec.
Without this, there's no way for the CPU DAI to know which output(s) are in use, and therefore which should be enabled.
What this means is that the conventional setup where you have _one_ DAI link connecting the codec DAI to the CPU DAI won't work on Kirkwood anymore, because there is no way to know which of the two outputs should be enabled. I avoided that in my patches, but you've objected to that saying that it must use DPCM. That makes the whole of kirkwood entirely DPCM only, whether or not you have a single codec to connect.
Surely you realise this, because you must have read the patches properly before you commented on them, and realised that one of spdifdo or i2sdo must be powered up to set either enable bit?