1 /* 2 * SPDX-FileCopyrightText: Copyright (c) 2023 Carl Zeiss Meditec AG 3 * SPDX-FileCopyrightText: Copyright (c) 2024 Jilay Sandeep Pandya 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef ZEPHYR_DRIVERS_SENSOR_ADLTC2990_H 8 #define ZEPHYR_DRIVERS_SENSOR_ADLTC2990_H 9 10 #include <zephyr/types.h> 11 #include <zephyr/device.h> 12 #include <zephyr/drivers/gpio.h> 13 #include <zephyr/drivers/i2c.h> 14 #include <zephyr/drivers/sensor.h> 15 16 enum adltc2990_monitor_pins { 17 V1, 18 V2, 19 V3, 20 V4, 21 INTERNAL_TEMPERATURE, 22 SUPPLY_VOLTAGE 23 }; 24 25 enum adltc2990_monitoring_type { 26 NOTHING, 27 VOLTAGE_DIFFERENTIAL, 28 VOLTAGE_SINGLEENDED, 29 TEMPERATURE 30 }; 31 32 union voltage_divider_resistors { 33 struct { 34 uint32_t v1_r1_r2[2]; 35 uint32_t v2_r1_r2[2]; 36 }; 37 struct { 38 uint32_t v3_r1_r2[2]; 39 uint32_t v4_r1_r2[2]; 40 }; 41 }; 42 43 struct pins_configuration { 44 uint32_t pins_current_resistor; 45 union voltage_divider_resistors voltage_divider_resistors; 46 }; 47 48 struct adltc2990_data { 49 uint8_t acq_format; 50 int32_t internal_temperature; 51 int32_t supply_voltage; 52 int32_t pins_v1_v2_values[2]; 53 int32_t pins_v3_v4_values[2]; 54 }; 55 56 struct adltc2990_config { 57 struct i2c_dt_spec bus; 58 uint8_t temp_format; 59 uint8_t measurement_mode[2]; 60 struct pins_configuration pins_v1_v2; 61 struct pins_configuration pins_v3_v4; 62 }; 63 64 #endif /* ZEPHYR_DRIVERS_SENSOR_ADLTC2990_H */ 65