Hi Geert
I really wanted to review this earlier, but I am held back by my lack of understanding of the audio subsystem and the audio bindings. It is also not clear to me what really is hardware description (i.e. to be described in DT), and what is software policy (i.e. not to be described in DT)...
OK, I will try to answer your question, here.
Hence I have lots of questions ("A fool can ask more questions in a minute than a wise man can answer in an hour." ;-)
No problem, your are very wise man :)
What is the difference between "Simple Audio Card", "Audio Graph Card", and "Audio Graph Card2"? Why do we need to support all three of them?
The answer is because of "history" and "compatibility".
"Simple Audio Card" was created before DT support, now it is supporting DT too. But it is for very simple sound connection. It is using own DT style.
"Audio Graph Card" is almost same as "Simple Audio Card", but it is using "Of Graph" style. It is needed for HDMI support (= Sound with Video). "Audio Graph Card" was created because it is difficult to keep compatibility for both "Of Graph style" and "own style" on "Simple Audio Card".
"Audio Graph Card2" is expand version of "Audio Graph Card", but it is supporting more complex connections. Because of this complex connection, it is difficult to keep compatibility with "Audio Graph Card".
For normal user case, selecting one of them is very enough. But for me, I need to test all of them, thus I want to switch these easily. And ULCB is good board for testing.
Basically, people don't need to care about this patch-set. It separates DT file, but nothing change. It is just easy for testing.
How come we can have no #sound-dai-cells, #sound-dai-cells = <0>, and #sound-dai-cells = <1>, for the same hardware? What is the real difference between Single DAI and Multi DAI? Why do we need to support both?
It is used on "Simple Audio Card". We need <0> if the board is using SSI x 1, and need <1> if the board is using SSI x N. It is not mandatory if the board is using "Audio Graph Card/Card2".
Kuninori Morimoto (8): ARM: dts: renesas: #sound-dai-cells is used when simple-card arm64: dts: renesas: #sound-dai-cells is used when simple-card arm64: dts: renesas: add ulcb{-kf} Audio Graph Card dtsi arm64: dts: renesas: add ulcb{-kf} Audio Graph Card2 dtsi arm64: dts: renesas: add ulcb{-kf} Simple Audio Card dtsi
The above three all describe the same hardware configuration?
Yes, same hardware, but is using different connection style (= driver).
arm64: dts: renesas: add ulcb{-kf} Audio Graph Card2 dtsi MIX + TDM Split dtsi arm64: dts: renesas: add ulcb{-kf} Audio Graph Card dtsi MIX + TDM Split dtsi arm64: dts: renesas: add ulcb{-kf} Simple Audio Card MIX + TDM Split dtsi
Is MIX and TDM Split a different hardware configuration, or software policy?
Same hardware, but different connection (= mixing, split).
Hmm, it is difficult to explain via text... But this patch-set has no effect for users, but expand to easy to switch driver for testing for me.
Thank you for your help !!
Best regards --- Kuninori Morimoto