Line data Source code
1 1 : /*
2 : * Copyright (c) 2021 Innoseis B.V
3 : *
4 : * SPDX-License-Identifier: Apache-2.0
5 : */
6 :
7 : /**
8 : * @file
9 : * @brief Header file for extended sensor API of TMP11X sensors
10 : * @ingroup tmp11x_interface
11 : */
12 :
13 : #ifndef ZEPHYR_INCLUDE_DRIVERS_SENSOR_TMP11X_H_
14 : #define ZEPHYR_INCLUDE_DRIVERS_SENSOR_TMP11X_H_
15 :
16 : /**
17 : * @brief TMP11X temperature sensors
18 : * @defgroup tmp11x_interface TMP11X
19 : * @ingroup sensor_interface_ext
20 : * @{
21 : */
22 :
23 : #include <zephyr/device.h>
24 : #include <zephyr/drivers/sensor.h>
25 : #include <sys/types.h>
26 :
27 : /**
28 : * @brief Custom sensor attributes for TMP11X
29 : */
30 1 : enum sensor_attribute_tmp_11x {
31 : /** Turn on power saving/one shot mode */
32 : SENSOR_ATTR_TMP11X_ONE_SHOT_MODE = SENSOR_ATTR_PRIV_START,
33 : /** Shutdown the sensor */
34 : SENSOR_ATTR_TMP11X_SHUTDOWN_MODE,
35 : /** Turn on continuous conversion */
36 : SENSOR_ATTR_TMP11X_CONTINUOUS_CONVERSION_MODE,
37 : /** Configure alert pin polarity */
38 : SENSOR_ATTR_TMP11X_ALERT_PIN_POLARITY,
39 : /** Configure alert mode */
40 : SENSOR_ATTR_TMP11X_ALERT_MODE,
41 : /** Configure alert pin mode for alert or DR*/
42 : SENSOR_ATTR_TMP11X_ALERT_PIN_SELECT,
43 : };
44 :
45 : /**
46 : * @name Alert pin support macros
47 : * @{
48 : */
49 1 : #define TMP11X_ALERT_PIN_ACTIVE_LOW 0 /**< Alert pin is active low */
50 1 : #define TMP11X_ALERT_PIN_ACTIVE_HIGH 1 /**< Alert pin is active high */
51 1 : #define TMP11X_ALERT_ALERT_MODE 0 /**< Alert mode */
52 1 : #define TMP11X_ALERT_THERM_MODE 1 /**< Therm mode */
53 1 : #define TMP11X_ALERT_PIN_ALERT_SEL 0 /**< Alert pin reflects the status of the alert flags */
54 1 : #define TMP11X_ALERT_PIN_DR_SEL 1 /**< Alert pin reflects the status of the data ready flag */
55 : /** @} */
56 :
57 : /**
58 : * @brief EEPROM size for TMP11X
59 : */
60 1 : #define EEPROM_TMP11X_SIZE (4 * sizeof(uint16_t))
61 :
62 : /**
63 : * @brief Read from EEPROM
64 : * @param dev Pointer to a tmp11x device
65 : * @param offset Offset in the EEPROM
66 : * @param data Pointer to a buffer to store the read data
67 : * @param len Length of the data to read
68 : * @return 0 on success, negative error code on failure
69 : */
70 1 : int tmp11x_eeprom_read(const struct device *dev, off_t offset, void *data, size_t len);
71 :
72 : /**
73 : * @brief Write to EEPROM
74 : * @param dev Pointer to a tmp11x device
75 : * @param offset Offset in the EEPROM
76 : * @param data Pointer to the data to write
77 : * @param len Length of the data to write
78 : * @return 0 on success, negative error code on failure
79 : */
80 1 : int tmp11x_eeprom_write(const struct device *dev, off_t offset, const void *data, size_t len);
81 :
82 : /**
83 : * @}
84 : */
85 :
86 : #endif /* ZEPHYR_INCLUDE_DRIVERS_SENSOR_TMP11X_H_ */
|