S3c2410-SPI驱动设计
来源:互联网 发布:淘宝店铺子账号在哪 编辑:程序博客网 时间:2024/05/29 11:54
S3c2410-SPI驱动设计
内核版本:linux-2.6.31
主要的几个结构
platform_device platform_driver s3c24xx_spi spi_master spi_bitbang spi_devicespi_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/下的节点来使用这个驱动了。
- S3c2410-SPI驱动设计
- Linux SPI驱动设计
- s3c2410+linux通过SPI驱动双数码管参考代码
- Linux SPI 子系统 驱动设计
- spi(2)pxe8311+spi-altera+m25p驱动设计
- pxe8311+spi-altera+m25p驱动设计
- MSP430 SPI驱动 代码设计流程
- spi驱动
- SPI驱动
- SPI驱动
- spi驱动
- spi驱动
- SPI驱动
- s3c2410触摸屏驱动
- S3C2410 UART驱动
- S3c2410触摸屏驱动移植
- s3c2410矩阵键盘驱动
- S3c2410 LCD驱动学习心得
- TestVideos
- escape sequence
- 好好学习
- exp /imp
- 删除svn文件夹
- S3c2410-SPI驱动设计
- ARM IMPORT |Image$$RO$$Limit| 的含义
- 二分查找 字符串
- AT91SAM9263 WINCE 6.0 R2驱动开发-官方BSP包usb device调试
- 信息化不是一种工具,而是一种先进的管理方式(转贴)
- Javascript压缩工具(Javascript compressed,Js压缩)(转)
- Open Source Social Platforms: 10 of the Best
- HttpSession 的正确理解
- Perl不支持多条件比较