Hello, I am developing an extension board for Raspberry Pi, it has a microcontroller on it and I'm trying to expose its pins as a I/O expander via I²C bus. I've recently successfully implemented gpiochip interface as well as irq_chip in a kernel module, and now I'm looking at adding ADC support, Industrial IO seems like a good candidate for exposing it, but I have a couple of questions: 1. Can the IIO channels be configured dynamically? On the microcontroller, the same pins can be used for GPIO, ADC, etc... - can things like the channel direction, the function (simple high or low GPIO pin, ADC, PWM output) be configured by userspace programs? Can it be configured within a kernel module, if I provide my own sysfs interface for function setup? 2. Can IIO channels be appended and removed to/from the list during runtime? 3. Are encoders supported by IIO? I'd like to decode encoders within the firmware of the microcontroller, and provide only increments/decrements to the kernel module via I²C, can encoders built in such a way be exposed via IIO? I've seen some patches on the internet adding 'counter' interface to IIO, but it seems it never made it to be within IIO, and instead the 'counter' in its own subsystem. 4. How does IIO interact with gpiochip? As I'm implementing gpiochip interface, I could simply return -EBUSY for pins already used by the other subsystem. Thank you! Giedrius.