I'm trying to use simple-audio-card in a system with an ADAU1361, as it seems that the basic functionality is what I need without resort to writing a specialized machine driver, however there are a couple of shortcomings related to my particular patch which I want to discuss before venturing off on a tangent:
1. The ADAU1361 needs its PLL set up using snd_soc_dai_ops.set_pll, however simple-audio-card has no support for this. Would it be a good idea to augment simple-audio-card with this? After all, it does set_sysclk.
2. simple-audio-card unconditionally uses clk_prepare_enable to start the CPU DAI and CODEC DAI clocks. In the particular system I have here however, the clock hierarchy is not modelled in DT. I would rather make these calls conditional on the corresponding clk variable, i.e. if no clock has been defined for the DAI in question, no attempt is done to do clk_prepare_enable either.
3. It would be nice if simple-audio-card could support off-codec widgets, e.g. switches that are not built into the codec, via the gpio framework. That is, you could set up ALSA controls which control a feature via gpio.
I'm prepared to do the actual work, but it warrants a bit of discussion whether or not these things are a good idea to start with. If too much features are added to simple-audio-card it might not be so simple any more, on the other hand, it would do very nicely as a more and more general device tree based machine driver which is simple to use.
/Ricard