On Fri, 14 Mar 2014 13:16:12 +0200 Jyri Sarha jsarha@ti.com wrote:
On 03/11/2014 11:36 AM, Jean-Francois Moine wrote:
Some simple audio cards may have many DAI links. This patch extends the simple-card driver for handling such cards.
Signed-off-by: Jean-Francois Moine moinejf@free.fr
[...]
Why can't you just use two simple-card instances in your setup?
My machine has only one audio device (kirkwood). This one has two outputs. The first one (I2S) is connected to the HDMI transmitter, and the other one (S/PDIF) is connected to both the HDMI transmitter and the S/PDIF connector. There can be only one playback stream, either via I2S, or S/PDIF, or both, with the final output either to HDMI or S/PDIF or both:
/--> I2S -----+-> HDMI platform -+ / -> S/PDIF -+ --> S/PDIF
DPCM permits to activate both I2S and S/PDIF, but it does not handle the format and rate constraints (both outputs are always activated with the platform constraints).
So, the actual solution I use is 3 DAI links (= 3 PCMs): - HDMI via I2S - HDMI via S/PDIF (no S/PDIF output) - S/PDIF via S/PDIF (no HDMI output)
You need to update the DT-binding document too when you are changing the binding. That way it would also be easier to follow what you are trying to accomplish here.
Some people want to have 2 different patchs: one for the code and the other one for the DT change. Some other people like you want only one patch. Which is the right way?
The sysclk and tdm properties appear to only work in the dais of the first dai-link and __asoc_simple_card_dai_init() will not be called for other dais at all. The DT-binding of this implementation would look pretty hairy to me.
I will add an other dynamic structure for these properties.