Commit 53995412 authored by Samu Onkalo's avatar Samu Onkalo Committed by Linus Torvalds

lis3lv02d: remove calibaration functionality

Chip is calibrated by the manufacturer.  There is no need to calibarate it
at driver level.  If the chip is used as a joystick, calibaration can be
done using joystick device calibration mechanism.
Signed-off-by: default avatarSamu Onkalo <samu.p.onkalo@nokia.com>
Acked-by: default avatarÉric Piel <Eric.Piel@tremplin-utc.net>
Cc: Pavel Machek <pavel@ucw.cz>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 2db4a76d
...@@ -350,19 +350,12 @@ static void lis3lv02d_joystick_poll(struct input_polled_dev *pidev) ...@@ -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_X, x);
input_report_abs(pidev->input, ABS_Y, y - lis3_dev.ycalib); input_report_abs(pidev->input, ABS_Y, y);
input_report_abs(pidev->input, ABS_Z, z - lis3_dev.zcalib); 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) ...@@ -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, ...@@ -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, ...@@ -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
}; };
......
...@@ -216,9 +216,6 @@ struct lis3lv02d { ...@@ -216,9 +216,6 @@ struct lis3lv02d {
struct input_polled_dev *idev; /* input device */ struct input_polled_dev *idev; /* input device */
struct platform_device *pdev; /* platform device */ struct platform_device *pdev; /* platform device */
atomic_t count; /* interrupt count after last read */ atomic_t count; /* interrupt count after last read */
int xcalib; /* calibrated null value for x */
int ycalib; /* calibrated null value for y */
int zcalib; /* calibrated null value for z */
struct axis_conversion ac; /* hw -> logical axis */ struct axis_conversion ac; /* hw -> logical axis */
u32 irq; /* IRQ number */ u32 irq; /* IRQ number */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment