1 /* 2 * Copyright (c) 2023 Kurtis Dinelle 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 /** 8 * @file 9 * @brief Extended public API for AMS's TSL2591 ambient light sensor 10 * 11 * This exposes attributes for the TSL2591 which can be used for 12 * setting the on-chip gain, integration time, and persist filter parameters. 13 */ 14 15 #ifndef ZEPHYR_INCLUDE_DRIVERS_SENSOR_TSL2591_H_ 16 #define ZEPHYR_INCLUDE_DRIVERS_SENSOR_TSL2591_H_ 17 18 #include <zephyr/drivers/sensor.h> 19 20 #ifdef __cplusplus 21 extern "C" { 22 #endif 23 24 enum sensor_attribute_tsl2591 { 25 /* Sensor ADC Gain Mode 26 * Rather than set this value directly, can only be set to operate in one of four modes: 27 * 28 * TSL2591_SENSOR_GAIN_LOW 29 * TSL2591_SENSOR_GAIN_MED 30 * TSL2591_SENSOR_GAIN_HIGH 31 * TSL2591_SENSOR_GAIN_MAX 32 * 33 * See datasheet for actual typical gain scales these modes correspond to. 34 */ 35 SENSOR_ATTR_GAIN_MODE = SENSOR_ATTR_PRIV_START + 1, 36 37 /* Sensor ADC Integration Time (in ms) 38 * Can only be set to one of six values: 39 * 40 * 100, 200, 300, 400, 500, or 600 41 */ 42 SENSOR_ATTR_INTEGRATION_TIME, 43 44 /* Sensor ALS Interrupt Persist Filter 45 * Represents the number of consecutive sensor readings outside of a set threshold 46 * before triggering an interrupt. Can only be set to one of sixteen values: 47 * 48 * 0, 1, 2, 3, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, or 60 49 * 50 * Setting this to 0 causes an interrupt to generate every ALS cycle, 51 * regardless of threshold. 52 * Setting this to 1 is equivalent to the no-persist interrupt mode. 53 */ 54 SENSOR_ATTR_INT_PERSIST 55 }; 56 57 enum sensor_gain_tsl2591 { 58 TSL2591_SENSOR_GAIN_LOW, 59 TSL2591_SENSOR_GAIN_MED, 60 TSL2591_SENSOR_GAIN_HIGH, 61 TSL2591_SENSOR_GAIN_MAX 62 }; 63 64 #ifdef __cplusplus 65 } 66 #endif 67 68 #endif /* ZEPHYR_INCLUDE_DRIVERS_SENSOR_TSL2591_H_ */ 69