Arnd Bergmann <arnd@xxxxxxxx> wrote: >On Wednesday 18 January 2012, Andi wrote: >> What do you mean with "kernel-wide policy for accelerometer drivers"? >> As far as I know, accelerometer drivers are written between the i2c >driver and the >> input driver. >> The input driver provides already some accelerometer specific event >types, ABS_X, ABS_Y, ABS_Z, >> in your opinion isn't it enough? >> If you mean something like collecting common properties like g range >or frequency or whatever in a >> standard interface, then I think that accelerometers are quite >different as devices and sometimes >> it could be difficult to arrange a common interface. > >The problem is that we have some drivers using the input subsystem, >some >drivers using the iio subsystem and some drivers using none of these >but >interfacing with user space using some homegrown method, see my list: > >> > $ git grep -l accelerometer drivers/ | manual_grep >> > drivers/hwmon/applesmc.c >> > (one hwmon sysfs attribute for x/y/z) >> > drivers/input/misc/adxl34x.c >> > (lots of sysfs attributes, input_report_key) >> > drivers/input/misc/cma3000_d0x.c >> > (input_report_abs) >> > drivers/input/misc/kxtj9.c >> > (input_report_abs, plus one aux sysfs attribute) >> > drivers/macintosh/ams/ams-core.c >> > (one sysfs attribute for x/y/z) >> > drivers/misc/lis3lv02d/ >> > (multiple sysfs attributes) >> > drivers/platform/x86/hdaps.c >> > (multiple sysfs attributes, only x/y) >> > drivers/platform/x86/hp_accel.c >> > (hooks into drivers/misc/lis3lv02d/) >> > drivers/staging/iio/accel/kxsd9.c >> > (iio) >> > drivers/staging/iio/accel/sca3000_core.c >> > (iio plus extra attributes) > >If all drivers were using the input subsystem in the way you describe, >that would be a good solution, but right now the majority of the >drivers don't do this. Also worth noting that there are numerous devices that are completely inappropriate for human input. Take specialised impact and vibration accelerometers. Very high speed sampling for short time periods. I agree that your bog standard 3 axis sub 10 g accelerometer belongs in input. The kxsd9 and lis3lo2dq in iio are there for historical reasons and because they are very handy for testing our bridging to input. That said it should ultimately make very little difference to user space if they are accessing a true input device or a iio device via an input bridge. I also think that actually there is very little in the way of unusual controls for accelerometers particularly those designed for human input. Not standardizing gain or sampling frequency control is lazy. Even filtering and fft controls can and should be standardised. Doing that is a large part of what iio is about. > > Arnd -- Sent from my Android phone with K-9 Mail. Please excuse my brevity. -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html