Linux标准的注册归纳起来有下面两类
1、动态注册
2、静态注册
动态注册我个人的理解是方便开发,有利于移植,国内很多平台都是用动态注册的。
静态注册是模块化思想很好的体现
哪个好哪个坏不是我今天讨论的话题,我个人比较偏向于动态注册,因为我是做产品的,喜欢方便。
分别看下如何实现
动态注册:
一
myadp = i2c_get_adapter(0); 获取总线
i2c_new_device(myadp,myboard_info); 动态注册i2c devices
二
myadp = i2c_get_adapter(0);
i2c_new_probed_device(myadp,myboard_info,addr_list,NULL);
带自动判断地址的动态注册
静态注册:
平台下面的*board.c文件
一
i2c_register_board_info 现在一般不用
二
写在dts里面
还有一种是 不在驱动当中注册直接在app里面打开总线,用的比较少