I am using the three SSI's on the imx6 as ALSA sound cards. When configuring the sysclk of the SSI's, I am seeing that the 12288000 value that I give to clk_round_rate is rounded to a lower value. So the resulting sysclk value cannot be used to obtain a 48KHz sampling rate. I have debugged this and found out that the following line in arch/arm/mach-imx/clk-imx6q.c sets a PLL4 clock value that is not suitable for obtaining the sampling rate I want:
|/* Set pll4_audio to a value that can derive 5K-88.2KHz and 8K-96KHz */|
I have changed the 541900800 Hz value to 688128000 Hz and after that, I am able to obtain exactly 12.288MHz.
Is there another (probably the proper) way to obtain exactly 12.288 MHz without changing the imx6 clock driver source code? I think there must be, because the comment above that line says that this value will allow obtaining 12.288MHz