RE: Driver support for TI's quadrature encoder module

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

 



On Fri, Sep 09, 2011 at 17:57:14, Jonathan Cameron wrote:
> On 09/09/11 13:05, AnilKumar, Chimata wrote:
> > Hi All,
> > 
> > Thanks for quick reply.
> > 
> > On Fri, Sep 09, 2011 at 17:09:09, Jonathan Cameron wrote:
> >> On 09/08/11 17:50, Jonathan Cameron wrote:
> >>> On 09/08/11 15:54, Greg KH wrote:
> >>>> On Thu, Sep 08, 2011 at 06:57:04PM +0530, AnilKumar, Chimata wrote:
> >>>>> Hi All,
> >>>>>
> >>>>> I am developing a driver for TI's enhanced Quadrature Encoder 
> >>>>> Pulse
> >>>>> (eQEP) module. Details of the module at 
> >>>>> http://www.ti.com/lit/ug/sprufu8/sprufu8.pdf
> >>>>>
> >>>>> Little description about the module:-
> >>>>>
> >>>>> This module is used for direct interface with a linear or rotary 
> >>>>> incremental encoder.
> >>>>>
> >>>>> Main features of the module:
> >>>>> a. Provides the direction of the motor (clock or anti-clock) b. 
> >>>>> Provides position count values, which can be used to compute speed
> >>>>>    of a machine (motor/generator)
> >>>>> c. Generate a sync output from position compare sub-module d. Can 
> >>>>> be used for High & Low speed measurements
> >>>>>
> >>>>> This module has 4 inputs from external rotary/linear encoder.
> >>>>> a. Input A (Input from external rotary encoder, a pulse train) b. 
> >>>>> Input B (Input from external rotary encoder, a pulse train) c. 
> >>>>> Index Event (Input from external rotary encoder, a index event.
> >>>>>    This can be used as output, which can be generated after
> >>>>>    position compare)
> >>>>> d. Strobe Event (Input from external rotary encoder, a strobe event.
> >>>>>    This can be used as output, which can be generated after
> >>>>>    position compare)
> >>>>>
> >>>>> The module provides pre-analyzed data based on the above four 
> >>>>> input signals. We can use the data directly for knowing the 
> >>>>> position and direction details.
> >>>>>
> >>>>> I have few questions related to this:-
> >>>>>
> >>>>> 1. What subsystem this driver fit into? Input subsystem or UIO 
> >>>>> subsystem?
> >>>>>
> >>>>> Why I think it may fit into UIO subsystem?
> >>>>> a. Same driver is used for lot of applications like motor control, 
> >>>>> volume control and menu navigation. This means we have to provide 
> >>>>> lot of flexibility to the user in configuring the hardware to work 
> >>>>> for different applications.
> >>>>
> >>>> Does it use the UIO interface to userspace?  If not, then it's not 
> >>>> a UIO driver.
> >>>>
> >>>>> Why I think it may fit into Input subsystem?
> >>>>> a. The module is receiving the signals from external encoder. 
> >>>>> Based on the signals it will generate some events, which we have 
> >>>>> to handle at the user space.
> >>>>> b. I found some encoder drivers are already present under input 
> >>>>> subsystem (example drivers/input/misc/rotary-encoder.c)
> >>>>>
> >>>>> But, the current rotary encoder drivers are developed for much 
> >>>>> simpler hardware.
> >>>>>
> >>>>> It looks like we need some additional interfaces to cater to the 
> >>>>> hardware capabilities. I am thinking of sysfs interfaces which 
> >>>>> allow user to directly configure the hardware for position 
> >>>>> control, position compare, input source selection, capture timer 
> >>>>> period, speed and direction of rotation.
> >>>>
> >>>> That sounds like you want the IIO interface in drivers/staging/iio/ 
> >>>> right?  That api handles all sorts of stuff like this.
> >>> Certainly possible - always happy to support new device types.
> >>>
> >>> We have some resolvers in there already, and based on a hundred mile 
> >>> view this is similar...  From what I recall those interfaces are 
> >>> pretty messy right now, but looking at it another way, that gives us 
> >>> more flexibility to mess around with them to ensure they cover your part as well.
> >> I'll rephrase this having taken a look. The current resolver drivers 
> >> conform to our standard interface in now way whatsoever.  So whatever 
> >> you do, don't copy them!  Along with meters drivers, those are the 
> >> areas we haven't cleaned up at all yet (also a smattering of other 
> >> drivers in terrible state for one reason or another elsewhere)
> > 
> > Jonathan, Thanks for the pointers
> > 
> > I did not know about IIO interface so far.
> > Will study it and come up with some patches for my device based on 
> > this interface.
> Excellent.  Please do read the abi docs carefully in particular.
> They don't cover this type of device, but will give you pointers on what abi makes sense.  Posting that abi even before your driver is ready to linux-iio will get that conversation underway (can often take much longer to pin down interface naming etc than reviewing/fixing the actual code!)

Sure, I will keep post my changes while doing the coding. So that I can make
a better code by end of it. And final reviewing would be less.

> 
> Thanks,
> 
> Jonathan
> 
> 

--
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


[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux