Merge 6.5-rc6 into char-misc-next
[platform/kernel/linux-starfive.git] / drivers / iio / adc / ad7192.c
index 7bc3ebf..69d1103 100644 (file)
@@ -16,7 +16,7 @@
 #include <linux/err.h>
 #include <linux/sched.h>
 #include <linux/delay.h>
-#include <linux/of_device.h>
+#include <linux/of.h>
 
 #include <linux/iio/iio.h>
 #include <linux/iio/sysfs.h>
@@ -402,8 +402,8 @@ static int ad7192_setup(struct iio_dev *indio_dev, struct device_node *np)
        id &= AD7192_ID_MASK;
 
        if (id != st->chip_info->chip_id)
-               dev_warn(&st->sd.spi->dev, "device ID query failed (0x%X)\n",
-                        id);
+               dev_warn(&st->sd.spi->dev, "device ID query failed (0x%X != 0x%X)\n",
+                        id, st->chip_info->chip_id);
 
        st->mode = AD7192_MODE_SEL(AD7192_MODE_IDLE) |
                AD7192_MODE_CLKSRC(st->clock_sel) |
@@ -561,9 +561,8 @@ static ssize_t ad7192_show_filter_avail(struct device *dev,
        ad7192_get_available_filter_freq(st, freq_avail);
 
        for (i = 0; i < ARRAY_SIZE(freq_avail); i++)
-               len += scnprintf(buf + len, PAGE_SIZE - len,
-                                "%d.%d ", freq_avail[i] / 1000,
-                                freq_avail[i] % 1000);
+               len += sysfs_emit_at(buf, len, "%d.%03d ", freq_avail[i] / 1000,
+                                    freq_avail[i] % 1000);
 
        buf[len - 1] = '\n';
 
@@ -972,11 +971,6 @@ static void ad7192_reg_disable(void *reg)
        regulator_disable(reg);
 }
 
-static void ad7192_clk_disable(void *clk)
-{
-       clk_disable_unprepare(clk);
-}
-
 static int ad7192_probe(struct spi_device *spi)
 {
        struct ad7192_state *st;
@@ -1036,7 +1030,9 @@ static int ad7192_probe(struct spi_device *spi)
        else
                indio_dev->info = &ad7192_info;
 
-       ad_sd_init(&st->sd, indio_dev, spi, &ad7192_sigma_delta_info);
+       ret = ad_sd_init(&st->sd, indio_dev, spi, &ad7192_sigma_delta_info);
+       if (ret)
+               return ret;
 
        ret = devm_ad_sd_setup_buffer_and_trigger(&spi->dev, indio_dev);
        if (ret)
@@ -1044,7 +1040,7 @@ static int ad7192_probe(struct spi_device *spi)
 
        st->fclk = AD7192_INT_FREQ_MHZ;
 
-       st->mclk = devm_clk_get_optional(&spi->dev, "mclk");
+       st->mclk = devm_clk_get_optional_enabled(&spi->dev, "mclk");
        if (IS_ERR(st->mclk))
                return PTR_ERR(st->mclk);
 
@@ -1052,15 +1048,6 @@ static int ad7192_probe(struct spi_device *spi)
 
        if (st->clock_sel == AD7192_CLK_EXT_MCLK1_2 ||
            st->clock_sel == AD7192_CLK_EXT_MCLK2) {
-               ret = clk_prepare_enable(st->mclk);
-               if (ret < 0)
-                       return ret;
-
-               ret = devm_add_action_or_reset(&spi->dev, ad7192_clk_disable,
-                                              st->mclk);
-               if (ret)
-                       return ret;
-
                st->fclk = clk_get_rate(st->mclk);
                if (!ad7192_valid_external_frequency(st->fclk)) {
                        dev_err(&spi->dev,