Update ccs811 dts binding to include GPIO pins for wakeup, reset, and interrupt and change driver code to get the GPIO pin and controller info from DT instead of Kconfig. Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
60 lines
1.4 KiB
C
60 lines
1.4 KiB
C
/*
|
|
* Copyright (c) 2018 Linaro Ltd.
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#ifndef ZEPHYR_DRIVERS_SENSOR_CCS811_CCS811_H_
|
|
#define ZEPHYR_DRIVERS_SENSOR_CCS811_CCS811_H_
|
|
|
|
#include <device.h>
|
|
#include <drivers/gpio.h>
|
|
#include <sys/util.h>
|
|
|
|
/* Registers */
|
|
#define CCS811_REG_STATUS 0x00
|
|
#define CCS811_REG_MEAS_MODE 0x01
|
|
#define CCS811_REG_ALG_RESULT_DATA 0x02
|
|
#define CCS811_REG_RAW_DATA 0x03
|
|
#define CCS811_REG_HW_ID 0x20
|
|
#define CCS811_REG_HW_VERSION 0x21
|
|
#define CCS811_REG_HW_VERSION_MASK 0xF0
|
|
#define CCS811_REG_ERR 0xE0
|
|
#define CCS811_REG_APP_START 0xF4
|
|
|
|
#define CCS881_HW_ID 0x81
|
|
#define CCS811_HW_VERSION 0x10
|
|
|
|
/* Status register fields */
|
|
#define CCS811_STATUS_ERROR BIT(0)
|
|
#define CCS811_STATUS_DATA_READY BIT(3)
|
|
#define CCS811_STATUS_APP_VALID BIT(4)
|
|
#define CCS811_STATUS_FW_MODE BIT(7)
|
|
|
|
/* Measurement modes */
|
|
#define CCS811_MODE_IDLE 0x00
|
|
#define CCS811_MODE_IAQ_1SEC 0x10
|
|
#define CCS811_MODE_IAQ_10SEC 0x20
|
|
#define CCS811_MODE_IAQ_60SEC 0x30
|
|
#define CCS811_MODE_RAW_DATA 0x40
|
|
|
|
#define CCS811_VOLTAGE_SCALE 1613
|
|
|
|
#define CCS811_VOLTAGE_MASK 0x3FF
|
|
|
|
struct ccs811_data {
|
|
struct device *i2c;
|
|
#ifdef DT_INST_0_AMS_CCS811_WAKE_GPIOS_CONTROLLER
|
|
struct device *gpio_wakeup;
|
|
#endif
|
|
#ifdef DT_INST_0_AMS_CCS811_RESET_GPIOS_CONTROLLER
|
|
struct device *gpio_reset;
|
|
#endif
|
|
u16_t co2;
|
|
u16_t voc;
|
|
u8_t status;
|
|
u8_t error;
|
|
u16_t resistance;
|
|
};
|
|
|
|
#endif /* _SENSOR_CCS811_ */
|