Re: Moving ad2s90 out of staging

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

 



On Wed, 14 Mar 2018 21:29:48 -0400
Tom Lebreux <tomlebreux@xxxxxxx> wrote:

> Dear IIO community,
> 
> I plan on working on the ad2s90 resolver driver. I understand that we do not
> have hardware to test the drivers, so I will not be adding new features. The
> work will be mostly about cleaning up the driver.
> 
> 1. Clean up CHECK (mutex not commented)
> 
> 2. Sort include alphabetically
> 
> 3. Reverse christmas tree ordering 
> I saw this in David's plan for the ad2s1200 driver as well as a patch for an
> accel driver. However, I did not see this mentionned in
> Documentation/process/coding-style.rst. Is this necessary, or even wanted ?
It is one of those things that I wouldn't say is necessary but is moderately
common.
> 
> 4. Return -EINVAL on spi_read error
> Currently, on spi_read error, read_raw still returns IIO_VAL_INT. I believe this
> should be returning -EINVAL, as does, for example, the adxrs450 gyro driver.
Sounds reasonable.
> 
> 5. Remove indexed property as there is only 1 channel
Leave it there.  The ABI allows this and actually if we hadn't originally
specified it to be fine to not be indexed, I think we would actually make
it a requirement.  It makes life ever so slightly easier for userspace
parsing.

> 
> 6. Use a #define for magic number 830000
> This sets the maximum clock speed of the spi driver. I am struggling to find
> where this number comes from. Is this number coming from the fact that there
> needs 600ns between the CS and the first galling edge (mentionned in the 
> comment right above the assigment)? The data sheet specifies the max SCLK input
> rate as being 2MHz.
I'm not sure there is that much to be gained, it's not a magic number
in the sense that its value really is the frequency.
Given the comment I'd imagine that we have half a wavelength between the CS and
falling edge. If that indeed needs to be at least 600ns then this is the maximum
frequency. as 1/830000 = 1.2microseconds.



> 
> Is this a good plan ? Am I missing anything important ?
> 
> This was my first time reading a specification document, learning about
> resolvers and resolver-to-digital converters.
> 
> From what I understand, the ad2s90 uses the spi interface to output (only) its
> absolute position angle. However, it supports many other outputs, such as A, B
> encoding, direction of rotation of input (DIR) and angular velocity of input
> signals (VEL). What is used to received these numbers ? Or are they only used
> to connect directly to other devices ?
A / B would be signals to an encoder input.  There are quite a few devices
that have hardware that would interpret that.  The am335x found on a beaglebone
black for example.  Right now there is an out of tree driver for that, but nothing
in tree.  See the recent proposal for a counters subsystem.

The velocity input could be connected to any normal ADC.  At that point we
could support it by using the consumer interfaces for IIO reasonably well.
However, for now just stick to the absolute position that we can get digitally!

As for other things.
IIO_CHAN_INFO_RAW only seems a bit odd given the nature of resolvers
means we know the 'units' and hence can provide the scale.

Otherwise, there is so little to this driver that there can't be much else that
needs doing!

Jonathan
> 
> Best regards,
> 
> Tom Lebreux
> --
> 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

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