一.host相关 1.struct mmc_host struct mmc_host是mmc core由host controller抽象出来的结构体,用于代表一个mmc host控制器. 数据结构如下: struct mmc_host { struct device *parent; // 对应的host controller的device struct device class_dev; // mmc_host的device结构体,会挂在class/mmc_host下 int index;…
零.说明(重要,需要先搞清楚概念有助于后面的理解) 1.mmc core card相关模块为对应card实现相应的操作,包括初始化操作.以及对应的总线操作集合.负责和对应card协议层相关的东西. 这里先学习mmc type card.后续再学习sd type card. 对应代码: drivers/mmc/core/mmc.c(提供接口), drivers/mmc/core/mmc-ops.c(提供和mmc type card协议相关的操作), drivers/mmc/core/mmc-ops…
零.说明 对应代码drivers/mmc/core/host.c,drivers/mmc/core/host.h. 为底层host controller driver实现mmc host的申请以及注册的API等等,以及host相关属性的实现. 一.API总览 1.mmc host分配.注册相关 mmc_alloc_host & mmc_free_host 底层host controller驱动调用,用来分配或者释放一个struct mmc_host结构体,将其于mmc_host_class关联,…
零.说明 对应代码drivers/mmc/core/bus.c. 抽象出虚拟mmc bus,实现mmc bus的操作. 一.API总览 1.mmc bus相关 mmc_register_bus & mmc_unregister_bus 用于注册和卸载mmc bus(虚拟mmc总线)到设备驱动模型中. 原型:int mmc_register_bus(void) 原型:void mmc_unregister_bus(void) 2.mmc driver相关 mmc_alloc_card & m…
一.说明 1.mmc core概述 mmc core主模块是mmc core的实现核心.也是本章的重点内容. 对应代码位置drivers/mmc/core/core.c. 其主要负责如下功能: mmc core初始化,包括注册mmc bus.mm host class等等 mmc host的管理和维护,包括为其他模块提供mmc_host的操作接口,如下 host的启动和停止 host的占用和释放 host电源状态的保存和恢复 host总线操作集的绑定和解绑 host上卡状态检测 为其他模块提供m…
一.sdhci core说明 1.sdhci说明 具体参考<host(第一章)--概述> SDHC:Secure Digital(SD) Host Controller,是指一套sd host控制器的设计标准,其寄存器偏移以及意义都有一定的规范,并且提供了对应的驱动程序,方便vendor进行host controller的开发. vendor按照这套标准设计host controller之后,可以直接使用sdhci driver来实现host controller的使用,(qcom和samsu…
一.概念 1.mmc的概念 mmc有很多种意义,具体如下: mmc MultiMedia Card,多媒体存储卡, 但后续泛指一个接口协定(一种卡式),能符合这接口的内存器都可称作mmc储存体. 主要特性如下: 工作电压:高电压为2.7-3.6 V,低电压为1.65-1.95 V,可选. mmc总线 mmc总线是和I2C总线.SPI总线类似的一种总线结构.简化系统结构图如下(也可以理解为硬件框架图): 硬件特性: 卡与主控制器间串行传送,工作时钟频率范围为0-200 MHz. mmc总线上最多可…
一.说明 sdhci-msm是指高通的mmc host,其使用了标准SDHC标准.故可以使用前面说的<host(第二章)--sdhci>和<host(第三章)--sdhci-pltfm说明>的接口. 后续代码以msm8916平台的host实现以及linux 4.6.0版本中的sdhci-msm的实现为例,这部分代码都是开源的. 由于有一些寄存器内容需要文档的支撑但我们并没有,所以这里只是简单地介绍一下设计思想和代码结构. 二.dtsi节点 msm8916有两个sdhci host,…
一.host简单说明 host,也可以理解为host controller,是指mmc总线上的主机端,mmc总线的控制器,每个host controller对应一条mmc总线. host controller会控制命令线.数据线和时钟线,从而实现mmc总线上的通讯. 上层发送mmc请求时,就是通过host controller产生对应的mmc通讯时序,下发至mmc设备,与mmc设备通讯. 注意,host的部分主要是实现card的通讯和检测,不去负责card的具体功能. 二.host驱动简单说明…
.NET Core 数据结构与算法 1-1 本节内容为顺序表 简介 线性表是简单.基本.常用的数据结构.线性表是线性结构的抽象 (Abstract),线性结构的特点是结构中的数据元素之间存在一对一的线性关系.这 种一对一的关系指的是数据元素之间的位置关系,即: 除第一个位置的数据元素外,其它数据元素位置的前面都只有一个数据元素: 除后一个位置的数据元素外,其它数据元素位置的后面都只有一个元素.也就是说,数据元素是 一个接一个的排列.因此,可以把线性表想象为一种数据元素序列的数据结构. 本节我们对…