On 01/09/15 13:07, Russell King - ARM Linux wrote:
On Fri, Jan 09, 2015 at 01:54:01PM +0100, Jean-Francois Moine wrote:
On Fri, 9 Jan 2015 11:45:29 +0000 Russell King - ARM Linux linux@arm.linux.org.uk wrote:
I think we need to understand exactly how the 998x map I2S inputs to the HDMI channels to avoid making a mistake with the binding; remember, the binding isn't something that can be easily "bug fixed" at a later date as anything we come up with now has to be supported long term by the kernel.
The DT describes the hardware configuration.
You're missing my point.
How does the driver know which of the I2S pins to enable in I2S mode?
[snip]
My question is: how do we know which I2S inputs to enable, or are you suggesting that all I2S inputs should be enabled if operating in I2S mode irrespective of whether they may be active?
Isn't it the case that for I2S:
* Word Select (WS) is always required to disambiguate left/right. So WS need not be specified in any device tree configuration.
* The audio inputs depend on a particular board but at least one is required. Fortunately, the TDA998x devices have all the same pin/input numbering so they /could/ be described as i2s0, i2s1, i2s2 and i2s3 as per J-F's earlier email. But tt isn't clear from my reading of the TDA19988 datasheet (for example) whether one can skip channels (so does channel 0 always have to be present?). If the channels must be enabled from 0 then one could simply specify the number of inputs. (The datasheets that I have don't indicate whether there's any channel remapping performed internally by the TDA998x).
* What the driver does need to take account of is the number of inputs that are active so that the sound CODEC can be properly configured.
Andrew