最近我开发SPI驱动,但是这个SPI驱动对spi时序有一定的要求。我程序是这样的
status =0;
spi_message_init(&msg);
buf_wdat[0] = 0x40|(((port-1)<<4)|reg);
buf_wdat[1] = 0x00;
buf_rdat[0] = 0x00;
buf_rdat[1] = 0x00;
index_xfer.tx_buf = buf_wdat;
index_xfer.rx_buf =(void *) buf_rdat;
spi_message_add_tail(&index_xfer, &msg);
cs(0);
status = spi_sync(spi, &msg);
cs(1);
udelay(5);
if(status)
{
return status;
}
*dat = buf_rdat[1];
上面红色的地方,我觉得从CS(0),后到spi的时钟出来这段时间比较长,有50us,不知道哪位知不知道status = spi_sync(spi, &msg);这个启动慢,可以在什么地方修改。 |