设为首页 加入收藏

TOP

基于S3C2440的嵌入式Linux驱动——SPI子系统解读(一)
2014-11-24 10:56:03 】 浏览:8316
Tags:基于 S3C2440 嵌入式 Linux 驱动 SPI 子系统 解读

本文将介绍SPI子系统。内核版本为2.6.30。如有错误欢迎指正。


预备知识要求:1.SPI总线


2. platfrom平台


3. sysfs子系统


4. 阅读过LDD3第3,5,6,7,9,10,11章的内容。


NOTE:如果没有看过LDD3的相关内容,直接看内核源码将非常吃力!!!


目标板:TQ2440开发板 cpu:s3c2440 linux内核:2.6.30


0.引言


本系列文章对Linux设备模型中的SPI子系统进行讲解。SPI子系统的讲解将分为4个部分。


第一部分,即本篇文章,将对SPI子系统整体进行描述,同时给出SPI的相关数据结构,最后描述SPI总线的注册。


第四部分,通过SPI设备驱动留给用户层的API,我们将从上到下描述数据是如何通过SPI的protocol 驱动,由bitbang中转,最后由master驱动将数据传输出去。


1.SPI子系统综述


SPI子系统从上到下分为:spi设备驱动层,核心层和master驱动层。其中master驱动抽象出spi控制器的相关操作,而spi设备驱动层抽象出了用户空间API。


platform_device结构中描述了SPI控制器的相关资源,同时在板级信息中将会添加spi设备的相关信息。master驱动将以platform_driver形式体现出来,也就是说


在主控制器(master)和主控制器驱动将挂载到platform总线上。platform_driver的probe函数中将注册spi_master,同时将会获取在板级信息中添加的spi设备,将该


信息转换成spi_device,然后注册spi_device到spi总线上。spi_driver结构用于描述spi设备驱动,也将挂载到spi总线上。连同spi_driver一起注册的是字符设备,该


字符设备将提供5个API给用户空间。通过API,用户空间可以执行半双工读、半双工写和全双工读写。


2. SPI的相关数据结构


这里将介绍内核所用到的关键数据结构,还有些结构将在用到时加以说明。


2.1 spi_master


该结构用于描述SOC的SPI控制器,S3C2440共有两个SPI控制器。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Linux中SPI子系统图解和mini2440.. 下一篇S3C2440使用RAM来挂载jffs2文件系..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目