Exemple #1
0
static ssize_t
proximity_data_show(struct device *dev,
        struct device_attribute *attr,
        char *buf)
{
    struct input_dev *input_data = to_input_dev(dev);
	struct gp2a_data *data = input_get_drvdata(input_data);
    int x;

	mutex_lock(&data->data_mutex);
	x = data->prox_data;
	mutex_unlock(&data->data_mutex);
	
    return sprintf(buf, "%d\n", x);
}
Exemple #2
0
static ssize_t bma250_value_show(struct device *dev,
		struct device_attribute *attr, char *buf)
{
	struct input_dev *input = to_input_dev(dev);
	struct bma250_data *bma250 = input_get_drvdata(input);
	struct bma250acc acc_value;

	mutex_lock(&bma250->value_mutex);
	acc_value = bma250->value;
	mutex_unlock(&bma250->value_mutex);

	bma_dbg("x=%d, y=%d, z=%d ,%s\n", acc_value.x, acc_value.y, acc_value.z, __FUNCTION__);
	return sprintf(buf, "%d %d %d\n", acc_value.x, acc_value.y,
			acc_value.z);
}
Exemple #3
0
static ssize_t yas_acc_offset_store(struct device *dev,
                                    struct device_attribute *attr,
                                    const char *buf,
                                    size_t count)
{
    struct input_dev *input = to_input_dev(dev);
    struct yas_acc_private_data *data = input_get_drvdata(input);
    struct yas_vector offset;

    sscanf(buf, "%d %d %d", &offset.v[0], &offset.v[1], &offset.v[2]);

    yas_acc_set_offset(data->driver, &offset);

    return count;
}
static ssize_t mpu6050_input_gyro_self_test_show(struct device *dev,
					struct device_attribute *attr,
						char *buf)
{
	struct input_dev *input_data = to_input_dev(dev);
	struct mpu6050_input_data *data = input_get_drvdata(input_data);
	int scaled_gyro_bias[3] = {0};
	int scaled_gyro_rms[3] = {0};
	int packet_count[3] = {0};
	int result;

	mutex_lock(&data->mutex);

	result = mpu6050_selftest_run(data->client,
					packet_count,
					scaled_gyro_bias,
					scaled_gyro_rms,
					data->gyro_bias);
	if (!result) {
		gyro_do_calibrate();
	} else {
		data->gyro_bias[0] = 0;
		data->gyro_bias[1] = 0;
		data->gyro_bias[2] = 0;
		result = -1;
	}

	mutex_unlock(&data->mutex);

	return sprintf(buf, "%d "
		"%d %d %d "
		"%d.%03d %d.%03d %d.%03d "
		"%d.%03d %d.%03d %d.%03d\n",
		result,
		packet_count[0], packet_count[1], packet_count[2],
		(int)abs(scaled_gyro_bias[0]/1000),
		(int)abs(scaled_gyro_bias[0])%1000,
		(int)abs(scaled_gyro_bias[1]/1000),
		(int)abs(scaled_gyro_bias[1])%1000,
		(int)abs(scaled_gyro_bias[2]/1000),
		(int)abs(scaled_gyro_bias[2])%1000,
		scaled_gyro_rms[0]/1000,
		(int)abs(scaled_gyro_rms[0])%1000,
		scaled_gyro_rms[1]/1000,
		(int)abs(scaled_gyro_rms[1])%1000,
		scaled_gyro_rms[2]/1000,
		(int)abs(scaled_gyro_rms[2])%1000);
}
/* Px data */
static ssize_t px3215_show_adc(struct device *dev,
				 struct device_attribute *attr, char *buf)
{
	struct input_dev *input = to_input_dev(dev);
	struct px3215_data *data = input_get_drvdata(input);
	static int count;		/*count for proximity average */
	int adc = 0;
	/* No Px data if power down */
	if (px3215_get_mode(data->client) == 0x00)
		return -EBUSY;
	adc = px3215_get_px_value(data->client);
	data->average[count] = adc;
	if (count == PROX_READ_NUM)
			count = 0;
	return sprintf(buf, "%d\n", adc);
}
Exemple #6
0
static ssize_t ap3426_store_range(struct device *dev,
	struct device_attribute *attr,
	const char *buf, size_t count)
{
    struct input_dev *input = to_input_dev(dev);
    struct ap3426_data *data = input_get_drvdata(input);
    unsigned long val;
    int ret;

    if ((strict_strtoul(buf, 10, &val) < 0) || (val > 3))
	return -EINVAL;

    ret = ap3426_set_range(data->client, val);

    return (ret < 0)? ret:count;
}
static ssize_t
geomagnetic_data_show(struct device *dev,
        struct device_attribute *attr,
        char *buf)
{
    struct input_dev *input_data = to_input_dev(dev);
    struct geomagnetic_data *data = input_get_drvdata(input_data);
    int rt;

    rt = sprintf(buf, "%d %d %d\n",
            atomic_read(&data->last_data[0]),
            atomic_read(&data->last_data[1]),
            atomic_read(&data->last_data[2]));

    return rt;
}
Exemple #8
0
static ssize_t
orientation_status_show(struct device *dev,
				struct device_attribute *attr, char *buf)
{
	struct input_dev *input_data = to_input_dev(dev);
	unsigned long flags;
	int status;

