64 lines
1.2 KiB
C
64 lines
1.2 KiB
C
/*
|
|
* SPDX-FileCopyrightText: Copyright (c) 2023 Carl Zeiss Meditec AG
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#ifndef ZEPHYR_DRIVERS_SENSOR_ADLTC2990_H
|
|
#define ZEPHYR_DRIVERS_SENSOR_ADLTC2990_H
|
|
|
|
#include <zephyr/types.h>
|
|
#include <zephyr/device.h>
|
|
#include <zephyr/drivers/gpio.h>
|
|
#include <zephyr/drivers/i2c.h>
|
|
#include <zephyr/drivers/sensor.h>
|
|
|
|
enum adltc2990_monitor_pins {
|
|
V1,
|
|
V2,
|
|
V3,
|
|
V4,
|
|
INTERNAL_TEMPERATURE,
|
|
SUPPLY_VOLTAGE
|
|
};
|
|
|
|
enum adltc2990_monitoring_type {
|
|
NOTHING,
|
|
VOLTAGE_DIFFERENTIAL,
|
|
VOLTAGE_SINGLEENDED,
|
|
TEMPERATURE
|
|
};
|
|
|
|
union voltage_divider_resistors {
|
|
struct {
|
|
uint32_t v1_r1_r2[2];
|
|
uint32_t v2_r1_r2[2];
|
|
};
|
|
struct {
|
|
uint32_t v3_r1_r2[2];
|
|
uint32_t v4_r1_r2[2];
|
|
};
|
|
};
|
|
|
|
struct pins_configuration {
|
|
uint32_t pins_current_resistor;
|
|
union voltage_divider_resistors voltage_divider_resistors;
|
|
};
|
|
|
|
struct adltc2990_data {
|
|
int32_t internal_temperature;
|
|
int32_t supply_voltage;
|
|
int32_t pins_v1_v2_values[2];
|
|
int32_t pins_v3_v4_values[2];
|
|
};
|
|
|
|
struct adltc2990_config {
|
|
struct i2c_dt_spec bus;
|
|
uint8_t temp_format;
|
|
uint8_t acq_format;
|
|
uint8_t measurement_mode[2];
|
|
struct pins_configuration pins_v1_v2;
|
|
struct pins_configuration pins_v3_v4;
|
|
};
|
|
|
|
#endif /* ZEPHYR_DRIVERS_SENSOR_ADLTC2990_H */
|