在kernel里添加一个i2c外围设备
来源:互联网 发布:最新彩票开奖网站源码 编辑:程序博客网 时间:2024/06/05 10:51
在kernel里添加一个已知芯片地址的外围设备的驱动,主要包含申请注册使用等
1. 定义主要变量:
static struct i2c_client *key_ic_client;static struct i2c_board_info key_ic_info = {/* 0x11 is the slave ic addr */I2C_BOARD_INFO("carplay_key_ic", 0x11),};
2. 注册申请i2c外围设备:
struct i2c_adapter *i2c_adap;printk(KERN_ALERT "%s\n", __func__);i2c_adap = i2c_get_adapter(5); // i2c_5if (i2c_adap == NULL) {printk(KERN_ERR "%s No adapter available!\n", __func__);return 0;}key_ic_client = i2c_new_device(i2c_adap, &key_ic_info);if (NULL == key_ic_client) {printk(KERN_ERR "%s i2c_new_device is Err!\n", __func__);return 0;}if (i2c_adap) {printk(KERN_ERR "%s i2c_adap is OK!\n", __func__);i2c_put_adapter(i2c_adap);}
3. 使用写函数向寄存器写入数据:
不同的i2c芯片要求的写函数,未必一样,要根据芯片的数据手册,来决定使用什么样的kernel里的写入驱动函数;
int ret = 0;ret = i2c_smbus_write_byte_data(key_ic_client, 0x10, 0x33);if (ret < 0){printk(KERN_ERR "%s: i2c_smbus_write_byte_data err\n", __func__);}
4. 使用读函数读取寄存器里的数据:
不同的i2c芯片要求的读函数,未必一样,要根据芯片的数据手册,来决定使用什么样的kernel里的读取驱动函数;
i2c_smbus_write_byte(key_ic_client, 0x00);udelay(500); // this delay is Necessaryvalue = i2c_smbus_read_byte(key_ic_client);printk(KERN_ALERT "%s: value = 0x%x\n", __func__, value);
这个例子中,读取函数之间有延时,是因为,这个芯片来不及处理读取请求,需要延时一段时间,再读取。大部分芯片不需要这种延时。
0 0
- 在kernel里添加一个i2c外围设备
- 在scrollView里添加删除一个视图
- 在GridView里添加一个功能按钮
- 在GridView里添加一个功能按钮
- linux添加一个kernel
- 在android手机中添加一个新的kernel module
- 如何在mtk kernel中新添加一个摄像头驱动
- kernel:在中断里添加打印后发现Android无法启动
- 如何在mtk andorid6.0上添加一个I2C驱动(这里是添加一个FM 芯片驱动)
- 在android repo里添加一个新project
- kernel I2C框架
- kernel I2C总线驱动
- Horizontalscrollview里添加一个布局,该布局里在添加一个自定义的View,为什么View里用Canvas画图无法显示?
- Horizontalscrollview里添加一个布局,该布局里在添加一个自定义的View,为什么View里用Canvas画图无法显示?
- Horizontalscrollview里添加一个布局,该布局里在添加一个自定义的View,为什么View里用Canvas画图无法显示?
- 在字符串里添加双引号
- 在cocos2d里添加iad
- 在tomcat里添加环境变量
- ReactNative Animated动画详解
- JAVA操作符学习过程(一)
- Java中动态加载jar文件和class文件
- 重写equals和hashCode
- Stk相关
- 在kernel里添加一个i2c外围设备
- matlab图像处理之二值图像内外边界跟踪
- Android中shape的用法
- selenium2java 截图保存桌面(内含一坑)
- UI 抛开主题其实还有另一种风景
- Android 编译支持 MultiDex 的设置,否则老报错
- Spark学习笔记 --- Spark中的Shuffle
- spring data jpa
- ZBrush怎么进行视图操作