summaryrefslogtreecommitdiff
path: root/drivers/iio/dac
diff options
context:
space:
mode:
authorMatti Vaittinen <mazziesaccount@gmail.com>2025-04-02 09:45:56 +0300
committerJonathan Cameron <Jonathan.Cameron@huawei.com>2025-04-22 19:09:57 +0100
commitf026928c20ba47ce6ca7d52aaa28a834914ed580 (patch)
tree9c741c03766c8ae5e75f2843e062231ebaaf1990 /drivers/iio/dac
parent04f0bc81d6017b9ec80fbe0e00fe9ee02cfd42c4 (diff)
downloadlinux-f026928c20ba47ce6ca7d52aaa28a834914ed580.tar.gz
linux-f026928c20ba47ce6ca7d52aaa28a834914ed580.tar.bz2
linux-f026928c20ba47ce6ca7d52aaa28a834914ed580.zip
iio: dac: bd79703 Store device address to 'address'
The ROHM BD79703 needs to identify a channel which we are reading from in the SPI transfers. This can be seen as an address for the device. For the bd79703 the address is nicely aligned with the channel number, so the driver uses the channel ID for the SPI transfers. This, however, does not need to be the case. The iio_chan_spec has a separate 'address' field, which we can populate directly with this information. This helps adding new ICs like the ROHM BD79702 where the channel ID is different from this address to be handled by this driver, so we don't need to have separate, IC specific mapping for channel numbers <=> addresses. Make the 'address' field in the iio_chan_spec to contain the SPI protocol address for the channel, and use this value in the transfers. Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com> Link: https://patch.msgid.link/e53cb4120d16a3c678e1f391b600af630d6767ce.1743576022.git.mazziesaccount@gmail.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Diffstat (limited to 'drivers/iio/dac')
-rw-r--r--drivers/iio/dac/rohm-bd79703.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/iio/dac/rohm-bd79703.c b/drivers/iio/dac/rohm-bd79703.c
index e998ab51052e..236aa98bf005 100644
--- a/drivers/iio/dac/rohm-bd79703.c
+++ b/drivers/iio/dac/rohm-bd79703.c
@@ -67,7 +67,7 @@ static int bd79703_write_raw(struct iio_dev *idev,
if (val < 0 || val >= 1 << BD79703_DAC_BITS)
return -EINVAL;
- return regmap_write(data->regmap, chan->channel + 1, val);
+ return regmap_write(data->regmap, chan->address, val);
};
static const struct iio_info bd79703_info = {
@@ -82,7 +82,7 @@ static const struct iio_info bd79703_info = {
.channel = (_chan), \
.info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \
.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), \
- .address = (_chan), \
+ .address = (_chan + 1), \
}
static const struct iio_chan_spec bd79703_channels[] = {