我想使用 SPI 与 SD 卡连接。我的笔记本电脑(运行 Ubuntu 16.04)装有 RTS5227 PCI Express 读卡器,它在 SD 模式下运行良好,但尝试在 SPI 模式下使用它到目前为止没有成功。
该读卡器目前使用的内核模块是rtsx_pci_sdmmc
。
到目前为止我尝试过的事情:
- 移除
rtsx_pci_sdmmc
模块,加载mmc_spi
模块; - 仅使用 SPI 驱动程序重建内核;
- 作为最后的绝望手段,我将其设置
mmc_host_is_spi(host)
为 1/include/linux/mmc/host.h
并重建内核。
我开始认为读卡器不支持 SPI,但根据 SD 规范应该支持。
如何让读卡器使用 SPI?这不可能吗?
答案1
根据规范,SPI 模式对于 SD 存储器和 SDIO 卡是强制性的[1]。然而,SD主持人控制器不一定支持此模式[2]:
...此模式(SPI)是 SD 存储卡协议的一个子集,旨在与 SPI 通道进行通信,常见于摩托罗拉(以及最近其他一些供应商)的微控制器中。
我仍然不确定 RTS5227 PCI Express 读卡器的微控制器是否支持模式,但我猜测它不支持。