有幾點必須先確定
1. spi master controler (硬體)能支援full duplex,也就是在一個
spi clock之內可以同時propagate(MOSI)跟latch(MISO)
2. spi master controller 的driver能支援full duplex,也就是說
driver知道怎麼去program硬體讓它做到full duplex
trace 一下__spi_async()跟master controller driver 的transfer()
很快就知道為什麼spi_sync()/spi_async()回傳error
有空 kernel/Documentation/spi/spi-summary 可以讀一下
kernel 的 spi driver framework 不是很難
※ 引述《eleghost (eleghost)》之銘言:
: 但我參考LXR的.. spi_sync, spi_async好像也不能雙向.
: http://lxr.linux.no/#linux+v3.4/drivers/spi/spi.c#L1098
: 因為如果在struct spi_message *message的
: tx_buf, rx_buf都放的話. 就會回傳error了 ...@_@
: thanks!
: ※ 引述《juichangkuo (..)》之銘言:
: : 你的spi master 與 slave device 都支援full duplex trasnfer嗎?
: : 如果是的話,可以在你的spi protocol driver裡面使用
: : spi_sync - blocking mode
: : spi_async - non-blocking mode
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.87.150.73