Re: LIS331DLH accelerometer driver, IIO or not?

From: Greg Kroah-Hartman
Date: Fri May 25 2012 - 01:10:58 EST


On Thu, May 24, 2012 at 09:29:53PM -0700, Darren Hart wrote:
> I'm working to enable the LIS331DLH accelerometer on the Fish River
> Island II embedded atom development kit.
>
> http://www.st.com/internet/analog/product/218132.jsp
>
> http://us.kontron.com/products/systems+and+platforms/m2m/m2m+smart+services+developer+kit.html
>
> This device is attached to an i2c bus implemented in a CPLD (complex
> programmable logic device) integrated on the compute module. I found an
> IIO driver for the device written for 2.6.34. I've rewritten most of the
> driver to work with the 3.2 kernel's IIO subsystem (and had planned to
> next port it all the way to git HEAD and push it upstream).
>
> However, I've since stumbled across a couple of things which cloud the
> issue for me.
>
> First, Carmine Iascone submitted a driver (driver/misc, not iio) for the
> LIS331DLH back in Nov 2010.
>
> http://lkml.org/lkml/2010/11/9/369
>
> It was suggested that this driver be merged with the existing lis3lv02d
> driver which listed support for a similar chip in the header, LIS331DL,
> but it also lists LIS331DLF as not supported. The current git HEAD still
> does not list LIS331DLH, and there is not a compatible register map in
> the header.
>
> Second, I came across the following TI document for porting the
> LIS331DLH driver for Android:
>
> http://processors.wiki.ti.com/index.php/TI-Android-GingerBread-2.3.4-DevKit-2.1_PortingGuides
>
> This references a lis331dlh.c driver which I do not find in Linus' git
> repository nor in linux-next.
>
> So there are 3 ways I can go about this, and I'd appreciate any
> direction on which would be the most acceptable for merging upstream.
>
> 1) Continue with my IIO version. This subsystem seems well suited to the
> accelerometer. The iio_chan_spec simplifies the task of exposing the
> event capabilities of the device, which the drivers/misc/lis3lv02d
> driver mostly glosses over. It only supports events on free-fall for
> example, while with IIO it is straight forward to enable interrupts for
> rising and/or falling thresholds for each axis independently.
>
> 2) Attempt to merge Carmine's drivers/misc/lis331dlh driver with the
> existing lis3lv02d driver as suggested in the thread mentioned above.
> This driver isn't as fully functional.
>
> 3) Try and dig up the lis331dlh driver referenced in the TI document and
> work to get that upstream. Like option 2, this driver is not likely to
> be as configurable as the IIO driver.
>
> I am more interested in enabling people to do bizarre and interesting
> things with the device, so I'm leaning toward continuing with my IIO
> implementation.

Make it an IIO driver and then we can delete the misc driver, which
shouldn't have snuck in there in the first place :)

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/