TI tmp1075 driver implemented based on tmp108 driver. The driver initializes the sensor based on the DTS. Added tmp1075 example overlay file to thermometer sample. All you need to do to use the sensor is to connect the I2C and optionally interrupt line. To see default DTS configuration option inspect `ti,tmp1075.yaml` bindings file and sensor spec. Signed-off-by: Paweł Czaplewski <pawel.czaplewski@arrow.com>
55 lines
1.5 KiB
C
55 lines
1.5 KiB
C
/*
|
|
* Copyright (c) 2024 Arrow Electronics.
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#include <zephyr/drivers/sensor.h>
|
|
#include <zephyr/logging/log.h>
|
|
#include <zephyr/kernel.h>
|
|
|
|
#include "tmp1075.h"
|
|
|
|
LOG_MODULE_DECLARE(TMP1075, CONFIG_SENSOR_LOG_LEVEL);
|
|
|
|
/*
|
|
* @brief GPIO alert line interrupt callback
|
|
* @param gpio - not used
|
|
* @param cb - callback structure for interrupt handler
|
|
* @param pins - not used
|
|
*/
|
|
void tmp1075_trigger_handle_alert(const struct device *gpio, struct gpio_callback *cb,
|
|
gpio_port_pins_t pins)
|
|
{
|
|
struct tmp1075_data *drv_data = CONTAINER_OF(cb, struct tmp1075_data, temp_alert_gpio_cb);
|
|
/* Successful read, call set callbacks */
|
|
if (drv_data->temp_alert_handler) {
|
|
drv_data->temp_alert_handler(drv_data->tmp1075_dev, drv_data->temp_alert_trigger);
|
|
}
|
|
}
|
|
|
|
/*
|
|
* @brief callback implementation for setting the custom trigger handler in the userspace
|
|
* @param dev - sensor device struct pointer
|
|
* @param trig - trigger struct pointer to be set up
|
|
* @param handler - pointer to custom callback handler which the user would like to use
|
|
* @return 0 if ok - -ENOTSUP in case of err
|
|
*/
|
|
int tmp1075_trigger_set(const struct device *dev, const struct sensor_trigger *trig,
|
|
sensor_trigger_handler_t handler)
|
|
{
|
|
if (!device_is_ready(dev)) {
|
|
return -ENODEV;
|
|
}
|
|
|
|
struct tmp1075_data *drv_data = dev->data;
|
|
|
|
if (trig->type == SENSOR_TRIG_THRESHOLD) {
|
|
drv_data->temp_alert_handler = handler;
|
|
drv_data->temp_alert_trigger = trig;
|
|
return 0;
|
|
}
|
|
|
|
return -ENOTSUP;
|
|
}
|