linux i2c驱动注册流程
来源:互联网 发布:南风知我意在线阅读 编辑:程序博客网 时间:2024/05/01 11:06
以x210的触摸屏为例,分析一下i2c驱动注册的流程
1、在arch\arm\mach-s5pv210\mach-x210.c中
//新建一个i2c设备信息结构体
static struct i2c_board_info i2c_devs1[] __initdata = { { I2C_BOARD_INFO("gslX680", 0x40), },};
//把新的i2c设备信息结构体添加到__i2c_board_list链表中即把信息添加到id表中
i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1));
2、在drivers/input/touchscreen\gslx680.c中
//注册设备驱动static int __init gsl_ts_init(void){ int ret; print_info("==gsl_ts_init==\n"); ret = i2c_add_driver(&gsl_ts_driver); print_info("ret=%d\n",ret); return ret;}
驱动注册流程
i2c_add_driver
->i2c_register_driver
/* add the driver to the list of i2c drivers in the driver core*/ //driver指针指gsl_ts_driver即触摸屏的驱动结构体 driver->driver.owner = owner; driver->driver.bus = &i2c_bus_type; /* When registration returns, the driver core * will have called probe() for all matching-but-unbound devices. */ res = driver_register(&driver->driver);
->driver_find //查找该设备驱动是否已经存在->bus_add_driver //根据driver->driver.bus 类型,把驱动添加到相应的(i2c)总线上面
当驱动注册完成后,进行设备与驱动匹配
i2c_device_probe//注册完驱动后执行 ->driver->probe //执行驱动的probe,在prode的入口参数调用i2c_match_id ->i2c_match_id //比较id表里面是否已经存在了该驱动对应的设备名 即对应第一步中i2c_register_board_info注册的信息,返回对应的struct i2c_device_id即设备名 ->gsl_ts_probe //driver->probe实际上对应gsl_ts_probe ->测试i2c通信情况,进行一些系列的初始化工作
0 0
- linux i2c驱动注册流程
- i2c驱动注册流程实例分析
- i2c_add_driver:i2c驱动注册流程分析
- linux I2C设备驱动流程
- linux I2C 驱动之----i2c驱动的注册过程
- 【linux kernel 3.18】I2C总线驱动注册、注销和使用流程
- linux I2C 驱动之----i2c_client 的注册
- linux I2C 驱动之----i2c_driver的注册 .
- linux I2C 驱动之----i2c_client 的注册
- linux I2C 驱动之----i2c_driver的注册
- linux I2C 驱动之----i2c_client 的注册
- linux I2C 驱动之----i2c_client 的注册
- linux I2C 驱动之----i2c_client 的注册
- linux I2C 驱动之----i2c_driver的注册
- linux I2C 驱动之----i2c_client 的注册
- linux I2C 驱动之----i2c_driver的注册
- linux驱动:i2c驱动(四)流程图之注册驱动
- linux驱动:i2c驱动(三)流程图之注册设备
- 原码、反码、补码
- (3/4 OK) 在VirtualBox中运行 cm-13-kiwi (华为 荣耀 5X) - 移植cm-13-kiwi
- 二维码的生成算法
- Android热修复“AndFix”中文解析(使用说明)
- nefuoj 14 蟠桃记
- linux i2c驱动注册流程
- leetcode--n_queens&&n_queens_II
- AD入门
- 物联网需要什么样的应用开发语言?
- 敌兵布阵
- Android Studio Git版本管理 配置
- CF 675C Money Transfers
- Mysql索引概念和存储过程
- LATEX公式与特殊字符