Hello IIO folks, I am currently writing a blog post trying to explain the situation that I had with the max1027 driver [1] and possibly try to explain the logic behind the changes that Jonathan/Nuno requested. As part of this work, I tried to understand (and explain?) the meaning of the mode definitions and if they were needed or not, but just looking at the code was not enough for me to really understand. While digging into the IIO core, I realized that many definitions and helpers had no comments explaining their use. I could not find any documentation about the kernel API in general neither (while the userspace side is well documented). I asked yesterday on #linux-iio but got no answers so I am also asking here in case there are knowledgeable people willing to explain what each of these definition actually mean and how they should be used: https://elixir.bootlin.com/linux/latest/source/include/linux/iio/iio.h#L319 I am ready to send a patch upstream to add the necessary comment so that these explanations do not stay on the mailing list only. Thanks, Miquèl [1] https://lore.kernel.org/linux-iio/20210918180918.6908bbd9@jic23-huawei/