/*
 * 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_ */
