On Mon, Feb 15, 2016 at 03:26:35PM +0000, Mark Brown wrote:
On Mon, Feb 15, 2016 at 04:11:35PM +0200, Peter Ujfalusi wrote:
Most CPU and codec drivers can select their system clock from different sources. They rely on snd_soc_dai_set_sysclk(x, sysclk_id, x, x) to do so. Add support for selecting which clock need to be selected along with the rate.
Rather than adding new bindings for the ASoC specific clocking APIs it seems better to use the standard clock API bindings and transition drivers to use that. In the past the clock API didn't have DT bindings so wehad to do our own thing but I think now that's no longer the case?
I'm interested in this as well since I'm working on a set of similair patches implementing clocking and PLL related issues in the simple-card driver.
There would be some problems as the typical use-cases involving setting a codecs clocks / PLLs to a multiple of the sample rate, data width, etc. The clocking API should support this as well if that's the way forward. However, since many of the clock settings are related to codec internals, the gain from moving codec PLLs, clocks, etc to the standard clock API would be rather limited. There is already support for getting sysclk from this API, which makes sense. Shouldn't clock id be seen more as a pin selection from the dai's point of view?
I really like the idea of the simple-card driver. It seems most board drivers really doesn't do much except setting up some clocks, which should be done in DT anyway, given there are enough available bindings to do so...
/Andreas