spi总线的mmc卡驱动调试总结

本文总结了在SPI总线上的MMC卡驱动调试过程,主要关注非热插拔场景下的初始化和调用流程,从底层到应用层进行深入解析。
摘要由CSDN通过智能技术生成
这周调试挂载在spi总线sd卡驱动,总结一下
因为这个涉及到2个驱动,spi总线驱动和sd卡驱动,sd卡设备挂载在spi总线上并不像设备挂载在i2c总线上,
i2c总线提供设备挂载需要的借口函数attach,只需要设备主动去调用attach就可以挂载上去。而对于spi总
线设备它的挂载方式不是主动去挂载,而是采取和platform虚拟总线注册设备方式相似的方法。在相应处理
器架构的目录上的platform.c文件中添加一个设备信息,相当于device,在设备驱动中注册的时候去匹配挂
载,就是对照name是否相同。

static struct spi_board_info ls_sb2f_spi_device[]={
{   
    .modalias   = "mmc_spi",
    .platform_data   = NULL,
    .bus_num    =0,
    .chip_select =1,
    .mode       =0,
}

spi_register_board_info(ls_sb2f_spi_device, ARRAY_SIZE(ls_sb2f_spi_device));

spi总线驱动主要就是实现spi总线的传输协议,以及给设备提供传输数据需要调用的接口函数。
内核spi总线驱动实现的传输方式是将数据封装成message,每个message由多个transfer组成,由于spi总线可
以实现全双工传输,因此对于所有transfer都是同时读写。内部都同时提供tx_buf和rx_buf。
所以作为一个挂载在spi总线上的从设备,需要做的事情就是将自己要传输的数据封装成message,调用spi传输
函数传输数据。
spi总线驱动就是spi控制器驱动,关键在于spi_master结构体。
还有2个关键的结构体就是spi_device,这个是表示spi从设备,就是在platform.c中注册的设备,spi_driver
就是要和spi_device匹配的从设备驱动。
而对sd卡,驱动在driver/mmc下。这个是内核提供的对于mmc卡的标准驱动,包括sd卡。


mmc目录下有3个目录

区块层 card
主要是按照 LINUX 块设备驱动程序的框架实现一个卡的块设备驱动,这
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值