On Sat, Feb 07, 2015 at 06:18:23AM +0800, Mark Brown wrote:
On Thu, Feb 05, 2015 at 12:53:39PM -0800, Kenneth Westfield wrote:
+- qcom,system-clock-shift : Add this bool property if the default
frequency of the system clock needs to
be reduced.
+- qcom,system-clock-shift-compare : A numerical value used to right-shift
the default system clock frequency for
comparison with the target bit clock
frequency.
+- qcom,system-clock-shift-amount : A numerical value used to right-shift
the default system clock frequency.
+- qcom,alternate-sysclk : Add this bool property if the default
frequency of the system clock cannot
divide down to the target bit clock
frequency.
+- qcom,alternate-sysclk-bitwidth : A numerical value representing the
sample bitwidth which requires use of
the alternate system clock frequency.
+- qcom,alternate-sysclk-frequency : A numerical value representing the new
system clock frequency to use.
None of these seem like they are appropriate for device tree properties, they appear to be choosing a specific clocking configuration which is something that would normally be done as part of the system integration in the machine driver rather than in the DAI driver. This binding won't work in cases where the clocks are being changed at runtime and would limit systems where that becomes possible in future.
So I add a machine driver that selects the clocking freq in hw_params and calls set_sysclk in the DAIs.
The DT node for the machine driver would look something like: default_system_clock_frequency = < xxxxxx >; alternate_system_clock_frequency = < xxxxxx >; cpu_dai = < &cpu >; codec_dai = < &codec >; pinctrl... ?
Does this sound ok? Also, would it make sense to move the pinctrl back to the machine driver?