diff options
author | Simon Shields <keepcalm444@gmail.com> | 2016-03-03 19:44:58 +1100 |
---|---|---|
committer | Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> | 2016-03-18 01:51:05 +0100 |
commit | 6d0a82cfcb5f62bdf40cedeba519b9aeb5fc70c4 (patch) | |
tree | 3e707a2101cabde401b432e2a1fe92754ab5d0bb | |
parent | dedc1eefd0eff49c445853d94fda90d9dd130138 (diff) | |
download | kernel_samsung_smdk4412-6d0a82cfcb5f62bdf40cedeba519b9aeb5fc70c4.zip kernel_samsung_smdk4412-6d0a82cfcb5f62bdf40cedeba519b9aeb5fc70c4.tar.gz kernel_samsung_smdk4412-6d0a82cfcb5f62bdf40cedeba519b9aeb5fc70c4.tar.bz2 |
sensor: lsm330dlc: allow exposing in /dev/input
don't make /dev/accelerometer mutually exclusive with /dev/input, though
Change-Id: I576bb751bb1c590af97b1c60b6a1ca94a9539b81
-rw-r--r-- | drivers/sensor/Kconfig | 10 | ||||
-rw-r--r-- | drivers/sensor/lsm330dlc_accel.c | 15 |
2 files changed, 18 insertions, 7 deletions
diff --git a/drivers/sensor/Kconfig b/drivers/sensor/Kconfig index 36464eb..fddd251 100644 --- a/drivers/sensor/Kconfig +++ b/drivers/sensor/Kconfig @@ -155,6 +155,16 @@ config SENSORS_LSM330DLC help Driver for STMicro LSM330DLC +config SENSORS_LSM330DLC_USE_INPUT_DEV + depends on SENSORS_LSM330DLC + bool "LSM330DLC - expose device in /dev/input" + default n + help + Samsung blob sensor HALs expect LSM330DLC to be exposed via /dev/accelerometer + Writing a custom sensor HAL is probably easier if the accelerometer is exposed + in the same place as the rest of the sensors. Note that enabling this will not + disable /dev/accelerometer + config SENSORS_LPS331 tristate "STMicro LPS331 driver" default n diff --git a/drivers/sensor/lsm330dlc_accel.c b/drivers/sensor/lsm330dlc_accel.c index 430ef85..f25a883 100644 --- a/drivers/sensor/lsm330dlc_accel.c +++ b/drivers/sensor/lsm330dlc_accel.c @@ -42,7 +42,11 @@ #undef DEBUG_ODR #undef DEBUG_REACTIVE_ALERT /* It will be used, when google fusion is enabled. */ +#ifdef CONFIG_SENSORS_LSM330DLC_USE_INPUT_DEV +#define USES_INPUT_DEV 1 +#else #undef USES_INPUT_DEV +#endif #define VENDOR "STM" #define CHIP_ID "LSM330" @@ -1130,7 +1134,7 @@ probe_retry: pr_err("%s: could not create sysfs group\n", __func__); goto err_create_sysfs; } -#else +#endif /* sensor HAL expects to find /dev/accelerometer */ data->lsm330dlc_accel_device.minor = MISC_DYNAMIC_MINOR; data->lsm330dlc_accel_device.name = ACC_DEV_NAME; @@ -1141,7 +1145,6 @@ probe_retry: pr_err("%s: misc_register failed\n", __FILE__); goto err_misc_register; } -#endif #ifdef USES_MOVEMENT_RECOGNITION data->movement_recog_flag = OFF; @@ -1315,11 +1318,10 @@ err_create_sysfs: input_unregister_device(data->input_dev); err_input_allocate: destroy_workqueue(data->work_queue); -err_create_workqueue: -#else +#endif misc_deregister(&data->lsm330dlc_accel_device); err_misc_register: -#endif +err_create_workqueue: mutex_destroy(&data->read_lock); mutex_destroy(&data->write_lock); err_read_reg: @@ -1373,9 +1375,8 @@ static int lsm330dlc_accel_remove(struct i2c_client *client) sysfs_remove_group(&data->input_dev->dev.kobj, &lsm330dlc_attribute_group); input_unregister_device(data->input_dev); -#else - misc_deregister(&data->lsm330dlc_accel_device); #endif + misc_deregister(&data->lsm330dlc_accel_device); mutex_destroy(&data->read_lock); mutex_destroy(&data->write_lock); kfree(data); |