1 /* 2 * Copyright (C) 2017-2024 Alibaba Group Holding Limited 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19 /****************************************************************************** 20 * @file sensor.h 21 * @brief Header File for SENSOR Driver 22 * @version V1.0 23 * @date 15. June 2020 24 * @model sensor 25 ******************************************************************************/ 26 27 #ifndef _DRV_SENSOR_H_ 28 #define _DRV_SENSOR_H_ 29 30 #include <drv/common.h> 31 #include <soc.h> 32 33 typedef enum { 34 SENSOR_VDS_3V3_3V3 = 1, 35 SENSOR_VDS_2V5_3V3, 36 SENSOR_VDS_1V8_1V8, 37 SENSOR_VDS_1V5_1V8, 38 SENSOR_VDS_1V2_1V2, 39 SENSOR_VDS_1V1_1V2 40 }drv_sensor_vds_t; 41 42 typedef enum { 43 SENSOR_VHS_RANGE_15 = 0, 44 SENSOR_VHS_RANGE_12, 45 SENSOR_VHS_RANGE_9, 46 SENSOR_VHS_RANGE_6, 47 }drv_sensor_vhs_t; 48 49 typedef enum { 50 SENSOR_VLS_RANGE_6 = 0, 51 SENSOR_VLS_RANGE_9, 52 SENSOR_VLS_RANGE_12, 53 SENSOR_VLS_RANGE_15, 54 }drv_sensor_vls_t; 55 56 typedef enum { 57 SENSOR_TDHS_NEG_55 = 0, ///< -55 58 SENSOR_TDHS_NEG_50, 59 SENSOR_TDHS_NEG_45, 60 SENSOR_TDHS_NEG_40, 61 SENSOR_TDHS_NEG_35, 62 SENSOR_TDHS_NEG_30, 63 SENSOR_TDHS_NEG_25, 64 SENSOR_TDHS_NEG_20, 65 SENSOR_TDHS_NEG_15, 66 SENSOR_TDHS_NEG_10, 67 SENSOR_TDHS_NEG_5, 68 SENSOR_TDHS_NEG_0, 69 SENSOR_TDHS_POS_5, ///< +5 70 SENSOR_TDHS_POS_10, 71 SENSOR_TDHS_POS_15, 72 SENSOR_TDHS_POS_20, 73 SENSOR_TDHS_POS_25, 74 SENSOR_TDHS_POS_30, 75 SENSOR_TDHS_POS_35, 76 SENSOR_TDHS_POS_40, 77 SENSOR_TDHS_POS_45, 78 SENSOR_TDHS_POS_50, 79 SENSOR_TDHS_POS_55, 80 SENSOR_TDHS_POS_60, 81 SENSOR_TDHS_POS_65, 82 SENSOR_TDHS_POS_70, 83 SENSOR_TDHS_POS_75, 84 SENSOR_TDHS_POS_80, 85 SENSOR_TDHS_POS_85, 86 SENSOR_TDHS_POS_90, 87 SENSOR_TDHS_POS_95, 88 SENSOR_TDHS_POS_100, 89 SENSOR_TDHS_POS_105, 90 SENSOR_TDHS_POS_110, 91 SENSOR_TDHS_POS_115, 92 SENSOR_TDHS_POS_120, 93 SENSOR_TDHS_POS_125 94 }drv_sensor_tdhs_t; 95 96 typedef enum { 97 SENSOR_TDLS_NEG_55 = 0, ///< -55 98 SENSOR_TDLS_NEG_50, 99 SENSOR_TDLS_NEG_45, 100 SENSOR_TDLS_NEG_40, 101 SENSOR_TDLS_NEG_35, 102 SENSOR_TDLS_NEG_30, 103 SENSOR_TDLS_NEG_25, 104 SENSOR_TDLS_NEG_20, 105 SENSOR_TDLS_NEG_15, 106 SENSOR_TDLS_NEG_10, 107 SENSOR_TDLS_NEG_5, 108 SENSOR_TDLS_NEG_0, 109 SENSOR_TDLS_POS_5, ///< +5 110 SENSOR_TDLS_POS_10, 111 SENSOR_TDLS_POS_15, 112 SENSOR_TDLS_POS_20, 113 }drv_sensor_tdls_t; 114 115 typedef enum { 116 SENSOR_FHS_RANGE_50 = 0, 117 SENSOR_FHS_RANGE_30, 118 SENSOR_FHS_RANGE_10, 119 SENSOR_FHS_RANGE_5, 120 }drv_sensor_fhs_t; 121 122 typedef enum { 123 SENSOR_FLS_RANGE_50 = 0, 124 SENSOR_FLS_RANGE_30, 125 SENSOR_FLS_RANGE_10, 126 SENSOR_FLS_RANGE_5, 127 }drv_sensor_fls_t; 128 129 typedef enum { 130 SENSOR_FHS_FREQ_33M = 0, 131 SENSOR_FHS_FREQ_66M, 132 SENSOR_FHS_FREQ_24M, 133 SENSOR_FHS_FREQ_12M, 134 SENSOR_FHS_FREQ_99M, 135 SENSOR_FHS_FREQ_198M, 136 SENSOR_FHS_FREQ_72M, 137 SENSOR_FHS_FREQ_36M, 138 }drv_sensor_freq_t; 139 140 typedef enum { 141 SENSOR_WARN_H = 0, 142 SENSOR_WARN_L, 143 SENSOR_WARN_RST, 144 }drv_sensor_warn_t; 145 146 /** 147 \brief Initialize Sensor VD 148 \param[in] vds Voltage range 149 \param[in] vhs Voltage high threshold 150 \param[in] vls Voltage low threshold 151 \param[in] vtm Used to modify the threshold value of the voltage detection point 152 \return Error code 153 */ 154 csi_error_t drv_sensor_vd_init(drv_sensor_vds_t vds,drv_sensor_vhs_t vhs,drv_sensor_vls_t vls,uint8_t vtm); 155 156 /** 157 \brief Get vd warn 158 \param[in] warn Vd warn select 159 \return Vd warn code 160 */ 161 uint32_t drv_sensor_vd_get_warn(drv_sensor_warn_t warn); 162 163 /** 164 \brief Initialize Sensor td 165 \param[in] hs Temp high threshold 166 \param[in] ls Temp low threshold 167 \return Error code 168 */ 169 csi_error_t drv_sensor_td_init(drv_sensor_tdhs_t hs,drv_sensor_tdls_t ls); 170 171 /** 172 \brief Get td warn 173 \param[in] warn Td warn select 174 \return Td warn code 175 */ 176 uint32_t drv_sensor_td_get_warn(drv_sensor_warn_t warn); 177 178 /** 179 \brief Initialize Sensor FD 180 \param[in] hs Temp high threshold 181 \param[in] ls Temp low threshold 182 \return Error code 183 */ 184 csi_error_t drv_sensor_fd_init(drv_sensor_freq_t freq,drv_sensor_fhs_t fhs,drv_sensor_fls_t fls); 185 186 /** 187 \brief Get fd warn 188 \param[in] warn Fd warn select 189 \return FD warn code 190 */ 191 uint32_t drv_sensor_fd_get_warn(drv_sensor_warn_t warn); 192 193 #endif /* _DRV_SENSOR_H_ */ 194