OSDN Git Service

iio: adc: ad7124: allow more than 8 channels
authorAlexandru Tachici <alexandru.tachici@analog.com>
Thu, 11 Mar 2021 09:11:54 +0000 (11:11 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Thu, 25 Mar 2021 19:13:50 +0000 (19:13 +0000)
commit7b8d045e497a04dd88546da51f34fa3b102778d2
treeb9feba3c1932fd02a4ac65d93d2c15218049adab
parent941f66765a32e9a1985b0815102423cf63fc343e
iio: adc: ad7124: allow more than 8 channels

Currently AD7124-8 driver cannot use more than 8 IIO channels
because it was assigning the channel configurations bijectively
to channels specified in the device-tree. This is not possible
to do when using more than 8 channels as AD7124-8 has only 8
configuration registers.

To allow the user to use all channels at once the driver
will keep in memory configurations for all channels but
will program only 8 of them at a time on the device.
If multiple channels have the same configuration, only
one configuration register will be used. If there
are more configurations than available registers only
the last 8 used configurations will be allowed to exist
on the device in a LRU fashion.

Signed-off-by: Alexandru Tachici <alexandru.tachici@analog.com>
Reported-by: kernel test robot <lkp@intel.com>
Link: https://lore.kernel.org/r/20210311091154.47785-2-alexandru.tachici@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/ad7124.c