当前位置:嗨网首页>书籍在线阅读

05-I2C适配器驱动加载与卸载

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

15.3.1 I2C适配器驱动加载与卸载

I2C总线驱动模块的加载函数要完成两个工作。

● 初始化I2C适配器所使用的硬件资源,如申请I/O地址、中断号等。

● 通过i2c_add_adapter()添加i2c_adapter的数据结构,当然这个i2c_adapter数据结构的成员已经被xxx适配器的相应函数指针所初始化。

I2C总线驱动模块的卸载函数要完成的工作与加载函数相反。

● 释放I2C适配器所使用的硬件资源,如释放I/O地址、中断号等。

● 通过i2c_del_adapter()删除i2c_adapter的数据结构。

代码清单15.10所示为I2C适配器驱动的模块加载和卸载函数的模板。

代码清单15.10 I2C总线驱动的模块加载和卸载函数模板

1 static int _ _init i2c_adapter_xxx_init(void)

2 {

3 xxx_adpater_hw_init();

4 i2c_add_adapter(&xxx_adapter);

5 }

6

7 static void _ _exit i2c_adapter_xxx_exit(void)

8 {

9 xxx_adpater_hw_free();

10 i2c_del_adapter(&xxx_adapter);

11 }

上述代码中xxx_adpater_hw_init()和xxx_adpater_hw_free()函数的实现都与具体的CPU和I2C适配器硬件直接相关。