	spin_lock_irqsave(&input_data->event_lock, flags);

	status = input_abs_get_val(input_data, REL_STATUS);

	spin_unlock_irqrestore(&input_data->event_lock, flags);

	return sprintf(buf, "%d\n", status);
}
static ssize_t
orientation_enable_show(struct device *dev,
		   struct device_attribute *attr, char *buf)
{
	struct input_dev *input_data = to_input_dev(dev);
	struct orientation_data *data = input_get_drvdata(input_data);
	int enabled;

	mutex_lock(&data->mutex);

	enabled = data->enabled;

	mutex_unlock(&data->mutex);

	return sprintf(buf, "%d\n", enabled);
}
Exemple #10
0
static ssize_t
light_data_show(struct device *dev,
        struct device_attribute *attr,
        char *buf)
{
	struct input_dev *input_data = to_input_dev(dev);
	struct sensor_data *data = input_get_drvdata(input_data);
	//unsigned long flags;
	int light_lux;

	mutex_lock(&data->mutex);
	light_lux = StateToLux(data->light_data);
	mutex_unlock(&data->mutex);	

	return sprintf(buf, "%d\n", light_lux);
}
static ssize_t
geomagnetic_filter_len_show(struct device *dev,
        struct device_attribute *attr,
        char *buf)
{
    struct input_dev *input_data = to_input_dev(dev);
    struct geomagnetic_data *data = input_get_drvdata(input_data);
    int filter_len;

    geomagnetic_multi_lock();

    filter_len = data->filter_len;

    geomagnetic_multi_unlock();

    return sprintf(buf, "%d\n", filter_len);
}
/* Sysfs interface */
static ssize_t
geomagnetic_delay_show(struct device *dev,
        struct device_attribute *attr,
        char *buf)
{
    struct input_dev *input_data = to_input_dev(dev);
    struct geomagnetic_data *data = input_get_drvdata(input_data);
    int delay;

    geomagnetic_multi_lock();

    delay = data->delay;

    geomagnetic_multi_unlock();

    return sprintf(buf, "%d\n", delay);
}
static ssize_t al3320_store_mode(struct device *dev,
        struct device_attribute *attr, const char *buf, size_t count)
{
    struct input_dev *input = to_input_dev(dev);
    struct al3320_data *data = input_get_drvdata(input);
    unsigned long val;
    int ret;

    if ((strict_strtoul(buf, 10, &val) < 0) || (val > 4))
        return -EINVAL;

    ret = al3320_set_mode(data->client, val);

    if (ret < 0)
        return ret;
    return count;
}
static ssize_t
geomagnetic_raw_shape_show(struct device *dev,
        struct device_attribute *attr,
        char *buf)
{
    struct input_dev *input_raw = to_input_dev(dev);
    struct geomagnetic_data *data = input_get_drvdata(input_raw);
    int shape;

    geomagnetic_multi_lock();

    shape = data->shape;

    geomagnetic_multi_unlock();

    return sprintf(buf, "%d\n", shape);
}
static ssize_t 
geomagnetic_raw_manual_offsets_show(struct device *dev,
        struct device_attribute *attr,
        char *buf)
{
    struct input_dev *input_raw = to_input_dev(dev);
    struct geomagnetic_data *data = input_get_drvdata(input_raw);
    struct yas_vector offset;

    geomagnetic_multi_lock();

    offset = data->manual_offset;

    geomagnetic_multi_unlock();

    return sprintf(buf, "%d %d %d\n", offset.v[0], offset.v[1], offset.v[2]);
}
static ssize_t
sensor_status_show(struct device *dev,
        struct device_attribute *attr,
        char *buf)
{
    struct input_dev *input_data = to_input_dev(dev);
    unsigned long flags;
    int status;

    spin_lock_irqsave(&input_data->event_lock, flags);

    status = input_data->absinfo[ABS_STATUS].value;

    spin_unlock_irqrestore(&input_data->event_lock, flags);

    return sprintf(buf, "%d\n", status);
}
static ssize_t px3215_store_phthres(struct device *dev,
		struct device_attribute *attr, const char *buf, size_t count)
{
	struct input_dev *input = to_input_dev(dev);
	struct px3215_data *data = input_get_drvdata(input);
	unsigned long val;
	int ret;

