|
@@ -350,19 +350,12 @@ static void lis3lv02d_joystick_poll(struct input_polled_dev *pidev)
|
|
int x, y, z;
|
|
int x, y, z;
|
|
|
|
|
|
lis3lv02d_get_xyz(&lis3_dev, &x, &y, &z);
|
|
lis3lv02d_get_xyz(&lis3_dev, &x, &y, &z);
|
|
- input_report_abs(pidev->input, ABS_X, x - lis3_dev.xcalib);
|
|
|
|
- input_report_abs(pidev->input, ABS_Y, y - lis3_dev.ycalib);
|
|
|
|
- input_report_abs(pidev->input, ABS_Z, z - lis3_dev.zcalib);
|
|
|
|
|
|
+ input_report_abs(pidev->input, ABS_X, x);
|
|
|
|
+ input_report_abs(pidev->input, ABS_Y, y);
|
|
|
|
+ input_report_abs(pidev->input, ABS_Z, z);
|
|
input_sync(pidev->input);
|
|
input_sync(pidev->input);
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
-static inline void lis3lv02d_calibrate_joystick(void)
|
|
|
|
-{
|
|
|
|
- lis3lv02d_get_xyz(&lis3_dev,
|
|
|
|
- &lis3_dev.xcalib, &lis3_dev.ycalib, &lis3_dev.zcalib);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
int lis3lv02d_joystick_enable(void)
|
|
int lis3lv02d_joystick_enable(void)
|
|
{
|
|
{
|
|
struct input_dev *input_dev;
|
|
struct input_dev *input_dev;
|
|
@@ -379,8 +372,6 @@ int lis3lv02d_joystick_enable(void)
|
|
lis3_dev.idev->poll_interval = MDPS_POLL_INTERVAL;
|
|
lis3_dev.idev->poll_interval = MDPS_POLL_INTERVAL;
|
|
input_dev = lis3_dev.idev->input;
|
|
input_dev = lis3_dev.idev->input;
|
|
|
|
|
|
- lis3lv02d_calibrate_joystick();
|
|
|
|
-
|
|
|
|
input_dev->name = "ST LIS3LV02DL Accelerometer";
|
|
input_dev->name = "ST LIS3LV02DL Accelerometer";
|
|
input_dev->phys = DRIVER_NAME "/input0";
|
|
input_dev->phys = DRIVER_NAME "/input0";
|
|
input_dev->id.bustype = BUS_HOST;
|
|
input_dev->id.bustype = BUS_HOST;
|
|
@@ -436,20 +427,6 @@ static ssize_t lis3lv02d_position_show(struct device *dev,
|
|
return sprintf(buf, "(%d,%d,%d)\n", x, y, z);
|
|
return sprintf(buf, "(%d,%d,%d)\n", x, y, z);
|
|
}
|
|
}
|
|
|
|
|
|
-static ssize_t lis3lv02d_calibrate_show(struct device *dev,
|
|
|
|
- struct device_attribute *attr, char *buf)
|
|
|
|
-{
|
|
|
|
- return sprintf(buf, "(%d,%d,%d)\n", lis3_dev.xcalib, lis3_dev.ycalib, lis3_dev.zcalib);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-static ssize_t lis3lv02d_calibrate_store(struct device *dev,
|
|
|
|
- struct device_attribute *attr,
|
|
|
|
- const char *buf, size_t count)
|
|
|
|
-{
|
|
|
|
- lis3lv02d_calibrate_joystick();
|
|
|
|
- return count;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static ssize_t lis3lv02d_rate_show(struct device *dev,
|
|
static ssize_t lis3lv02d_rate_show(struct device *dev,
|
|
struct device_attribute *attr, char *buf)
|
|
struct device_attribute *attr, char *buf)
|
|
{
|
|
{
|
|
@@ -458,14 +435,11 @@ static ssize_t lis3lv02d_rate_show(struct device *dev,
|
|
|
|
|
|
static DEVICE_ATTR(selftest, S_IRUSR, lis3lv02d_selftest_show, NULL);
|
|
static DEVICE_ATTR(selftest, S_IRUSR, lis3lv02d_selftest_show, NULL);
|
|
static DEVICE_ATTR(position, S_IRUGO, lis3lv02d_position_show, NULL);
|
|
static DEVICE_ATTR(position, S_IRUGO, lis3lv02d_position_show, NULL);
|
|
-static DEVICE_ATTR(calibrate, S_IRUGO|S_IWUSR, lis3lv02d_calibrate_show,
|
|
|
|
- lis3lv02d_calibrate_store);
|
|
|
|
static DEVICE_ATTR(rate, S_IRUGO, lis3lv02d_rate_show, NULL);
|
|
static DEVICE_ATTR(rate, S_IRUGO, lis3lv02d_rate_show, NULL);
|
|
|
|
|
|
static struct attribute *lis3lv02d_attributes[] = {
|
|
static struct attribute *lis3lv02d_attributes[] = {
|
|
&dev_attr_selftest.attr,
|
|
&dev_attr_selftest.attr,
|
|
&dev_attr_position.attr,
|
|
&dev_attr_position.attr,
|
|
- &dev_attr_calibrate.attr,
|
|
|
|
&dev_attr_rate.attr,
|
|
&dev_attr_rate.attr,
|
|
NULL
|
|
NULL
|
|
};
|
|
};
|