Hi Deepanraj,
The iio subsystem provides two ways to program the ADC and read the values:
- One-shot conversions performed by reading the files in /sys/bus/iio/devices/iio\:device0/
- Continuous conversions of a single channel at a time using the /dev/iio:device0 character device file
There is no other API. Nothing like an ioctl that would let you program the device and do multiple conversions and read the results with a single system call. So you need to write your own code to open the /sys/bus/iio/devices/iio\:device0/ files, read the contents, and convert them from ASCII to unsigned int for doing whatever your program needs to do with the values.
The iioutils package (http://sourceforge.net/projects/iioutils/) does all of this for you, so that's probably the best place to copy the code from.
There is some nice backgroud documentation for other processors and sensors on http://processors.wiki.ti.com/index.php/AM335x_ADC_Driver%27s_Guide and in Enabling input (sensor) access for ARM devices : Blueprints : Ubuntu.
There is also a libiio package (analogdevicesinc/libiio · GitHub) that adds a lot of syntactic sugar, but at the lower level doesn't do things differently than iioutils.
Regards,
Carlos
NXP Technical Support
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------