diff --git a/drivers/sensor/ccs811/Kconfig b/drivers/sensor/ccs811/Kconfig index dc3844182d1..6bebb12aeca 100644 --- a/drivers/sensor/ccs811/Kconfig +++ b/drivers/sensor/ccs811/Kconfig @@ -31,6 +31,9 @@ config CCS811_DRIVE_MODE_2 config CCS811_DRIVE_MODE_3 bool "Measurement every sixty seconds" +config CCS811_DRIVE_MODE_4 + bool "Measurement every 250 milliseconds" + endchoice config CCS811_TRIGGER diff --git a/drivers/sensor/ccs811/ccs811.c b/drivers/sensor/ccs811/ccs811.c index 0b54b7a83a5..8e4d1e11dbb 100644 --- a/drivers/sensor/ccs811/ccs811.c +++ b/drivers/sensor/ccs811/ccs811.c @@ -474,13 +474,15 @@ static int ccs811_init(struct device *dev) } /* Configure measurement mode */ - u8_t meas_mode = 0; + u8_t meas_mode = CCS811_MODE_IDLE; #ifdef CONFIG_CCS811_DRIVE_MODE_1 - meas_mode = 0x10; + meas_mode = CCS811_MODE_IAQ_1SEC; #elif defined(CONFIG_CCS811_DRIVE_MODE_2) - meas_mode = 0x20; + meas_mode = CCS811_MODE_IAQ_10SEC; #elif defined(CONFIG_CCS811_DRIVE_MODE_3) - meas_mode = 0x30; + meas_mode = CCS811_MODE_IAQ_60SEC; +#elif defined(CONFIG_CCS811_DRIVE_MODE_4) + meas_mode = CCS811_MODE_IAQ_250MSEC; #endif if (i2c_reg_write_byte(drv_data->i2c, DT_INST_0_AMS_CCS811_BASE_ADDRESS, CCS811_REG_MEAS_MODE, diff --git a/include/drivers/sensor/ccs811.h b/include/drivers/sensor/ccs811.h index 65617529895..c51d8e52866 100644 --- a/include/drivers/sensor/ccs811.h +++ b/include/drivers/sensor/ccs811.h @@ -41,7 +41,7 @@ extern "C" { #define CCS811_MODE_IAQ_1SEC 0x10 #define CCS811_MODE_IAQ_10SEC 0x20 #define CCS811_MODE_IAQ_60SEC 0x30 -#define CCS811_MODE_IAQ_RAW_250MSEC 0x40 +#define CCS811_MODE_IAQ_250MSEC 0x40 /** @brief Information collected from the sensor on each fetch. */ struct ccs811_result_type {