On Fri, 9 Jan 2015 14:57:41 +0000 Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx> wrote: > Well, if we look at the HDMI specs, there is a field in the audio info > frame (CA bits) which identifies the speaker allocation between the > HDMI PCM channels and the physical speakers. > > It describes a limited set - essentially though, channel 0 is always > front left, and channel 1 is always front right. Channel 2 is always > LFE, and channel 3 is always front centre. > > Channel 0 and 1 are always allocated, but it's possible to have channels > above 2 to be allocated independently of each other (eg, you could have > 7, 6, 1, 0 allocated to front right centre, front left centre, right, > left speakers - in that order.) > > As you point out, we don't have documentation which tells us know how > these PCM channels map to I2S inputs. I had a look at the TDA19988 (small) datasheet I have and at the HDMI specs, and, yes, you are right: multi (stereo) channels implies speaker mapping, and, then, that the I2S streams come from a same media source. While, as said in the TDA19988 datasheet, "The I2S-bus input interface receives an I2S-bus signal including serial data, word select and serial clock", it would be strange that these I2S buses come from different audio devices. > What we do know is that there is a fixed mapping between AP pins and I2S > channels (which are not PCM channels), but as you point out, we don't > have any documentation which describes how the I2S channels (each with > their own L+R words) map to the PCM channels - and we don't know whether > the CA_I2S bits in that same register in the TDA998x have an effect on > this. HDMI talks about LPCM (Linear PCM) channels and TDA19988 talks about I2S-bus (stereo) channels. For me, it seems obvious that these channels are correlated: - LPCM-0 is I2S-bus-0-left (FL) - LPCM-1 is I2S-bus-0-right (FR) - LPCM-2 is I2S-bus-1-left (LFE) - LPCM-3 is I2S-bus-1-right (FC) ... > Does anyone have a TDA998x setup which has an I2S source connected to > the TDA998x I2S channel 1, and who has a HDMI sink which will accept > the LFE/FC channels? If so, producing a description of how the CA_I2S > bits and enabling I2S input pins influences the mapping would be a good > idea. I could not find a description of these CA_I2S bits. > If we don't have that, I'd recommend splitting the DT property into > "audio inputs for I2S" and "audio input for SPDIF" (only one can be > active with SPDIF). > > If we want to support more than one SPDIF input (which must be mutually > exclusive) I'd recommend to look at the OF graph stuff we use in DRM - > one port for each "mode" - eg, I2S, SPDIF in on AP2, SPDIF in on AP3. > Each port node can specify the AP pins which should be enabled. I agree. There are one S/PDIF port and one I2S port. So, which syntax? I proposed: audio-ports = <0x04>, <0x03>; audio-port-names = "spdif", "i2s"; Do you better like: audio-spdif-port = <0x04>; audio-i2s-port = <0x03>; -- Ken ar c'hentañ | ** Breizh ha Linux atav! ** Jef | http://moinejf.free.fr/ -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html