ASoC: fsl_ssi: The IPG/5 limitation concerns the bitclk, not the sysclk.
authorArnaud Mouiche <arnaud.mouiche@invoxia.com>
Tue, 3 May 2016 12:13:56 +0000 (14:13 +0200)
committerMark Brown <broonie@kernel.org>
Fri, 13 May 2016 11:15:31 +0000 (12:15 +0100)
commite09745f2e6a1f692fc63db01850aacf025475aad
tree6969a42a0099bff415ec033dbd6f258285b648d5
parent48a260eec301fd7a112d1737ca2755d91558a349
ASoC: fsl_ssi: The IPG/5 limitation concerns the bitclk, not the sysclk.

im6sl reference manual 47.7.4:
"
Bit clock - Used to serially clock the data bits in and out of the SSI port.
This clock is either generated internally (from SSI's sys clock) or taken
from external clock source (through the Tx/Rx clock ports).
[...]
Care should be taken to ensure that the bit clock frequency (either
internally generated by dividing the SSI's sys clock or sourced from
external device through Tx/Rx clock ports) is never greater than 1/5
of the ipg_clk (from CCM) frequency.
"

Since, in master mode, the sysclk is a multiple of bitclk, we can
easily reach a high sysclk value, whereas keeping a reasonable bitclk.

ex: 8ch x 16bit x 48kHz = 6144000, requires a 24576000 sysclk (PM=1)
    yet ipg_clk/5 = 66Mhz/5 = 13.2

Signed-off-by: Arnaud Mouiche <arnaud.mouiche@invoxia.com>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
Tested-by: Caleb Crome <caleb@crome.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/fsl_ssi.c