Dealing with the in-kernel IIO consumer interface
So far, we have dealt with the user-space consumer interface since data was consumed in user space. There are situations where a driver will require a dedicated IIO channel. An example is a battery charger that needs to measure the battery voltage as well. This measurement can be achieved using a dedicated IIO channel.
IIO channel attribution is done in the device tree. From the producer side, only one thing must be done: specifying the #io-channel-cells
property according to the number of channels of the IIO device. Typically, it is 0
for nodes with a single IIO output and 1
for nodes with multiple IIO outputs. The following is an example:
adc: max1139@35 { compatible = "maxim,max1139"; reg = <0x35>; #io-channel-cells = <1>; };
On the consumer side, there are a few properties to provide. These are the following:
io-channels...