Re: iio A/D converter input to input event subsystem

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

 



Hi Robert,

On 02/08/2014 at 13:14:30 -0500, gmane@xxxxxxxxxxxxxxxxxxxxxxxxxxx wrote :
> Hi,
> 
> I would like to use a couple of resistors and keys and one Analog
> input[1], read the analogue voltage from a kernel driver, figure out
> which key is pressed and pass this on to the Linux input subsystem.
> (Am I really the only one with this use case?)
> 
> In my specific case it's about a beagle bone black, which means that
> the A/D driver is an iio adc driver[2].
> 
> How would it be possible to reuse the iio A/D converter driver code
> for my driver? Maybe it would even be possible to create something
> more generic so iio A/D converter channels could be used as input
> keys. Some sample code which would enable me to choose an analog
> input and read from it from kernel space would help me to write some
> basic sample driver, I guess.
> 
> The reason I would like to write a device driver instead of a user
> space application is mainly the input subsystem. From the user space
> application's point of view utilizing a device driver which feeds
> the input subsystem would make it easy to exchange what's underneath
> without user space even noticing. (keys to Input pins, a key matrix
> to I/O pins, i2c input, A/D converter,...).
> 

Did you have a look at uinput? This would allow you to inject input
events after processing the ADC values in userspace.

Simple example: http://thiemonge.org/getting-started-with-uinput

-- 
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[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