Re: KX132/134-1211

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Mehdi,

On 12/22/22 16:06, Mehdi Djait wrote:
Hello Matti,

First of all I apologize for bothering you out of the blue and I hope it is not a bad time to send you an email with a couple of questions.

No problem. But I suggest you CC the IIO mail list when sending this kind of questions. It may be the messages where the list is not in CC are regarded as spam by my mail filters... Besides, others with more insight to IIO may be able to further help you when the list is CC'd ;)

My name is Mehdi Djait, I am a student living in Germany currently, REALLY interested in linux kernel development and still trying to find something to contribute to the kernel. The IIO subsystem seems like a good place to start for a kernel Newbie and am currently investing my time in learning the subsystem (reading driver implementations, the IIO-core, lurking in the mailing list ...) I have been looking lately everywhere for sensors without a kernel driver and I stumbled upon the KX132/134-1211 accelerometers and that's why I decided to send you an email with these questions:

Oh, thanks for contacting me :) So, you have the sensor hardware at your hands? I think this is mandatory when writing a driver.

- Am I correct in assuming that the accelerometer does not have a kernel driver ? I looked in the RohmSemiconductor Linux-Kernel-Input-Drivers and Linux-Kernel-Sensor-Drivers GitHub repos and grepped inside the iio, staging and linux-next trees

Yes and no :) There is a kernel driver which supports many of the kx* accelerometers in the ROHM downstream Linux-Kernel-Input-Drivers, and I believe it also supports the KX132/KX134. Yet, as the name suggests - these drivers are not exposing the accelerometer using IIO but the INPUT subsystem. Reason is that quite a few device manufacturers still use the accelerometers via HAL written on top of the INPUT. Heikki Haikola (in CC) has authored many of these drivers. The INPUT is not the preferred subsystem for acceleromerers though - so you're correct when planning to write an IIO driver for upstream.

- Is anyone working on a driver now ? If not, I am really interested in trying to write one for some basic functionality. I am fully __AWARE__ how difficult the task is (I did read your LinkedIn posts) but I am truly motivated and I will use every example I can find as reference: the drivers under iio/accel, the GitHub repos from RohmSemiconductor and your KX02AA driver that recently landed in linux-next (Congrats :) )

Upstream support for (ROHM or any other) ICs is very welcome. It enables more and more people to benefit from the ICs. Companies can rarely support small customers and open source drivers make it possible for the people to work without this support :) This work has been on my TODO list since I added KX022A driver - but it has had low priority and I seem to always have some other tasks. So, Your work on these ICs is more than welcome!

I’m eager to receive your feedback! (and sorry for the long text)

It was not too long :)

If you wish to proceed with the driver, then I would have couple of suggestions to you. As far as I remember the KX132 is not really _that_ different from the KX022A. Sure the resolution is different as may be the G-ranges. But the logic of the register interface is largely same. I suggest you to study the possibility of extending the KX022A driver to support the other variants. I would differentiate the IC types based on device-tree and fill in the register offsets/required quirks in the driver private data.

The other suggestion from me is that you could check the IC's logic from the Linux-Kernel-Input-Drivers. I think there were some minor differencies in the behaviour for example when the BUFE or PC1 bits are toggled.

Feel free to ask us if you hit to problems with the work, but please note that most of us in Finland are having a holiday season right now - so many of us will be offline until January.

Yours,
	-- Matti

Kind regards
Mehdi Djait

--
Matti Vaittinen
Linux kernel developer at ROHM Semiconductors
Oulu Finland

~~ When things go utterly wrong vim users can always type :help! ~~





[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux