mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 10:04:04 +02:00
iio: adc: ad7173: add SPI offload support
Enable SPI offload support for the AD7173 ADC driver. The scan_type used for SPI offload is assuming that we are using the ad411x_ad717x HDL project [1] which always stores data words in 32-bits. Link: https://analogdevicesinc.github.io/hdl/projects/ad411x_ad717x/index.html [1] Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: David Lechner <dlechner@baylibre.com> Link: https://patch.msgid.link/20250710-iio-adc-ad7173-add-spi-offload-support-v4-1-536857c4e043@baylibre.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
9ae68c9bb1
commit
329cb8be15
|
|
@ -746,6 +746,7 @@ static const struct ad_sigma_delta_info ad7173_sigma_delta_info_4_slots = {
|
|||
.set_mode = ad7173_set_mode,
|
||||
.has_registers = true,
|
||||
.has_named_irqs = true,
|
||||
.supports_spi_offload = true,
|
||||
.addr_shift = 0,
|
||||
.read_mask = BIT(6),
|
||||
.status_ch_mask = GENMASK(3, 0),
|
||||
|
|
@ -762,6 +763,7 @@ static const struct ad_sigma_delta_info ad7173_sigma_delta_info_8_slots = {
|
|||
.set_mode = ad7173_set_mode,
|
||||
.has_registers = true,
|
||||
.has_named_irqs = true,
|
||||
.supports_spi_offload = true,
|
||||
.addr_shift = 0,
|
||||
.read_mask = BIT(6),
|
||||
.status_ch_mask = GENMASK(3, 0),
|
||||
|
|
@ -778,6 +780,7 @@ static const struct ad_sigma_delta_info ad7173_sigma_delta_info_16_slots = {
|
|||
.set_mode = ad7173_set_mode,
|
||||
.has_registers = true,
|
||||
.has_named_irqs = true,
|
||||
.supports_spi_offload = true,
|
||||
.addr_shift = 0,
|
||||
.read_mask = BIT(6),
|
||||
.status_ch_mask = GENMASK(3, 0),
|
||||
|
|
@ -1595,6 +1598,11 @@ static int ad7173_fw_parse_channel_config(struct iio_dev *indio_dev)
|
|||
if (st->info->data_reg_only_16bit)
|
||||
chan_arr[chan_index].scan_type = ad4113_scan_type;
|
||||
|
||||
if (ad_sigma_delta_has_spi_offload(&st->sd)) {
|
||||
chan_arr[chan_index].scan_type.storagebits = 32;
|
||||
chan_arr[chan_index].scan_type.endianness = IIO_CPU;
|
||||
}
|
||||
|
||||
chan_index++;
|
||||
}
|
||||
|
||||
|
|
@ -1685,6 +1693,12 @@ static int ad7173_fw_parse_channel_config(struct iio_dev *indio_dev)
|
|||
if (st->info->data_reg_only_16bit)
|
||||
chan_arr[chan_index].scan_type = ad4113_scan_type;
|
||||
|
||||
/* Assuming SPI offload is ad411x_ad717x HDL project. */
|
||||
if (ad_sigma_delta_has_spi_offload(&st->sd)) {
|
||||
chan_arr[chan_index].scan_type.storagebits = 32;
|
||||
chan_arr[chan_index].scan_type.endianness = IIO_CPU;
|
||||
}
|
||||
|
||||
chan_index++;
|
||||
}
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user