Hi Sylwester
Is the main difference between "normal" and DPCM card that in case of the former the data flow routes are static and the latter allows dynamic reconfiguration of sound data routes? AFAIU DPCM stands here for Dynamic PCM [1], rather than Differential Pulse Code Modulation.
DPCM is a Linux internal abstraction that doesn't represent what's going on in a very generic fashion which makes it problematic when it appears directly in DT bindings. It's very SoC centric.
It seems the graph based binding could cover above both cases. Apologies if this has been explained before, but what are main reasons for introducing the graph based binding?
The simple card is creaking at the seams as it was only really designed to represent very simple use cases but has been extended rather beyond that. It's also not set up to cope with things like CODEC<->CODEC links that don't involve the CPU as it really only has the idea of point to point links between a CPU DAI and a CODEC DAI.
Is the SCU part in "ASoC simple SCU Sound Card" derived from "(S)ample Rate (C)onverter (U)nit" ?
Yes.
The original driver was created for Renesas SCU feature which needed DPCM's .be_hw_params_fixup() for converting. It was created based on simple card. At first, it was created as Renesas specific sound card, but I changed/moved it to one of simple card. Then I named it as simple scu card.
Best regards --- Kuninori Morimoto