Some time ago, one of our customers came to us with a hardware design featuring the Renesas X9250 digital potentiometer in an audio path, as shown in the following diagram. Naturally, our goal was to find the proper way to support this hardware design in the upstream Linux kernel.

Since the X9250 is part of an audio path, the first thing that came to mind was the ALSA subsystem of the Linux kernel. However, the Renesas X9250 is a generic digital potentiometer, and audio is only one of its many possible use cases.
The Linux kernel also has a separate subsystem called IIO (Industrial I/O), which provides support for a wide range of devices, including accelerometers, various types of sensors, ADCs, DACs, and potentiometers. Potentiometers are already supported by IIO, as can be seen in the drivers/iio/potentiometer directory.
IIO is not specific to audio, so implementing the Renesas X9250 driver as an IIO driver made more sense than implementing an ALSA-specific driver. This way, the same driver can be reused for non-audio use cases as well.
However, we still needed a way for the potentiometer to be handled as a regular component of an audio path through the ALSA subsystem.


Since our 
Snagboot has just received its
Linux 7.2 has been released 

From the 13th to 16th of July in Rome, Italy, 130 Linux Kernel developers specialized in networking gathered at the