IIO: Ingenic JZ47xx: Add xlate cb to retrieve correct channel idx
Provide an of_xlate callback in order to retrieve the correct channel specifier index from the IIO channels array. Signed-off-by: Artur Rojek <contact@artur-rojek.eu> Tested-by: Paul Cercueil <paul@crapouillou.net> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
1a99dc4679
commit
155e41efe7
1 changed files with 16 additions and 0 deletions
|
@ -401,6 +401,21 @@ static int ingenic_adc_read_raw(struct iio_dev *iio_dev,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int ingenic_adc_of_xlate(struct iio_dev *iio_dev,
|
||||||
|
const struct of_phandle_args *iiospec)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (!iiospec->args_count)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
for (i = 0; i < iio_dev->num_channels; ++i)
|
||||||
|
if (iio_dev->channels[i].channel == iiospec->args[0])
|
||||||
|
return i;
|
||||||
|
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
static void ingenic_adc_clk_cleanup(void *data)
|
static void ingenic_adc_clk_cleanup(void *data)
|
||||||
{
|
{
|
||||||
clk_unprepare(data);
|
clk_unprepare(data);
|
||||||
|
@ -410,6 +425,7 @@ static const struct iio_info ingenic_adc_info = {
|
||||||
.write_raw = ingenic_adc_write_raw,
|
.write_raw = ingenic_adc_write_raw,
|
||||||
.read_raw = ingenic_adc_read_raw,
|
.read_raw = ingenic_adc_read_raw,
|
||||||
.read_avail = ingenic_adc_read_avail,
|
.read_avail = ingenic_adc_read_avail,
|
||||||
|
.of_xlate = ingenic_adc_of_xlate,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct iio_chan_spec ingenic_channels[] = {
|
static const struct iio_chan_spec ingenic_channels[] = {
|
||||||
|
|
Loading…
Add table
Reference in a new issue