{
        struct meson_sar_adc_priv *priv = iio_priv(indio_dev);
        u8 *buf, trimming_bits, trimming_mask, upper_adc_val;
+       struct device *dev = indio_dev->dev.parent;
        struct nvmem_cell *temperature_calib;
        size_t read_len;
        int ret;
                if (ret == -ENODEV)
                        return 0;
 
-               return dev_err_probe(indio_dev->dev.parent, ret,
-                                    "failed to get temperature_calib cell\n");
+               return dev_err_probe(dev, ret, "failed to get temperature_calib cell\n");
        }
 
        priv->tsc_regmap =
                syscon_regmap_lookup_by_phandle(indio_dev->dev.parent->of_node,
                                                "amlogic,hhi-sysctrl");
-       if (IS_ERR(priv->tsc_regmap)) {
-               dev_err(indio_dev->dev.parent,
-                       "failed to get amlogic,hhi-sysctrl regmap\n");
-               return PTR_ERR(priv->tsc_regmap);
-       }
+       if (IS_ERR(priv->tsc_regmap))
+               return dev_err_probe(dev, PTR_ERR(priv->tsc_regmap),
+                                    "failed to get amlogic,hhi-sysctrl regmap\n");
 
        read_len = MESON_SAR_ADC_EFUSE_BYTES;
        buf = nvmem_cell_read(temperature_calib, &read_len);
-       if (IS_ERR(buf)) {
-               dev_err(indio_dev->dev.parent,
-                       "failed to read temperature_calib cell\n");
-               return PTR_ERR(buf);
-       } else if (read_len != MESON_SAR_ADC_EFUSE_BYTES) {
+       if (IS_ERR(buf))
+               return dev_err_probe(dev, PTR_ERR(buf), "failed to read temperature_calib cell\n");
+       if (read_len != MESON_SAR_ADC_EFUSE_BYTES) {
                kfree(buf);
-               dev_err(indio_dev->dev.parent,
-                       "invalid read size of temperature_calib cell\n");
-               return -EINVAL;
+               return dev_err_probe(dev, -EINVAL, "invalid read size of temperature_calib cell\n");
        }
 
        trimming_bits = priv->param->temperature_trimming_bits;
 static int meson_sar_adc_init(struct iio_dev *indio_dev)
 {
        struct meson_sar_adc_priv *priv = iio_priv(indio_dev);
+       struct device *dev = indio_dev->dev.parent;
        int regval, i, ret;
 
        /*
        }
 
        ret = clk_set_parent(priv->adc_sel_clk, priv->clkin);
-       if (ret) {
-               dev_err(indio_dev->dev.parent,
-                       "failed to set adc parent to clkin\n");
-               return ret;
-       }
+       if (ret)
+               return dev_err_probe(dev, ret, "failed to set adc parent to clkin\n");
 
        ret = clk_set_rate(priv->adc_clk, priv->param->clock_rate);
-       if (ret) {
-               dev_err(indio_dev->dev.parent,
-                       "failed to set adc clock rate\n");
-               return ret;
-       }
+       if (ret)
+               return dev_err_probe(dev, ret, "failed to set adc clock rate\n");
 
        return 0;
 }
 {
        const struct meson_sar_adc_data *match_data;
        struct meson_sar_adc_priv *priv;
+       struct device *dev = &pdev->dev;
        struct iio_dev *indio_dev;
        void __iomem *base;
        int irq, ret;
 
        indio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(*priv));
-       if (!indio_dev) {
-               dev_err(&pdev->dev, "failed allocating iio device\n");
-               return -ENOMEM;
-       }
+       if (!indio_dev)
+               return dev_err_probe(dev, -ENOMEM, "failed allocating iio device\n");
 
        priv = iio_priv(indio_dev);
        init_completion(&priv->done);
 
        match_data = of_device_get_match_data(&pdev->dev);
-       if (!match_data) {
-               dev_err(&pdev->dev, "failed to get match data\n");
-               return -ENODEV;
-       }
+       if (!match_data)
+               return dev_err_probe(dev, -ENODEV, "failed to get match data\n");
 
        priv->param = match_data->param;