专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 驱动开发

gsensor afa750 i2c有关问题

发布时间:2010-06-14 16:35:50 文章来源:www.iduyao.cn 采编人员:星星草
gsensor afa750 i2c问题
static int sensor_active(struct i2c_client *client, int enable, int rate)
 {
 struct sensor_private_data *sensor =
     (struct sensor_private_data *) i2c_get_clientdata(client); 
 int result = 0;
 int status = 0;
 sensor->ops->ctrl_data = sensor_read_reg(client, sensor->ops->ctrl_reg);
 //sensor->ops->ctrl_data = sensor_read_reg(client, client->addr);

 //register setting according to chip datasheet 
 if(enable)
 { 
 status = AFA750_ENABLE; //afa750
 sensor->ops->ctrl_data |= status; 
 }
 else
 {
 status = ~AFA750_ENABLE; //afa750
 sensor->ops->ctrl_data &= status;
 }

 DBG("%s:reg=0x%x,reg_ctrl=0x%x,enable=%d\n",__func__,sensor->ops->ctrl_reg, sensor->ops->ctrl_data, enable);
 printk("%s:reg=0x%x,  addr  = 0x%x   reg_ctrl_data=0x%x,enable=%d\n",__func__,sensor->ops->ctrl_reg, client->addr,sensor->ops->ctrl_data, enable);
result = sensor_write_reg(client, sensor->ops->ctrl_reg, sensor->ops->ctrl_data);
if(result){
 printk("%s:fail to active sensor,result = %d\n",__func__,result);
 }
 return result;

 }
为什么result返回的会是负值,是不是ctrl_reg和ctrl_data的问题?求大神解答 
 
------解决方案--------------------
弱弱地问一下:
sensor_write_reg是公用的Linux内核组件的API么?还是厂家的驱动程序定义实现的?

另外,是任何时候都返回负值么?还是设置某些寄存器的时候会是正确的?
有没有可能你写了只读寄存器?
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: