spi子系统调用流程

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函数,来进行从设备的硬件初始化以及注册字符设备驱动或块设备驱动来提供给用户接口函数使用。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值