spi子系统调用流程

原创 2016年08月30日 20:31:49

spi驱动:

1.注册platform_device

在arch/arm/mach-s3c24xx/smdk2440.c 中注册platform_device ,其中s3c2410_spi_info 作为platform_device.private_data. platform_device.name 为"s3c2410-spi".   

同时在在arch/arm/mach-s3c2440/mach-smdk2440.c 中注册spi_board_info(注册spi从设备的板级信息), 其中spi_board_info.bus_num=0/1, 与s2c2440_spi_info 中的bus_num 相同, 以后会通过bus_num 比对来匹配。


2:在driver/spi/spi-s3c24xx.c中调用module_platform_driver(s3c24xx_spi_driver);  注册了s3c24xx_spi_driver,其设备的名字为s3c2410-spi,此名字与arch/arm/mach-s3c2440/smdk2440.c 中注册platform_device中的设备名字一样,则匹配上了

3:如果匹配上就会调用spi控制器驱动中的s3c24xx_spi_probe函数,probe函数又会调用spi_bitbang_start函数,此函数调用spi_register_master函数来注册添加spi控制器,之后调用spi_match_master_to_boardinfo函数来匹配已经注册的从设备信息bus_num,如果如果设备的总线号bus_num与控制器的总线号相等,则spi_new_device来添加从机设备,然后从机设备又会通过设备名字与总线上的设备驱动进行匹配,匹配成功后调用从设备驱动总的probe函数,来进行从设备的硬件初始化以及注册字符设备驱动或块设备驱动来提供给用户接口函数使用。


SPI子系统驱动架构 - 具体实现

文章系列SPI设备注册流程同I2C驱动的设备注册流程类似,遵从platform_bus_register->spi_bus_register->spi设备的流程spi主控制器的注册流程spi主控制器设...
  • l289123557
  • l289123557
  • 2016年07月06日 15:03
  • 6858

Linux SPI 子系统驱动程序开发笔记

Linux SPI 子系统驱动程序开发笔记。介绍了SPI协议及总结了linux spi 子系统驱动开发流程。然后用SPI接口的FLASH芯片W25Q32BV为例,具体概述了linux spi 子系统驱...
  • lingfeng5
  • lingfeng5
  • 2017年06月11日 22:32
  • 189

一 linux spi子系统(框架)

一.spi设备 struct spi_device { struct device dev; //设备文件 struct spi_master *master; //spi主机 u32 ...
  • paomadi
  • paomadi
  • 2013年02月27日 14:49
  • 3165

SPI驱动之子系统架构及重要数据结构

据个人所知,Linux下SPI一直是处于被“忽略”的角色,市场上大部分板子在板级文件里面都没有关于SPI的相关代码(例如,mini2440),而大部分讲解驱动的的书籍也没有专门的一章来讲述关于Linu...
  • u012724826
  • u012724826
  • 2013年11月13日 21:33
  • 1560

Linux内核驱动之spi子系统(一)spi协议

一、概况         SPI接口是摩托罗拉首先提出的全双工三线同步串行外围接口SCK,MOSI,MISO,采用主从模式(MasterSlave)架构;支持多slave模式应用(此时使用四线模式进...
  • ohyes158
  • ohyes158
  • 2016年07月07日 22:15
  • 597

Linux spi驱动框架之执行流程

Linux spi驱动架构由三部分构成:SPI核心层、SPI控制器驱动层、和SPI设备驱动程序。...
  • chenliang0224
  • chenliang0224
  • 2016年04月24日 22:45
  • 958

基于S3C2440的嵌入式Linux驱动——SPI子系统解读(一)

本文将介绍SPI子系统。内核版本为2.6.30。如有错误欢迎指正。 预备知识要求:1.SPI总线                        2. platfrom平台           ...
  • RopenYuan
  • RopenYuan
  • 2014年12月30日 18:18
  • 1763

linux中断子系统 - 中断及执行流程

linux中断子系统系列文章计划总共由5篇文章组成,本篇会通过中断的执行流来整体介绍一下中断,并引出其他文章的内容简介,中断的代码基本在kernel/irq目录下,中断控制器的代码在drivers/i...
  • l289123557
  • l289123557
  • 2016年10月23日 18:25
  • 879

SPI通信总线原理及工作过程

SPI, serial peripheral interface, 串行外围设备接口。高速的,全双工的,同步通信总线。有四个引脚:SDI(数据输入),SDO(数据输出),SCLK(时钟),CS(片选)...
  • ky_heart
  • ky_heart
  • 2016年09月25日 21:19
  • 4289

linux input输入子系统分析《四》:input子系统整体流程全面分析

主要讲述本人在学习Linux内核input子系统的全部过程,如有分析不当,多谢指正。以下方式均可联系,文章欢迎转载,保留联系信息,以便交流。 邮箱:eabi010@gmail.com 主页:www...
  • wangpengqi
  • wangpengqi
  • 2013年01月05日 23:01
  • 4453
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spi子系统调用流程
举报原因:
原因补充:

(最多只允许输入30个字)