On 03/19/2014 03:46 PM, Mark Brown wrote:
On Wed, Mar 19, 2014 at 12:08:55PM +0200, Jyri Sarha wrote:
While we are at it we could update the bitclock-master and frame-master syntax to be like this:
bitclock-master = "cpu" frame-master = "codec"
With the above explicit definition all the daifmt settings could be defined in link level. For backwards compatibility we could still define that omitting the value equals "codec" and omitting the property equals "cpu".
It seems it'd be a bit more idiomatic to do that with a phandle rather than with a string in order to allow extensions for things like TDM (the I2S to mono speaker driver use case for example).
You mean a like this:
sound { compatible = "simple-audio-card"; simple-audio-card,name = "Simple Audio"; simple-audio-card,widgets = ... simple-audio-card,routing = ...
simple-audio-card,dai-link@0 { /* I2S - codec */ format = "i2s"; bitclock-master = <&codec 0> frame-master = <&codec 0>; bitclock-inversion = <1>; simple-audio-card,cpu { sound-dai = <&audio1 0>; bitclock-inversion = <0>; }; simple-audio-card,codec { sound-dai = <&codec 0>; system-clock-frequency = <12000000>; }; }; ...
Yep, that makes sense when considering tdm setups with multiple codecs on the same wires.
Best regards, Jyri