]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iio: adc: ad_sigma_delta: refactor setting read address
authorDavid Lechner <dlechner@baylibre.com>
Tue, 1 Jul 2025 21:37:55 +0000 (16:37 -0500)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 13 Jul 2025 14:36:25 +0000 (15:36 +0100)
Refactor code to set the read address in a separate function.

This code is already duplicated twice and we will need to use it a third
time in a later commit.

Signed-off-by: David Lechner <dlechner@baylibre.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Link: https://patch.msgid.link/20250701-iio-adc-ad7173-add-spi-offload-support-v3-7-42abb83e3dac@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/ad_sigma_delta.c

index b5c66a6cc47ec8e36c458fae87309fd30109c0ec..ce549775ac3d68fd11e660b6b993ac661301756a 100644 (file)
@@ -107,6 +107,14 @@ int ad_sd_write_reg(struct ad_sigma_delta *sigma_delta, unsigned int reg,
 }
 EXPORT_SYMBOL_NS_GPL(ad_sd_write_reg, "IIO_AD_SIGMA_DELTA");
 
+static void ad_sd_set_read_reg_addr(struct ad_sigma_delta *sigma_delta, u8 reg,
+                                   u8 *data)
+{
+       data[0] = reg << sigma_delta->info->addr_shift;
+       data[0] |= sigma_delta->info->read_mask;
+       data[0] |= sigma_delta->comm;
+}
+
 static int ad_sd_read_reg_raw(struct ad_sigma_delta *sigma_delta,
                              unsigned int reg, unsigned int size, u8 *val)
 {
@@ -127,9 +135,7 @@ static int ad_sd_read_reg_raw(struct ad_sigma_delta *sigma_delta,
        spi_message_init(&m);
 
        if (sigma_delta->info->has_registers) {
-               data[0] = reg << sigma_delta->info->addr_shift;
-               data[0] |= sigma_delta->info->read_mask;
-               data[0] |= sigma_delta->comm;
+               ad_sd_set_read_reg_addr(sigma_delta, reg, data);
                spi_message_add_tail(&t[0], &m);
        }
        spi_message_add_tail(&t[1], &m);
@@ -288,9 +294,7 @@ static int ad_sigma_delta_clear_pending_event(struct ad_sigma_delta *sigma_delta
        if (sigma_delta->info->has_registers) {
                unsigned int data_reg = sigma_delta->info->data_reg ?: AD_SD_REG_DATA;
 
-               data[0] = data_reg << sigma_delta->info->addr_shift;
-               data[0] |= sigma_delta->info->read_mask;
-               data[0] |= sigma_delta->comm;
+               ad_sd_set_read_reg_addr(sigma_delta, data_reg, data);
                t[0].tx_buf = data;
                spi_message_add_tail(&t[0], &m);
        }