spi 驱动程序组成简要分析

注册设备info(主要有设备通信速率、模式、片选引脚等与具体设备相关信息)

spi_register_board_info
        list_add_tail(&bi->list, &board_list);//放进board_list链表中
        list_for_each_entry(master, &spi_master_list, list)
        spi_match_master_to_boardinfo        //遍历从spi_master_list中每一个master执行spi_match_master_to_boardinfo
                if (master->bus_num != bi->bus_num)//判断bus_num是否一致,如果是此时就创建新设备
                spi_new_device
                        spi_alloc_device
                        spi_add_device
                                spi_setup
                                device_add   //至此,一个spi设备就被注册进总线,之后便可通过匹配match函数进行与driver的匹配了

注册设备driver

spi_register_driver
        driver_register
                bus_add_driver
                        driver_attach            //同样此时注册了一个spi驱动,同样通过匹配match函数进行与device的匹配
                                


注册spi控制器

spi_register_master
        list_add_tail(&master->list, &spi_master_list);//先将master 添加进spi_master_list 链表中
        list_for_each_entry(bi, &board_list, list)
        spi_match_master_to_boardinfo(master, &bi->board_info);//遍历每个board并执行spi_match_master_to_boardinfo
                if (master->bus_num != bi->bus_num)
                spi_new_device                                            //若bus_num一致执行新建设备,之后的工作和上面的spi_register_board_info一致

转载于:https://my.oschina.net/u/3406232/blog/912047

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值