Linux内核4.14版本——mmc框架——mmc硬件总线扫描流程(以sd card为例)

本文详细介绍了Linux内核4.14版本中mmc框架下,针对sd card的硬件总线扫描流程,包括扫描时机、插入状态获取以及热插拔的中断和轮询监控机制。主要关注启动host时、硬件状态变化及轮询检测时如何扫描mmc总线,以及如何通过GPIO和host寄存器判断sd card插入状态。
摘要由CSDN通过智能技术生成

目录

1. 扫描mmc硬件总线

1.1 扫描mmc硬件总线的时机

1.1.1 启动一个host的时候而调用_mmc_detect_change

1.1.2 底层硬件发现card插入状态发生变化而调用mmc_detect_change的时候(sd card插入状态监控)

1.1.3 host要求轮询sd card插入状态的情况下,所进行的轮询操作(sd card插入状态监控)

1.2 如何扫描mmc硬件总线

2. sd card插入状态的获取

2.1 获取sd card当前的插入状态

2.1.1 通过GPIO获取当前sd card的插入状态

2.1.2 通过host寄存器获取当前card插入状态

2.2 mmc_host_ops->get_cd方法的实现

3. sd card热插拔实现

3.1 中断监控

3.1.1 cd-gpio的解析

3.1.2 注册cd-gpio中断引脚

3.1.3 mmc_gpio_request_cd实现

3.1.4 中断监控的中断处理函数mmc_gpio_cd_irqt

3.2 轮询监控


代码:

drivers\mmc\core\core.c

drivers\mmc\core\slot-gpio.c

1. 扫描mmc硬件总线

      扫描mmc硬件总线,也就是检测mmc硬件总线上是否有挂载card。更加通俗的,就是卡槽上是否有插入card。先参考前面一篇文章

1.1 扫描mmc硬件总线的时机

mmc core在如下情况下会去扫描mmc硬件总线:

     1)启动一个host的时候而调用mmc_detect_change

     2)底层硬件发现card插入状态发生变化而调用mmc_detect_change的时候(sd card插入状态监控)

     3)host要求轮询sd card插入状态的情况下,所进行的轮询操作(sd card插入状态监控)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值