|  | /* | 
|  | * Copyright (c) 2018 Jan Van Winkel <jan.van_winkel@dxplore.eu> | 
|  | * | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  | #ifndef __SENSOR_MS5837_H__ | 
|  | #define __SENSOR_MS5837_H__ | 
|  |  | 
|  | #include <zephyr/types.h> | 
|  | #include <device.h> | 
|  | #include <drivers/i2c.h> | 
|  |  | 
|  | #define MS5837_CMD_RESET 0x1E | 
|  |  | 
|  | #define MS5837_CMD_CONV_P_256  0x40 | 
|  | #define MS5837_CMD_CONV_P_512  0x42 | 
|  | #define MS5837_CMD_CONV_P_1024 0x44 | 
|  | #define MS5837_CMD_CONV_P_2048 0x46 | 
|  | #define MS5837_CMD_CONV_P_4096 0x48 | 
|  | #define MS5837_CMD_CONV_P_8192 0x4A | 
|  |  | 
|  | #define MS5837_CMD_CONV_T_256  0x50 | 
|  | #define MS5837_CMD_CONV_T_512  0x52 | 
|  | #define MS5837_CMD_CONV_T_1024 0x54 | 
|  | #define MS5837_CMD_CONV_T_2048 0x56 | 
|  | #define MS5837_CMD_CONV_T_4096 0x58 | 
|  | #define MS5837_CMD_CONV_T_8192 0x5A | 
|  |  | 
|  | #define MS5837_CMD_CONV_READ_ADC 0x00 | 
|  |  | 
|  | #define MS5837_CMD_CONV_READ_CRC      0xA0 | 
|  | #define MS5837_CMD_CONV_READ_SENS_T1  0xA2 | 
|  | #define MS5837_CMD_CONV_READ_OFF_T1   0xA4 | 
|  | #define MS5837_CMD_CONV_READ_TCS      0xA6 | 
|  | #define MS5837_CMD_CONV_READ_TCO      0xA8 | 
|  | #define MS5837_CMD_CONV_READ_T_REF    0xAA | 
|  | #define MS5837_CMD_CONV_READ_TEMPSENS 0xAC | 
|  |  | 
|  | #define MS5837_ADC_READ_DELAY_256  1 | 
|  | #define MS5837_ADC_READ_DELAY_512  2 | 
|  | #define MS5837_ADC_READ_DELAY_1024 3 | 
|  | #define MS5837_ADC_READ_DELAY_2048 5 | 
|  | #define MS5837_ADC_READ_DELAY_4086 10 | 
|  | #define MS5837_ADC_READ_DELAY_8129 20 | 
|  |  | 
|  | struct ms5837_data { | 
|  |  | 
|  | const struct device *i2c_master; | 
|  |  | 
|  | /* Calibration values */ | 
|  | uint16_t sens_t1; | 
|  | uint16_t off_t1; | 
|  | uint16_t tcs; | 
|  | uint16_t tco; | 
|  | uint16_t t_ref; | 
|  | uint16_t tempsens; | 
|  |  | 
|  | /* Measured values */ | 
|  | int32_t pressure; | 
|  | int32_t temperature; | 
|  |  | 
|  | /* Conversion commands */ | 
|  | uint8_t presure_conv_cmd; | 
|  | uint8_t temperature_conv_cmd; | 
|  |  | 
|  | /* Conversion delay in ms*/ | 
|  | uint8_t presure_conv_delay; | 
|  | uint8_t temperature_conv_delay; | 
|  |  | 
|  | }; | 
|  |  | 
|  | struct ms5837_config { | 
|  | const char *i2c_name; | 
|  | uint8_t i2c_address; | 
|  | }; | 
|  |  | 
|  | #endif /* __SENSOR_MS5837_H__ */ |