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