linux_spi
来源:互联网 发布:js ajax 上传文件 编辑:程序博客网 时间:2024/05/17 08:47
主要的几个结构platform_device platform_driver s3c24xx_spi spi_master spi_bitbang spi_device spi_driver spidev_data s3c_spi_info第一步:注册platform_device在arch/arm/mach-s3c2410/mach-qt2410.c 中注册platform_device ,其中s3c2410_spi_info 作为platform_device.private_data. platform_device.name 为"s3c2410-spi".
同时在mach-qt2410.c 中注册spi_board_info, 其中spi_board_info.bus_num=0, 与s2c2410_spi_info 中的bus_num 相同, 以后会通过bus_num 比对来匹配。
第二步:注册platform_driver在driver/spi/spi_s3c24xx.c 中注册platform_driver (s3c24xx_spi_driver) ,这个platform_driver 的名字为"s3c2410-spi" ,这样名字与platform_device 的相同,在注册的时候会匹配到一起。并调用s3c24xx_spi_driver.probe 函数s3c24xx_spi_probe .
第三步:注册spi_device在。probe 函数中创建s3c24xx_spi ,该结构中包括了一个spi_bitbang, 一个spi_master ,配置了一些互相关联的项以后( 将3c2410_spi_info.bus_num 作为spi_master.bus_num) ,即扫描注册的spi_board_info 链表,查找所有spi_board_info.bus_num 与spi_master.bus_num 相等的项,并为每一项注册spi_device ,其中spi_device 的名字为spi_board_info. Modalias .
第四步:注册字符设备,注册spi_driver在driver/spi/spidev.c 中,先注册 了以SPIDEV_MAJOR 为主设备号,spidev_ops 为文件操作集的字符设备 .注册spi_driver . 在driver/spi/spidev.c 中,其中spi_driver 的名字为“spidev” ,这样与刚才注册的spi_device 相匹配,在spi_driver.probe 并为每个匹配的spi_device 创建了一个spidev_data ,并在sys 系统中注册一个带有以SPIDEV_MAJOR 为主设备号,以0开始的递增的数字为副设备号的设备点,这样如果有udev 运行的话会在/dev 下面节点。
好了,所有的工作准备就绪了,用户可以通过访问/dev/ 下的节点来使用这个驱动了。
- linux_spi
- Linux_SPI驱动debug
- DB2用户自定义数据类型UDT
- 资本主义-社会主义
- perl--2013-4-8
- 在Windows上搭建Android的JAVA开发环境图文教程(Eclipse版本)
- 多个图片链接
- linux_spi
- ip地址,子网掩码,网关,dns
- 实例讲解Java中的接口的作用
- org.hibernate.util.JDBCExceptionReporter# 关闭的连接(或者无法从套接字读取更多数据)
- 归纳Java中的Interface(接口)
- 基于MCP2515的Linux CAN总线驱动程序设计(二)
- 程序人生--2007年(36)
- ATL开发COM组件及Fatal Error C1853
- java接口的理解