|
@@ -71,8 +71,10 @@
|
|
#define LIS3_SENSITIVITY_12B ((LIS3_ACCURACY * 1000) / 1024)
|
|
#define LIS3_SENSITIVITY_12B ((LIS3_ACCURACY * 1000) / 1024)
|
|
#define LIS3_SENSITIVITY_8B (18 * LIS3_ACCURACY)
|
|
#define LIS3_SENSITIVITY_8B (18 * LIS3_ACCURACY)
|
|
|
|
|
|
-#define LIS3_DEFAULT_FUZZ 3
|
|
|
|
-#define LIS3_DEFAULT_FLAT 3
|
|
|
|
|
|
+#define LIS3_DEFAULT_FUZZ_12B 3
|
|
|
|
+#define LIS3_DEFAULT_FLAT_12B 3
|
|
|
|
+#define LIS3_DEFAULT_FUZZ_8B 1
|
|
|
|
+#define LIS3_DEFAULT_FLAT_8B 1
|
|
|
|
|
|
struct lis3lv02d lis3_dev = {
|
|
struct lis3lv02d lis3_dev = {
|
|
.misc_wait = __WAIT_QUEUE_HEAD_INITIALIZER(lis3_dev.misc_wait),
|
|
.misc_wait = __WAIT_QUEUE_HEAD_INITIALIZER(lis3_dev.misc_wait),
|
|
@@ -564,8 +566,16 @@ int lis3lv02d_joystick_enable(void)
|
|
|
|
|
|
set_bit(EV_ABS, input_dev->evbit);
|
|
set_bit(EV_ABS, input_dev->evbit);
|
|
max_val = (lis3_dev.mdps_max_val * lis3_dev.scale) / LIS3_ACCURACY;
|
|
max_val = (lis3_dev.mdps_max_val * lis3_dev.scale) / LIS3_ACCURACY;
|
|
- fuzz = (LIS3_DEFAULT_FUZZ * lis3_dev.scale) / LIS3_ACCURACY;
|
|
|
|
- flat = (LIS3_DEFAULT_FLAT * lis3_dev.scale) / LIS3_ACCURACY;
|
|
|
|
|
|
+ if (lis3_dev.whoami == WAI_12B) {
|
|
|
|
+ fuzz = LIS3_DEFAULT_FUZZ_12B;
|
|
|
|
+ flat = LIS3_DEFAULT_FLAT_12B;
|
|
|
|
+ } else {
|
|
|
|
+ fuzz = LIS3_DEFAULT_FUZZ_8B;
|
|
|
|
+ flat = LIS3_DEFAULT_FLAT_8B;
|
|
|
|
+ }
|
|
|
|
+ fuzz = (fuzz * lis3_dev.scale) / LIS3_ACCURACY;
|
|
|
|
+ flat = (flat * lis3_dev.scale) / LIS3_ACCURACY;
|
|
|
|
+
|
|
input_set_abs_params(input_dev, ABS_X, -max_val, max_val, fuzz, flat);
|
|
input_set_abs_params(input_dev, ABS_X, -max_val, max_val, fuzz, flat);
|
|
input_set_abs_params(input_dev, ABS_Y, -max_val, max_val, fuzz, flat);
|
|
input_set_abs_params(input_dev, ABS_Y, -max_val, max_val, fuzz, flat);
|
|
input_set_abs_params(input_dev, ABS_Z, -max_val, max_val, fuzz, flat);
|
|
input_set_abs_params(input_dev, ABS_Z, -max_val, max_val, fuzz, flat);
|