Re: how to read info from ../iio/device/../iio:device0

Showing results for 
Show  only  | Search instead for 
Did you mean: 

Re: how to read info from ../iio/device/../iio:device0

NXP TechSupport
NXP TechSupport

Cheng Shi wrote:

Hi, Otavio Salvador

I have updated mxs_lradc.c in Linux-3.9.7 according to the two commits in The normal AD channels are working, and I can see their value with system command #cat in_temp9_raw etc. My question is how to read those values in my program. Are there any example code available? Thanks


Cheng Shi


3 Replies

Contributor II

The iio subsystem provides two ways to program the ADC and read the values:

  1. One-shot conversions performed by reading the files in /sys/bus/iio/devices/iio\:device0/
  2. 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 ( 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 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.

Contributor V

are there any kernel API's for ADC??

0 Kudos

Contributor II

Hi Jonathan,

i have not much experience in Linux development and use imx6sx on sabreSd board.

I need to use ADC and followed Freescale documentation "imx6_Linux_Reference_Manual" and checked kernel configuration by menuconfig:

Device Drivers > Industrial I/O support> Analog to digital converters > Freescale vf610

This was already activated.

My problem is i can't see /sys/bus/iio directory.

This documentation speak about these directories:



These directories exist



But they don't contain iio directories.

Have you got an idea what this is due to?

Thank you for your help.

0 Kudos