unsigned int val;
        int ret;
 
-       ret = regmap_write(regmap, BME680_REG_SOFT_RESET,
-                          BME680_CMD_SOFTRESET);
-       if (ret < 0) {
-               dev_err(dev, "Failed to reset chip\n");
-               return ret;
-       }
-
-       ret = regmap_read(regmap, BME680_REG_CHIP_ID, &val);
-       if (ret < 0) {
-               dev_err(dev, "Error reading chip ID\n");
-               return ret;
-       }
-
-       if (val != BME680_CHIP_ID_VAL) {
-               dev_err(dev, "Wrong chip ID, got %x expected %x\n",
-                               val, BME680_CHIP_ID_VAL);
-               return -ENODEV;
-       }
-
        indio_dev = devm_iio_device_alloc(dev, sizeof(*data));
        if (!indio_dev)
                return -ENOMEM;
        data->heater_temp = 320; /* degree Celsius */
        data->heater_dur = 150;  /* milliseconds */
 
+       ret = regmap_write(regmap, BME680_REG_SOFT_RESET,
+                          BME680_CMD_SOFTRESET);
+       if (ret < 0) {
+               dev_err(dev, "Failed to reset chip\n");
+               return ret;
+       }
+
+       ret = regmap_read(regmap, BME680_REG_CHIP_ID, &val);
+       if (ret < 0) {
+               dev_err(dev, "Error reading chip ID\n");
+               return ret;
+       }
+
+       if (val != BME680_CHIP_ID_VAL) {
+               dev_err(dev, "Wrong chip ID, got %x expected %x\n",
+                       val, BME680_CHIP_ID_VAL);
+               return -ENODEV;
+       }
+
        ret = bme680_chip_config(data);
        if (ret < 0) {
                dev_err(dev, "failed to set chip_config data\n");