Commit 4865ee12 authored by Vasileios Amoiridis's avatar Vasileios Amoiridis Committed by Jonathan Cameron
Browse files

iio: chemical: bme680: refactorize set_mode() mode



Refactorize the set_mode() function to use an external enum that
describes the possible modes of the BME680 device instead of using
true/false variables for selecting SLEEPING/FORCED mode.

Signed-off-by: default avatarVasileios Amoiridis <vassilisamir@gmail.com>
Link: https://patch.msgid.link/20241102131311.36210-2-vassilisamir@gmail.com


Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 01f567d2
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -27,8 +27,6 @@
#define   BME680_OSRS_TEMP_MASK			GENMASK(7, 5)
#define   BME680_OSRS_PRESS_MASK		GENMASK(4, 2)
#define   BME680_MODE_MASK			GENMASK(1, 0)
#define     BME680_MODE_FORCED			1
#define     BME680_MODE_SLEEP			0

#define BME680_REG_CONFIG			0x75
#define   BME680_FILTER_MASK			GENMASK(4, 2)
+14 −17
Original line number Diff line number Diff line
@@ -95,6 +95,12 @@ struct bme680_calib {
	s8  range_sw_err;
};

/* values of CTRL_MEAS register */
enum bme680_op_mode {
	BME680_MODE_SLEEP = 0,
	BME680_MODE_FORCED = 1,
};

struct bme680_data {
	struct regmap *regmap;
	struct bme680_calib bme680;
@@ -502,23 +508,16 @@ static u8 bme680_calc_heater_dur(u16 dur)
	return durval;
}

static int bme680_set_mode(struct bme680_data *data, bool mode)
static int bme680_set_mode(struct bme680_data *data, enum bme680_op_mode mode)
{
	struct device *dev = regmap_get_device(data->regmap);
	int ret;

	if (mode) {
		ret = regmap_write_bits(data->regmap, BME680_REG_CTRL_MEAS,
					BME680_MODE_MASK, BME680_MODE_FORCED);
		if (ret < 0)
			dev_err(dev, "failed to set forced mode\n");

	} else {
	ret = regmap_write_bits(data->regmap, BME680_REG_CTRL_MEAS,
					BME680_MODE_MASK, BME680_MODE_SLEEP);
		if (ret < 0)
			dev_err(dev, "failed to set sleep mode\n");

				BME680_MODE_MASK, mode);
	if (ret < 0) {
		dev_err(dev, "failed to set ctrl_meas register\n");
		return ret;
	}

	return ret;
@@ -613,8 +612,7 @@ static int bme680_gas_config(struct bme680_data *data)
	int ret;
	u8 heatr_res, heatr_dur;

	/* Go to sleep */
	ret = bme680_set_mode(data, false);
	ret = bme680_set_mode(data, BME680_MODE_SLEEP);
	if (ret < 0)
		return ret;

@@ -745,8 +743,7 @@ static int bme680_read_raw(struct iio_dev *indio_dev,

	guard(mutex)(&data->lock);

	/* set forced mode to trigger measurement */
	ret = bme680_set_mode(data, true);
	ret = bme680_set_mode(data, BME680_MODE_FORCED);
	if (ret < 0)
		return ret;