linux mmc驱动框架,Linux mmc framework2:基本组件之mmc

本文深入剖析Linux内核的mmc驱动框架,重点讲解mmc组件的主要流程,包括mmc_attach_mmc函数的详细步骤,如mmc_set_bus_mode、mmc_send_op_cond、mmc_select_voltage等,以及mmc_init_card过程中的mmc_card设备初始化和mmc_add_card的设备添加操作。
摘要由CSDN通过智能技术生成

1.前言

本文主要mmc组件的主要流程,在介绍的过程中,将详细说明和mmc相关的流程,涉及到其它组件的详细流程再在相关文章中说明。

2.主要数据结构和API

TODO

3. 主要流程

3.1 mmc_attach_mmc

以eMMC为例,则扫描时会回调mmc_attach_mmc

mmc_attach_mmc->

mmc_set_bus_mode(host, MMC_BUSMODE_OPENDRAIN)

mmc_send_op_cond

mmc_attach_bus_ops

mmc_select_voltage

mmc_init_card->

mmc_add_card

mmc_set_bus_mode(host, MMC_BUSMODE_OPENDRAIN)

identification阶段需要设为opendrain模式,协议约定;

mmc_send_op_cond

发送CMD1,arg为0,获取OCR寄存器的内容,设备支持的电压范围

mmc_attach_bus_ops

关联mmc_bus_type的ops

mmc_select_voltage

根据host支持的电压范围和OCR寄存器中读取的电压范围,得出两者都支持的电压范围,然后选取最小的电压值。对于我们的host一般会采用固定输出的电压值。

mmc_init_card

处理卡的检测和初始化:

a). mmc_set_bus_mode(host, MMC_BUSMODE_OPENDRAIN);初始前将busmode设为opend

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值