Lines Matching full:sensor

33 #include <linux/sensor-dev.h>
113 /****************operate according to sensor chip:start************/
117 struct sensor_private_data *sensor = in sensor_active() local
121 //sensor->ops->ctrl_data = sensor_read_reg(client, sensor->ops->ctrl_reg); in sensor_active()
126 sensor->ops->ctrl_data = AK8975_MODE_SNG_MEASURE; in sensor_active()
130 sensor->ops->ctrl_data = AK8975_MODE_POWERDOWN; in sensor_active()
133 …DBG("%s:reg=0x%x,reg_ctrl=0x%x,enable=%d\n",__func__,sensor->ops->ctrl_reg, sensor->ops->ctrl_data… in sensor_active()
134 result = sensor_write_reg(client, sensor->ops->ctrl_reg, sensor->ops->ctrl_data); in sensor_active()
136 printk("%s:fail to active sensor\n",__func__); in sensor_active()
144 struct sensor_private_data *sensor = in sensor_init() local
151 result = sensor->ops->active(client,0,0); in sensor_init()
158 sensor->status_cur = SENSOR_OFF; in sensor_init()
164 printk("%s:info=0x%x,it is not %s\n",__func__, info, sensor->ops->name); in sensor_init()
174 DBG("%s:status_cur=%d\n",__func__, sensor->status_cur); in sensor_init()
180 struct sensor_private_data *sensor = in sensor_report_value() local
188 if(sensor->ops->read_len < 8) //sensor->ops->read_len = 8 in sensor_report_value()
190 printk("%s:lenth is error,len=%d\n",__func__,sensor->ops->read_len); in sensor_report_value()
198 *buffer = sensor->ops->read_reg; in sensor_report_value()
199 ret = sensor_rx_data(client, buffer, sensor->ops->read_len); in sensor_report_value()
236 * disturbance; it indicates, the sensor data is incorrect and should in sensor_report_value()
248 mutex_lock(&sensor->data_mutex); in sensor_report_value()
249 memcpy(sensor->sensor_data, buffer, sensor->ops->read_len); in sensor_report_value()
250 mutex_unlock(&sensor->data_mutex); in sensor_report_value()
252 for(i=0; i<sensor->ops->read_len; i++) in sensor_report_value()
256 …if((sensor->pdata->irq_enable)&& (sensor->ops->int_status_reg >= 0)) //read sensor intterupt statu… in sensor_report_value()
259 DBG("%s:sensor int status :0x%x\n", __func__, in sensor_report_value()
260 sensor_read_reg(client, sensor->ops->int_status_reg)); in sensor_report_value()
265 ret = sensor_write_reg(client, sensor->ops->ctrl_reg, sensor->ops->ctrl_data); in sensor_report_value()
268 printk(KERN_ERR "%s:fail to set ctrl_data:0x%x\n",__func__,sensor->ops->ctrl_data); in sensor_report_value()
277 struct sensor_private_data *sensor = in compass_set_YPR() local
280 /* Report magnetic sensor information */ in compass_set_YPR()
281 if (atomic_read(&sensor->flags.m_flag)) { in compass_set_YPR()
282 input_report_abs(sensor->input_dev, ABS_RX, rbuf[0]); in compass_set_YPR()
283 input_report_abs(sensor->input_dev, ABS_RY, rbuf[1]); in compass_set_YPR()
284 input_report_abs(sensor->input_dev, ABS_RZ, rbuf[2]); in compass_set_YPR()
285 input_report_abs(sensor->input_dev, ABS_RUDDER, rbuf[4]); in compass_set_YPR()
289 /* Report acceleration sensor information */ in compass_set_YPR()
290 if (atomic_read(&sensor->flags.a_flag)) { in compass_set_YPR()
291 input_report_abs(sensor->input_dev, ABS_X, rbuf[6]); in compass_set_YPR()
292 input_report_abs(sensor->input_dev, ABS_Y, rbuf[7]); in compass_set_YPR()
293 input_report_abs(sensor->input_dev, ABS_Z, rbuf[8]); in compass_set_YPR()
294 input_report_abs(sensor->input_dev, ABS_WHEEL, rbuf[5]); in compass_set_YPR()
300 if (atomic_read(&sensor->flags.mv_flag)) { in compass_set_YPR()
301 input_report_abs(sensor->input_dev, ABS_HAT0X, rbuf[9]); in compass_set_YPR()
302 input_report_abs(sensor->input_dev, ABS_HAT0Y, rbuf[10]); in compass_set_YPR()
303 input_report_abs(sensor->input_dev, ABS_BRAKE, rbuf[11]); in compass_set_YPR()
308 input_sync(sensor->input_dev); in compass_set_YPR()
331 struct sensor_private_data* sensor = (struct sensor_private_data *)i2c_get_clientdata(this_client); in compass_akm_set_mode() local
339 if(sensor->status_cur == SENSOR_OFF) in compass_akm_set_mode()
341 sensor->stop_work = 0; in compass_akm_set_mode()
342 sensor->status_cur = SENSOR_ON; in compass_akm_set_mode()
343 if(sensor->pdata->irq_enable) in compass_akm_set_mode()
350 schedule_delayed_work(&sensor->delaywork, msecs_to_jiffies(sensor->pdata->poll_delay_ms)); in compass_akm_set_mode()
357 if(sensor->status_cur == SENSOR_ON) in compass_akm_set_mode()
359 sensor->stop_work = 1; in compass_akm_set_mode()
360 if(sensor->pdata->irq_enable) in compass_akm_set_mode()
366 cancel_delayed_work_sync(&sensor->delaywork); in compass_akm_set_mode()
368 sensor->status_cur = SENSOR_OFF; in compass_akm_set_mode()
377 result = sensor_write_reg(client, sensor->ops->ctrl_reg, AK8975_MODE_SNG_MEASURE); in compass_akm_set_mode()
382 result = sensor_write_reg(client, sensor->ops->ctrl_reg, AK8975_MODE_SELF_TEST); in compass_akm_set_mode()
387 result = sensor_write_reg(client, sensor->ops->ctrl_reg, AK8975_MODE_FUSE_ACCESS); in compass_akm_set_mode()
393 result = sensor_write_reg(client, sensor->ops->ctrl_reg, AK8975_MODE_POWERDOWN); in compass_akm_set_mode()
411 struct sensor_private_data* sensor = (struct sensor_private_data *)i2c_get_clientdata(this_client); in compass_akm_get_openstatus() local
412 wait_event_interruptible(sensor->flags.open_wq, (atomic_read(&sensor->flags.open_flag) != 0)); in compass_akm_get_openstatus()
413 return atomic_read(&sensor->flags.open_flag); in compass_akm_get_openstatus()
418 struct sensor_private_data* sensor = (struct sensor_private_data *)i2c_get_clientdata(this_client); in compass_akm_get_closestatus() local
419 wait_event_interruptible(sensor->flags.open_wq, (atomic_read(&sensor->flags.open_flag) <= 0)); in compass_akm_get_closestatus()
420 return atomic_read(&sensor->flags.open_flag); in compass_akm_get_closestatus()
428 struct sensor_private_data* sensor = (struct sensor_private_data *)i2c_get_clientdata(this_client); in compass_dev_ioctl() local
475 mutex_lock(&sensor->operation_mutex); in compass_dev_ioctl()
477 mutex_unlock(&sensor->operation_mutex); in compass_dev_ioctl()
482 mutex_unlock(&sensor->operation_mutex); in compass_dev_ioctl()
486 mutex_unlock(&sensor->operation_mutex); in compass_dev_ioctl()
490 mutex_lock(&sensor->operation_mutex); in compass_dev_ioctl()
492 mutex_unlock(&sensor->operation_mutex); in compass_dev_ioctl()
498 mutex_unlock(&sensor->operation_mutex); in compass_dev_ioctl()
502 mutex_unlock(&sensor->operation_mutex); in compass_dev_ioctl()
506 mutex_lock(&sensor->operation_mutex); in compass_dev_ioctl()
507 if(sensor->ops->ctrl_data != mode) in compass_dev_ioctl()
512 mutex_unlock(&sensor->operation_mutex); in compass_dev_ioctl()
516 sensor->ops->ctrl_data = mode; in compass_dev_ioctl()
518 mutex_unlock(&sensor->operation_mutex); in compass_dev_ioctl()
522 mutex_lock(&sensor->data_mutex); in compass_dev_ioctl()
523 memcpy(compass_data, sensor->sensor_data, SENSOR_DATA_SIZE); //get data from buffer in compass_dev_ioctl()
524 mutex_unlock(&sensor->data_mutex); in compass_dev_ioctl()
528 mutex_lock(&sensor->data_mutex); in compass_dev_ioctl()
530 mutex_unlock(&sensor->data_mutex); in compass_dev_ioctl()
541 delay = sensor->flags.delay; in compass_dev_ioctl()
614 /****************operate according to sensor chip:end************/