	if (strict_strtoul(buf, 10, &val) < 0)
		return -EINVAL;

	ret = px3215_set_phthres(data->client, val);
	if (ret < 0)
		return ret;

	return count;
}
static ssize_t
geomagnetic_raw_threshold_show(struct device *dev,
        struct device_attribute *attr,
        char *buf)
{
    struct input_dev *input_raw = to_input_dev(dev);
    struct geomagnetic_data *data = input_get_drvdata(input_raw);
    int threshold;

    geomagnetic_multi_lock();

    threshold = data->threshold;

    geomagnetic_multi_unlock();

    return sprintf(buf, "%d\n", threshold);
}
/* Sysfs interface */
static ssize_t
sensor_delay_show(struct device *dev,
        struct device_attribute *attr,
        char *buf)
{
    struct input_dev *input_data = to_input_dev(dev);
    struct sensor_data *data = input_get_drvdata(input_data);
    int delay;

    mutex_lock(&data->mutex);

    delay = data->delay;

    mutex_unlock(&data->mutex);

    return sprintf(buf, "%d\n", delay);
}
Exemple #20
0
static ssize_t
orientation_data_show(struct device *dev,
			struct device_attribute *attr, char *buf)
{
	struct input_dev *input_data = to_input_dev(dev);
	unsigned long flags;
	int x, y, z;

	spin_lock_irqsave(&input_data->event_lock, flags);

	x = input_abs_get_val(input_data, REL_X);
	y = input_abs_get_val(input_data, REL_Y);
	z = input_abs_get_val(input_data, REL_Z);

	spin_unlock_irqrestore(&input_data->event_lock, flags);

	return sprintf(buf, "%d %d %d\n", x, y, z);
}
Exemple #21
0
static ssize_t yas_acc_private_data_show(struct device *dev,
                                         struct device_attribute *attr,
                                         char *buf)
{
    struct input_dev *input = to_input_dev(dev);
    struct yas_acc_private_data *data = input_get_drvdata(input);
    struct yas_acc_data accel;

#ifdef PANTECH_AVOID_DEADLOCK
    accel = data->last;
#else
    mutex_lock(&data->data_mutex);
    accel = data->last;
    mutex_unlock(&data->data_mutex);
#endif

    return sprintf(buf, "%d %d %d\n", accel.xyz.v[0], accel.xyz.v[1], accel.xyz.v[2]);
}
static ssize_t yas_acc_debug_suspend_store(struct device *dev,
                                           struct device_attribute *attr,
                                           const char *buf, size_t count)
{
    struct input_dev *input = to_input_dev(dev);
    struct yas_acc_private_data *data = input_get_drvdata(input);
    struct i2c_client *client = data->client;
    unsigned long suspend = simple_strtoul(buf, NULL, 10);

    if (suspend) {
        pm_message_t msg;
        yas_acc_suspend(client, msg);
    } else {
        yas_acc_resume(client);
    }

    return count;
}
Exemple #23
0
static ssize_t
sensor_report_store(struct device *dev,
        struct device_attribute *attr,
        const char *buf,
        size_t count)
{
    struct input_dev *input_data = to_input_dev(dev);
    int32_t	data_x, data_y, data_z, data_rudder, data_accuracy;

    sscanf(buf, "%d %d %d %d %d",
            &data_x,
            &data_y,
            &data_z,
            &data_rudder,
            &data_accuracy);

#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36)
    if( (input_data->abs[ABS_X] != data_x) ||
        (input_data->abs[ABS_Y] != data_y) ||
        (input_data->abs[ABS_Z] != data_z) )
    {
        /*  Orientation Accuracy Init */
        input_data->abs[ABS_STATUS] = 99;
    }
#else
    if( (input_abs_get_val(input_data, ABS_X) != data_x) ||
        (input_abs_get_val(input_data, ABS_Y) != data_y) ||
        (input_abs_get_val(input_data, ABS_Z) != data_z) )
    {
        /*  Orientation Accuracy Init */
        input_abs_set_val(input_data, ABS_STATUS, 99);
    }
#endif

    /* report data */
    input_report_abs(input_data, ABS_X, data_x);
    input_report_abs(input_data, ABS_Y, data_y);
    input_report_abs(input_data, ABS_Z, data_z);
//    input_report_abs(input_data, ABS_RUDDER, data_rudder);
    input_report_abs(input_data, ABS_STATUS, data_accuracy);
    input_sync(input_data);

    return count;
}
/* lux */
static ssize_t al3320_show_lux(struct device *dev,
        struct device_attribute *attr, char *buf)
{
    struct input_dev *input = to_input_dev(dev);
    struct al3320_data *data = input_get_drvdata(input);



