i2c、spi设备展开过程
来源:互联网 发布:电话聊天软件 编辑:程序博客网 时间:2024/05/21 11:12
一、引入设备树之后const struct of_device_id of_default_bus_match_table[] = { { .compatible = "simple-bus", }, { .compatible = "simple-mfd", }, #ifdef CONFIG_ARM_AMBA { .compatible = "arm,amba-bus", }, #endif /* CONFIG_ARM_AMBA */ {} /* Empty terminated list */ }; 如果某个device node的compatible属性的值与数组of_default_bus_match_table中的任意一个元素的compatible的值match,那么这个device node的child device node仍旧会被注册为platform_device;如果不满足则不会展开,一般会在总线控制器的probe函数中展开成对应的总线设备,如i2c、spi。i2c、spi 设备的展开过程如下 the probe function of i2c bus controlleri2c_add_numbered_adapter---->__i2c_add_numbered_adapter---->i2c_register_adapter of_i2c_register_devices----> qcom:i2c_msm_probe---->i2c_msm_frmwrk_reg---->(1)i2c_add_numbered_adapter(2)of_i2c_register_devices the probe function of spi bus controllerdevm_spi_register_master---->spi_register_master---->(1)of_spi_register_master(2)of_register_spi_devices二、引入设备树之前i2c:i2c核心维护了一个全局链表__i2c_board_list用于管理i2c_client对应的设备结构体struct i2c_board_info,如下:LIST_HEAD(__i2c_board_list);i2c 设备驱动需要在板级文件中定义struct i2c_board_info,然后调用i2c_register_board_info向i2c核心注册,i2c核心会把其加入全局链表__i2c_board_list上,接着在总线控制器驱动注册i2c_adapter的时候(i2c_register_adapter)调用i2c_scan_static_board_info遍历board_list,在总线和设备的匹配后由struct i2c_board_info生成i2c_client。spi:spi核心维护了一个全局链表board_list,用于管理spi_device对应的设备结构体struct spi_board_info,如下:static LIST_HEAD(board_list);spi 设备驱动需要在板级文件中定义struct spi_board_info,然后调用spi_register_board_info向spi核心注册,spi核心会把其加入全局链表board_list上,接着在总线控制器驱动注册spi_master的时候(spi_register_master)遍历board_list,调用spi_match_master_to_boardinfo进行总线和设备的匹配,最后由struct spi_board_info生成spi_device。
阅读全文
0 0
- i2c、spi设备展开过程
- SPI设备注册过程
- I2C总线设备注册过程
- I2C SPI
- Linux里SPI与I2C创建设备的流程
- davinci i2c 设备注册的过程 笔记
- i2c设备与驱动匹配过程
- i2c设备与驱动匹配过程
- Linux下i2c设备的注册过程
- i2c设备与驱动匹配过程
- 设备树学习之(九)SPI设备注册过程
- 设备树学习之(九)SPI设备注册过程
- 设备树学习之(九)SPI设备注册过程
- UART,SPI,I2C总线
- SPI 与 I2C
- I2C SPI UART
- I2c和SPI区别
- I2C-SPI-UART
- HTTP AUTH验证
- GPRS联网过程简介
- 微信小程序入门资料,学习资料汇总
- linux动态编译和静态编译
- js data 日期转换大全
- i2c、spi设备展开过程
- hibernate 配置
- C语言学习之链表
- OpenCV中不同格式图片的保存
- Nature:地球微生物组计划首发成果
- 一 蓝牙概述
- LTE:OFDM的原理
- c语言学习日记2:单字符输出,判断年份,累加
- redis的事务处理