1 /* 2 * Copyright 2022 NXP 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef _FSL_P3T1755_H_ 8 #define _FSL_P3T1755_H_ 9 10 #include "fsl_common.h" 11 12 /* Registers. */ 13 #define P3T1755_TEMPERATURE_REG (0x00U) 14 #define P3T1755_CONFIG_REG (0x01U) 15 16 /*! @brief Define sensor access function. */ 17 typedef status_t (*sensor_write_transfer_func_t)(uint8_t deviceAddress, 18 uint32_t regAddress, 19 uint8_t *regData, 20 size_t dataSize); 21 typedef status_t (*sensor_read_transfer_func_t)(uint8_t deviceAddress, 22 uint32_t regAddress, 23 uint8_t *regData, 24 size_t dataSize); 25 26 typedef struct _p3t1755_handle 27 { 28 sensor_write_transfer_func_t writeTransfer; 29 sensor_read_transfer_func_t readTransfer; 30 uint8_t sensorAddress; 31 } p3t1755_handle_t; 32 33 typedef struct _p3t1755_config 34 { 35 sensor_write_transfer_func_t writeTransfer; 36 sensor_read_transfer_func_t readTransfer; 37 uint8_t sensorAddress; 38 } p3t1755_config_t; 39 40 #if defined(__cplusplus) 41 extern "C" { 42 #endif 43 44 /*! 45 * @brief Create handle for P3T1755, reset the sensor per user configuration. 46 * 47 * @param p3t1755_handle The pointer to #p3t1755_handle_t. 48 * 49 * @return kStatus_Success if success or kStatus_Fail if error. 50 */ 51 status_t P3T1755_Init(p3t1755_handle_t *handle, p3t1755_config_t *config); 52 53 /*! 54 * @brief Write Register with register data buffer. 55 * 56 * @param handle The pointer to #p3t1755_handle_t. 57 * @param regAddress register address to write. 58 * @param regData The pointer to data buffer to be write to the reg. 59 * @param dataSize Size of the regData. 60 * 61 * @return kStatus_Success if success or kStatus_Fail if error. 62 */ 63 status_t P3T1755_WriteReg(p3t1755_handle_t *handle, uint32_t regAddress, uint8_t *regData, size_t dataSize); 64 65 /*! 66 * @brief Read Register to speficied data buffer. 67 * 68 * @param handle The pointer to #p3t1755_handle_t. 69 * @param regAddress register address to read. 70 * @param regData The pointer to data buffer to store the read out data. 71 * @param dataSize Size of the regData to be read. 72 * 73 * @return kStatus_Success if success or kStatus_Fail if error. 74 */ 75 status_t P3T1755_ReadReg(p3t1755_handle_t *handle, uint32_t regAddress, uint8_t *regData, size_t dataSize); 76 77 /*! 78 * @brief Read temperature data. 79 * 80 * @param handle The pointer to #p3t1755_handle_t. 81 * @param temperature The pointer to temperature data. 82 * 83 * @return kStatus_Success if success or kStatus_Fail if error. 84 */ 85 status_t P3T1755_ReadTemperature(p3t1755_handle_t *handle, double *temperature); 86 #if defined(__cplusplus) 87 } 88 #endif /* __cplusplus */ 89 90 #endif /* _FSL_P3T1755_H_ */ 91