]> git.baikalelectronics.ru Git - kernel.git/commit
spi: fsl-dspi: Fix clock rate scale values
authorAaron Brice <aaron.brice@datasoft.com>
Mon, 30 Mar 2015 17:49:15 +0000 (10:49 -0700)
committerMark Brown <broonie@kernel.org>
Tue, 31 Mar 2015 11:13:03 +0000 (12:13 +0100)
commitdc1c88ac5e37a2fcf3bc44d6d66a139f40e9ba3f
treec2d173be6b46d751f669d6f5c1f6534dbf35983c
parent9cbe621030a9cce16d27329dac74fd4b1c1d9412
spi: fsl-dspi: Fix clock rate scale values

Previous algorithm had an outer loop with the values {2,3,5,7} and an
inner loop with {2,4,6,8,16,32,...,32768}, and would pick the first
value over the required scaling value (where the total scale was the two
numbers multiplied).

Since the inner loop went up to 32768 it would always pick a value of 2
for PBR and a much higher than necessary value for BR.  The desired
scale factor was being divided by two I believe to compensate for the
much higher scale factors (the divide by two not specified in the
reference manual).

Updated to check all values and find the smallest scale factor possible
without going over the desired clock rate.

Signed-off-by: Aaron Brice <aaron.brice@datasoft.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-fsl-dspi.c