    /* No LUX data if power down */
    if (al3320_get_mode(data->client) == 0x00){

        wake_lock_timeout(&al3320b_wl, 10*HZ);

        return sprintf((char*) buf, "%s\n", "Please power up first!");
    }


    return sprintf(buf, "%d\n", al3320_get_adc_value(data->client,0));
}
Exemple #25
0
static ssize_t bma255_delay_store(struct device *dev,
		struct device_attribute *attr, const char *buf, size_t size)
{
	int ret;
	int64_t delay;
	struct input_dev *input = to_input_dev(dev);
	struct bma255_p *data = input_get_drvdata(input);
//	struct bma255_p *data = bma_acc_get_data();
	ret = kstrtoll(buf, 10, &delay);
	if (ret) {
		pr_err("[SENSOR]: %s - Invalid Argument\n", __func__);
		return ret;
	}

	atomic_set(&data->delay, (unsigned int)delay);
	pr_info("[SENSOR]: %s - poll_delay = %lld\n", __func__, delay);

	return size;
}
Exemple #26
0
static ssize_t bma023_data_show(struct device *dev,
				struct device_attribute *attr, char *buf)
{
	struct input_dev *input = to_input_dev(dev);
	struct bma023_data *bma023 = input_get_drvdata(input);
	struct acceleration accel;
	int on;

	mutex_lock(&bma023->data_mutex);
	on = bma023_get_enable(dev);
	if (!on)
		bma023_set_enable(dev, 1);
	bma023_measure(bma023, &accel);
	if (!on)
		bma023_set_enable(dev, 0);
	mutex_unlock(&bma023->data_mutex);

	return sprintf(buf, "%d,%d,%d\n", accel.x, accel.y, accel.z);
}
Exemple #27
0
static ssize_t light_testmode_store(struct device *dev,
        struct device_attribute *attr, const char *buf, size_t size)
{
	struct input_dev *input_data = to_input_dev(dev);
	struct sensor_data *data = input_get_drvdata(input_data);
	int value;

	sscanf(buf, "%d", &value);

	if(value == 1) {
		data->testmode = 1;
		gprintk("lightsensor testmode ON.\n");
	} else if(value == 0) {
		data->testmode  = 0;
		gprintk("lightsensor testmode OFF.\n");
	}

	return size;
}
Exemple #28
0
static ssize_t bma255_enable_store(struct device *dev,
		struct device_attribute *attr, const char *buf, size_t size)
{
	u8 enable;
	int ret;
	struct input_dev *input = to_input_dev(dev);
	struct bma255_p *data = input_get_drvdata(input);
	ret = kstrtou8(buf, 2, &enable);
	if (ret) {
		pr_err("[SENSOR]: %s - Invalid Argument\n", __func__);
		return ret;
	}

	pr_info("[SENSOR]: %s - new_value = %u\n", __func__, enable);
	if ((enable == ON) || (enable == OFF))
		bma255_set_enable(data, (int)enable);

	return size;
}
Exemple #29
0
/*
 * sysfs: wake interface (illumi sensor wake(input))
 */
 static ssize_t
sensor_wake_store(struct device *dev,
        struct device_attribute *attr,
        const char *buf,
        size_t count)
{
    struct input_dev *input_data = to_input_dev(dev);
    static int cnt = 1;

	LIGHT_DBG("[LIGHT] sensor_wake_store enter\n");
	if(NULL == input_data) {
		LIGHT_DBG("[LIGHT] sensor_wake_store null error\n");
		return 0;
	}

    input_report_abs(input_data, ABS_WAKE, cnt++);

    return count;
}
Exemple #30
0
static ssize_t yas_acc_enable_store(struct device *dev,
                                    struct device_attribute *attr,
                                    const char *buf,
                                    size_t count)
{
    struct input_dev *input = to_input_dev(dev);
    struct yas_acc_private_data *data = input_get_drvdata(input);
    unsigned long enable = simple_strtoul(buf, NULL, 10);

	dbg_func_in();

	dbg("%s : enable = %d\n", __func__, (int)enable);

    yas_acc_set_enable(data->driver, enable);

	dbg_func_out();

    return count;
}