linux下MMC/SD/SDIO驱动系列之一 ---- 概述
来源:互联网 发布:淘宝网店的店名大全 编辑:程序博客网 时间:2024/05/28 05:16
最近在研究WIFI驱动,驱动模块为broamd4330,基于SDIO接口,所以趁机研究了一下内核中对于SDIO设备的注册。
(我使用的linux内核版本为3.2.0 硬件为samsung 4412)
在介绍内核之前,有必要先了解一下MMC SD SDIO三种卡,从发展历程来看,是先有MMC卡,后来有SD卡,这两种都是纯粹的存储卡,而SDIO是什么呢,从字面意思理解,应该是SD+IO,也就是既有存储功能,又有IO控制功能,不过也有纯IO功能的SDIO设备(本人用到的WIFI模块就是这种)。并且,这三种卡可以使用同一个插槽,系统还能正确的识别!!,可能是由于历史原因,在开始有Linux的时候,还只存在mmc卡(不存在SD和SDIO卡),所以在linux系统里面关于这三种卡的名称统统用“mmc“来命名。
下面来看一下CPU与WIFI模块的物理连接图
从图上可以看出,我们的WIFI模块接的是CPU上的mmc3,数据线,时钟线以及命令线都一一对应,当然在CPU一端,对于mmc3模块,还有一个很重要的引脚--“xmmc3CDn”脚,CPU就是根据该引脚的电平高低来判断mmc3模块上是否有卡接入,如果电平为低,表示有卡,如果为高,表示无卡,笔者这里将该引脚固定拉低。同时在WIFI模块一端,也有一个很重要的引脚--“WL_SDIO_SPI_HSCI_SEL”引脚 ,它是用来选择模块是工作在SD模式(低电平),还是SPI模式(高电平),笔者这里也将该引脚固定拉低。
好了,简单的介绍了一些概念以及硬件后,还是要回归到程序上,从大的方面来讲,MMC/SD/SDIO的驱动程序主要分为两大块,主设备驱动和从设备驱动。对于上面的例子来说,CPU上的MMC3模块就是主设备,而WIFI模块就是从设备。该系列的博文就是分析MMC主设备在内核中的注册,以及对于同一个mmc插槽,系统是如何区分出MMC SD 以及SDIO设备的。
精彩的内容,见下一篇博文
- linux下MMC/SD/SDIO驱动系列之一 ---- 概述
- linux下MMC/SD/SDIO驱动系列之一 ---- 概述
- linux下SD/MMC/SDIO驱动分析
- linux下MMC/SD/SDIO驱动系列之四 ---- SDIO的识别与操作
- linux下MMC/SD/SDIO驱动系列之四 ---- SDIO的识别与操作
- linux下MMC/SD/SDIO驱动系列之二 ---- host注册过程(一)
- linux下MMC/SD/SDIO驱动系列之三 ---- host注册过程(二)
- linux下MMC/SD/SDIO驱动系列之二 ---- host注册过程(一)
- SD/MMC/SDIO驱动
- Linux SD/MMC/SDIO驱动分析
- Linux SD/MMC/SDIO驱动分析
- Linux SD/MMC/SDIO驱动分析
- Linux SD/MMC/SDIO驱动分析(新)
- Linux SD/MMC/SDIO
- linux mmc/sd/sdio
- SD/MMC/SDIO 驱动分析
- s5pv210-Linux驱动之MMC/SD/SDIO区别
- Linux MMC/SD/SDIO体系结构
- wine卸载已安装软件
- iOS开发>>>音频播放
- blueStacks——an Android simulator
- 一篇很全面的freemarker教程
- 将一个升序排列的单链表和一个降序排列的单链表合并成一个升序排列的单链表(优酷土豆2014校园招聘笔试题)
- linux下MMC/SD/SDIO驱动系列之一 ---- 概述
- 嵌入式开发之工具移植--wpa_suppliant工具的移植和使用
- iOS开发>>>定位服务调用
- linux 定时任务 定时执行某脚本 定期爬虫 统计 刷新 crontab -e
-
- iOS开发>>>天气接口的调用
- 内存对齐原理
- Codeforces-356C
- 一个关于移位的问题的多种算法求解