/*
 * Copyright (c) 2018 Alexander Wachter.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#ifndef ZEPHYR_DRIVERS_SENSOR_ENS210_ENS210_H_
#define ZEPHYR_DRIVERS_SENSOR_CCS8ZEPHYR_DRIVERS_SENSOR_ENS210_ENS210_H_11_CCS811_H_

#include <device.h>
#include <gpio.h>
#include <misc/util.h>

/* Registers */
#define ENS210_REG_PART_ID    0x00
#define ENS210_REG_UID        0x04
#define ENS210_REG_SYS_CTRL   0x10
#define ENS210_REG_SYS_STAT   0x11
#define ENS210_REG_SENS_RUN   0x21
#define ENS210_REG_SENS_START 0x22
#define ENS210_REG_SENS_STOP  0x23
#define ENS210_REG_SENS_STAT  0x24
#define ENS210_REG_T_VAL      0x30
#define ENS210_REG_H_VAL      0x33

#define ENS210_PART_ID 0x0210

/*
 * Polynomial
 * 0b 1000 1001 ~ x^7+x^3+x^0
 * 0x    8    9
 */
#define ENS210_CRC7_WIDTH      7
#define ENS210_CRC7_POLY       0x89
#define ENS210_CRC7_IVEC       ((1UL << ENS210_CRC7_WIDTH) - 1)
#define ENS210_CRC7_DATA_WIDTH 17
#define ENS210_CRC7_DATA_MASK  ((1UL << ENS210_CRC7_DATA_WIDTH) - 1)
#define ENS210_CRC7_DATA_MSB   (1UL << (ENS210_CRC7_DATA_WIDTH - 1))

struct ens210_value_data {
	u16_t val;
	u8_t  valid : 1;
	u8_t  crc7  : 7;
} __packed;

struct ens210_sys_ctrl {
	u8_t  low_power : 1;
	u8_t  reserved  : 6;
	u8_t  reset     : 1;
} __packed;

struct ens210_sys_stat {
	u8_t  sys_active : 1;
	u8_t  reserved   : 7;
} __packed;

struct ens210_sens_run {
	u8_t  t_run    : 1;
	u8_t  h_run    : 1;
	u8_t  reserved : 6;
} __packed;

struct ens210_sens_start {
	u8_t  t_start  : 1;
	u8_t  h_start  : 1;
	u8_t  reserved : 6;
} __packed;

struct ens210_sens_stop {
	u8_t  t_stop  : 1;
	u8_t  h_stop  : 1;
	u8_t  reserved : 6;
} __packed;

struct ens210_sens_stat {
	u8_t  t_stat  : 1;
	u8_t  h_stat  : 1;
	u8_t  reserved : 6;
} __packed;

struct ens210_data {
	struct device *i2c;
	struct ens210_value_data temp;
	struct ens210_value_data humidity;
};

#endif /* ZEPHYR_DRIVERS_SENSOR_ENS210_ENS210_H_ */
