spi: pxa2xx: shift clk_div in one place
This patch refactors ssp_get_clk_div() and pxa2xx_ssp_get_clk_div() to align clk_div calculations, i.e. ssp_get_clk_div() and quark_x1000_set_clk_regvals() will return plain clk_div and it will be shifted to proper position in pxa2xx_ssp_get_clk_div(). Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
22d1b94d4b
commit
025ffe88ee
|
@ -726,23 +726,23 @@ static unsigned int ssp_get_clk_div(struct driver_data *drv_data, int rate)
|
||||||
rate = min_t(int, ssp_clk, rate);
|
rate = min_t(int, ssp_clk, rate);
|
||||||
|
|
||||||
if (ssp->type == PXA25x_SSP || ssp->type == CE4100_SSP)
|
if (ssp->type == PXA25x_SSP || ssp->type == CE4100_SSP)
|
||||||
return ((ssp_clk / (2 * rate) - 1) & 0xff) << 8;
|
return (ssp_clk / (2 * rate) - 1) & 0xff;
|
||||||
else
|
else
|
||||||
return ((ssp_clk / rate - 1) & 0xfff) << 8;
|
return (ssp_clk / rate - 1) & 0xfff;
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned int pxa2xx_ssp_get_clk_div(struct driver_data *drv_data,
|
static unsigned int pxa2xx_ssp_get_clk_div(struct driver_data *drv_data,
|
||||||
struct chip_data *chip, int rate)
|
struct chip_data *chip, int rate)
|
||||||
{
|
{
|
||||||
u32 clk_div;
|
unsigned int clk_div;
|
||||||
|
|
||||||
switch (drv_data->ssp_type) {
|
switch (drv_data->ssp_type) {
|
||||||
case QUARK_X1000_SSP:
|
case QUARK_X1000_SSP:
|
||||||
quark_x1000_set_clk_regvals(rate, &chip->dds_rate, &clk_div);
|
quark_x1000_set_clk_regvals(rate, &chip->dds_rate, &clk_div);
|
||||||
return clk_div << 8;
|
|
||||||
default:
|
default:
|
||||||
return ssp_get_clk_div(drv_data, rate);
|
clk_div = ssp_get_clk_div(drv_data, rate);
|
||||||
}
|
}
|
||||||
|
return clk_div << 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pump_transfers(unsigned long data)
|
static void pump_transfers(unsigned long data)
|
||||||
|
|
Loading…
Reference in New Issue