ARM: i.MX28: shift frac value in _CLK_SET_RATE
authorMatt Burtch <matt@grid-net.com>
Mon, 17 Oct 2011 16:25:45 +0000 (09:25 -0700)
committerSascha Hauer <s.hauer@pengutronix.de>
Tue, 25 Oct 2011 09:17:44 +0000 (11:17 +0200)
commit590842f90984f96a3da6d8b59447dfa1d186d01e
tree488f0411e31f9ee130dbf5e72396064793c3919e
parent6571534b600b8ca1936ff5630b9e0947f21faf16
ARM: i.MX28: shift frac value in _CLK_SET_RATE

Noticed when setting SSP0 in clk_set_rate, _CLK_SET_RATE attempts to
reset the clock divider for the SSP0 parent clock, in this case
IO0FRAC. Bits 24-29 of HW_CLKCTRL_FRAC0 are cleared correctly, but
when the new frac value is written the value isn't shifted up to write
the correct bit-field.  This results in IO0FRAC being set to 0 and
CPUFRAC being corrupted.

This should occur when writing IO1FRAC, EMIFRAC in HW_CLKCTRL_FRAC0
and GPMIFRAC, HSADCFRAC in HW_CLKCTRL_FRAC1.

Tested on custom i.MX28 board with SSP0 SPI driver.

Signed-off-by: Matt Burtch <matt@grid-net.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
arch/arm/mach-mxs/clock-mx28.c