• Aaron Brice's avatar
    spi: fsl-dspi: Fix clock rate scale values · e689d6df
    Aaron Brice authored
    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: default avatarAaron Brice <aaron.brice@datasoft.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    e689d6df
spi-fsl-dspi.c 14.1 KB