#define BME680_MEAS_TRIM_MASK                  GENMASK(24, 4)
 
+#define BME680_STARTUP_TIME_US                 5000
+
 /* Calibration Parameters */
 #define BME680_T2_LSB_REG      0x8A
 #define BME680_H2_MSB_REG      0xE1
 
        int ret;
        u8 heatr_res, heatr_dur;
 
+       /* Go to sleep */
+       ret = bme680_set_mode(data, false);
+       if (ret < 0)
+               return ret;
+
        heatr_res = bme680_calc_heater_res(data, data->heater_temp);
 
        /* set target heater temperature */
                return ret;
        }
 
+       usleep_range(BME680_STARTUP_TIME_US, BME680_STARTUP_TIME_US + 1000);
+
        ret = regmap_read(regmap, BME680_REG_CHIP_ID, &data->check);
        if (ret < 0) {
                dev_err(dev, "Error reading chip ID\n");
                return -ENODEV;
        }
 
-       ret = bme680_chip_config(data);
+       ret = bme680_read_calib(data, &data->bme680);
        if (ret < 0) {
-               dev_err(dev, "failed to set chip_config data\n");
+               dev_err(dev,
+                       "failed to read calibration coefficients at probe\n");
                return ret;
        }
 
-       ret = bme680_gas_config(data);
+       ret = bme680_chip_config(data);
        if (ret < 0) {
-               dev_err(dev, "failed to set gas config data\n");
+               dev_err(dev, "failed to set chip_config data\n");
                return ret;
        }
 
-       ret = bme680_read_calib(data, &data->bme680);
+       ret = bme680_gas_config(data);
        if (ret < 0) {
-               dev_err(dev,
-                       "failed to read calibration coefficients at probe\n");
+               dev_err(dev, "failed to set gas config data\n");
                return ret;
        }