spi = message->spi;
if (unlikely(!chip->clk_div))
+ {
chip->clk_div = dws->max_freq / chip->speed_hz;
+ chip->clk_div = (chip->clk_div + 1) & 0xfffe;
+ chip->speed_hz = dws->max_freq / chip->clk_div;
+ }
+
if (message->state == ERROR_STATE) {
message->status = -EIO;
cr0 = chip->cr0;
- DBG_SPI("%s:len=%d\n",__func__,dws->len);
/* Handle per transfer options for bpw and speed */
if (transfer->speed_hz) {
clk_div = dws->max_freq / speed;
clk_div = (clk_div + 1) & 0xfffe;
- chip->speed_hz = speed;
+ chip->speed_hz = dws->max_freq / clk_div;
chip->clk_div = clk_div;
}
}
+ DBG_SPI("%s:len=%d,clk_div=%d,speed_hz=%d\n",__func__,dws->len,chip->clk_div,chip->speed_hz);
if (transfer->bits_per_word) {
bits = transfer->bits_per_word;
platform_set_drvdata(pdev, sdd);
- printk("%s:num_cs=%d,irq=%d,freq=%d ok\n",__func__, info->num_cs, irq, dws->max_freq);
+ printk("%s:num_cs=%d,bus_num=%d,irq=%d,freq=%d ok\n",__func__, info->num_cs, info->bus_num, irq, dws->max_freq);
return 0;
err_release_mem: