blob: d3f73ccd11b8d03511c8296ec39456fe7f729345 [file] [log] [blame]
/*
* Copyright (c) 2023 Balthazar Deliers
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_INCLUDE_DRIVERS_SENSOR_AGS10_H_
#define ZEPHYR_INCLUDE_DRIVERS_SENSOR_AGS10_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <zephyr/device.h>
#include <zephyr/drivers/i2c.h>
#define AGS10_CMD_DATA_ACQUISITION 0x00
#define AGS10_CMD_ZERO_POINT_CALIBRATION 0x01
#define AGS10_CMD_READ_VERSION 0x11
#define AGS10_CMD_READ_RESISTANCE 0x20
#define AGS10_CMD_MODIFY_SLAVE_ADDRESS 0x21
#define AGS10_REG_ZERO_POINT_CALIBRATION_RESET 0xFFFF /* Reset to the factory value */
#define AGS10_REG_ZERO_POINT_CALIBRATION_SET 0x0000 /* Set sensor resistance to zero-point */
#define AGS10_REG_STATUS_NRDY_READY 0x00 /* Device is ready */
#define AGS10_REG_STATUS_CH_PPB 0x00 /* Unit is PPB */
#define AGS10_MSK_STATUS 0x0F
#define AGS10_MSK_STATUS_NRDY 0x01
#define AGS10_MSK_STATUS_CH 0x0E
struct ags10_config {
struct i2c_dt_spec bus;
};
struct ags10_data {
uint32_t tvoc_ppb;
uint8_t status;
uint32_t version;
};
#ifdef __cplusplus
}
#endif
#endif /* ZEPHYR_INCLUDE_DRIVERS_SENSOR_AGS10_H_ */