vlx lib
common_driver.h@0:bc9f26b5dadf, 2015-02-08 (annotated)
- Committer:
- vijaynvr
- Date:
- Sun Feb 08 14:26:51 2015 +0000
- Revision:
- 0:bc9f26b5dadf
working
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vijaynvr | 0:bc9f26b5dadf | 1 | /******************************************************************************* |
vijaynvr | 0:bc9f26b5dadf | 2 | ################################################################################ |
vijaynvr | 0:bc9f26b5dadf | 3 | # (C) STMicroelectronics 2014 |
vijaynvr | 0:bc9f26b5dadf | 4 | # |
vijaynvr | 0:bc9f26b5dadf | 5 | # This program is free software; you can redistribute it and/or modify it under |
vijaynvr | 0:bc9f26b5dadf | 6 | # the terms of the GNU General Public License version 2 and only version 2 as |
vijaynvr | 0:bc9f26b5dadf | 7 | # published by the Free Software Foundation. |
vijaynvr | 0:bc9f26b5dadf | 8 | # |
vijaynvr | 0:bc9f26b5dadf | 9 | # This program is distributed in the hope that it will be useful, but WITHOUT |
vijaynvr | 0:bc9f26b5dadf | 10 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
vijaynvr | 0:bc9f26b5dadf | 11 | # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more |
vijaynvr | 0:bc9f26b5dadf | 12 | # details. |
vijaynvr | 0:bc9f26b5dadf | 13 | # |
vijaynvr | 0:bc9f26b5dadf | 14 | # You should have received a copy of the GNU General Public License along with |
vijaynvr | 0:bc9f26b5dadf | 15 | # this program; if not, write to the Free Software Foundation, Inc., |
vijaynvr | 0:bc9f26b5dadf | 16 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
vijaynvr | 0:bc9f26b5dadf | 17 | # |
vijaynvr | 0:bc9f26b5dadf | 18 | #------------------------------------------------------------------------------ |
vijaynvr | 0:bc9f26b5dadf | 19 | # Imaging Division |
vijaynvr | 0:bc9f26b5dadf | 20 | ################################################################################ |
vijaynvr | 0:bc9f26b5dadf | 21 | ********************************************************************************/ |
vijaynvr | 0:bc9f26b5dadf | 22 | |
vijaynvr | 0:bc9f26b5dadf | 23 | /*! |
vijaynvr | 0:bc9f26b5dadf | 24 | *\file common_driver.h |
vijaynvr | 0:bc9f26b5dadf | 25 | *\brief Application-level methods used for generic, system or identification operations. |
vijaynvr | 0:bc9f26b5dadf | 26 | */ |
vijaynvr | 0:bc9f26b5dadf | 27 | |
vijaynvr | 0:bc9f26b5dadf | 28 | #ifndef _RANGE_DRIVER |
vijaynvr | 0:bc9f26b5dadf | 29 | #define _RANGE_DRIVER |
vijaynvr | 0:bc9f26b5dadf | 30 | |
vijaynvr | 0:bc9f26b5dadf | 31 | #include "definitions.h" |
vijaynvr | 0:bc9f26b5dadf | 32 | #include "platform.h" |
vijaynvr | 0:bc9f26b5dadf | 33 | //----------------------------------------------------------------------------- |
vijaynvr | 0:bc9f26b5dadf | 34 | // module imports |
vijaynvr | 0:bc9f26b5dadf | 35 | //----------------------------------------------------------------------------- |
vijaynvr | 0:bc9f26b5dadf | 36 | |
vijaynvr | 0:bc9f26b5dadf | 37 | // "circle_types.h" included for following definition : |
vijaynvr | 0:bc9f26b5dadf | 38 | //#ifndef __cplusplus |
vijaynvr | 0:bc9f26b5dadf | 39 | //typedef enum {FALSE = 0, TRUE = !FALSE} bool; |
vijaynvr | 0:bc9f26b5dadf | 40 | //#endif |
vijaynvr | 0:bc9f26b5dadf | 41 | |
vijaynvr | 0:bc9f26b5dadf | 42 | |
vijaynvr | 0:bc9f26b5dadf | 43 | //----------------------------------------------------------------------------- |
vijaynvr | 0:bc9f26b5dadf | 44 | // constant definitions |
vijaynvr | 0:bc9f26b5dadf | 45 | //----------------------------------------------------------------------------- |
vijaynvr | 0:bc9f26b5dadf | 46 | |
vijaynvr | 0:bc9f26b5dadf | 47 | // API Version Strings |
vijaynvr | 0:bc9f26b5dadf | 48 | #define API_MAJOR_VERSION 01 |
vijaynvr | 0:bc9f26b5dadf | 49 | #define API_MINOR_VERSION 00 |
vijaynvr | 0:bc9f26b5dadf | 50 | #define API_BUILD_NUMBER 00 |
vijaynvr | 0:bc9f26b5dadf | 51 | #define API_CODE_REVISION 1590 |
vijaynvr | 0:bc9f26b5dadf | 52 | |
vijaynvr | 0:bc9f26b5dadf | 53 | // register addresses |
vijaynvr | 0:bc9f26b5dadf | 54 | #define SYSTEM_MODE_GPIO0 0x10 |
vijaynvr | 0:bc9f26b5dadf | 55 | #define SYSTEM_MODE_GPIO1 0x11 |
vijaynvr | 0:bc9f26b5dadf | 56 | #define SYSTEM_HISTORY_CTRL 0x12 |
vijaynvr | 0:bc9f26b5dadf | 57 | #define SYSTEM_INTERRUPT_CONFIG_GPIO 0x14 |
vijaynvr | 0:bc9f26b5dadf | 58 | #define SYSTEM_INTERRUPT_CLEAR 0x15 |
vijaynvr | 0:bc9f26b5dadf | 59 | #define SYSTEM_FRESH_OUT_OF_RESET 0x16 |
vijaynvr | 0:bc9f26b5dadf | 60 | #define SYSTEM_GROUPED_PARAMETER_HOLD 0x17 |
vijaynvr | 0:bc9f26b5dadf | 61 | |
vijaynvr | 0:bc9f26b5dadf | 62 | #define RESULT_INTERRUPT_STATUS_GPIO 0x4F |
vijaynvr | 0:bc9f26b5dadf | 63 | |
vijaynvr | 0:bc9f26b5dadf | 64 | #define PAD_I2C_CONFIG 0x13D |
vijaynvr | 0:bc9f26b5dadf | 65 | |
vijaynvr | 0:bc9f26b5dadf | 66 | #define I2C_SLAVE_DEVICE_ADDRESS 0x212 |
vijaynvr | 0:bc9f26b5dadf | 67 | |
vijaynvr | 0:bc9f26b5dadf | 68 | #define SYSTEM_FATAL_ERROR_CODE 0x290 |
vijaynvr | 0:bc9f26b5dadf | 69 | #define SYSTEM_FATAL_ERROR_STATUS 0x291 |
vijaynvr | 0:bc9f26b5dadf | 70 | |
vijaynvr | 0:bc9f26b5dadf | 71 | |
vijaynvr | 0:bc9f26b5dadf | 72 | |
vijaynvr | 0:bc9f26b5dadf | 73 | // PAD_I2C_CONFIG |
vijaynvr | 0:bc9f26b5dadf | 74 | #define I2C_1v2_PAD_VOLTAGE 0x01 |
vijaynvr | 0:bc9f26b5dadf | 75 | #define I2C_2v8_PAD_VOLTAGE 0x02 |
vijaynvr | 0:bc9f26b5dadf | 76 | |
vijaynvr | 0:bc9f26b5dadf | 77 | // SYSTEM_INTERRUPT_CONFIG_GPIO |
vijaynvr | 0:bc9f26b5dadf | 78 | #define CONFIG_GPIO_INTERRUPT_DISABLED 0x00 |
vijaynvr | 0:bc9f26b5dadf | 79 | #define CONFIG_GPIO_INTERRUPT_LEVEL_LOW 0x01 |
vijaynvr | 0:bc9f26b5dadf | 80 | #define CONFIG_GPIO_INTERRUPT_LEVEL_HIGH 0x02 |
vijaynvr | 0:bc9f26b5dadf | 81 | #define CONFIG_GPIO_INTERRUPT_OUT_OF_WINDOW 0x03 |
vijaynvr | 0:bc9f26b5dadf | 82 | #define CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY 0x04 |
vijaynvr | 0:bc9f26b5dadf | 83 | |
vijaynvr | 0:bc9f26b5dadf | 84 | // SYSTEM_MODE_GPIOx |
vijaynvr | 0:bc9f26b5dadf | 85 | #define GPIOx_MODE_SELECT_RANGING 0x00 |
vijaynvr | 0:bc9f26b5dadf | 86 | #define GPIOx_MODE_SELECT_ALS 0x01 |
vijaynvr | 0:bc9f26b5dadf | 87 | |
vijaynvr | 0:bc9f26b5dadf | 88 | #define GPIOx_POLARITY_SELECT_OFF 0x00 |
vijaynvr | 0:bc9f26b5dadf | 89 | #define GPIOx_POLARITY_SELECT_ON 0x01 |
vijaynvr | 0:bc9f26b5dadf | 90 | #define GPIOx_POLARITY_SELECT_CLEARED 0xDF |
vijaynvr | 0:bc9f26b5dadf | 91 | |
vijaynvr | 0:bc9f26b5dadf | 92 | #define GPIOx_MODE_SELECT 0x01 |
vijaynvr | 0:bc9f26b5dadf | 93 | #define GPIOx_POLARITY_SELECT 0x20 |
vijaynvr | 0:bc9f26b5dadf | 94 | |
vijaynvr | 0:bc9f26b5dadf | 95 | #define GPIOx_SELECT_OFF 0x00 |
vijaynvr | 0:bc9f26b5dadf | 96 | #define GPIOx_SELECT_MEASURE_READY 0x01 |
vijaynvr | 0:bc9f26b5dadf | 97 | #define GPIOx_SELECT_THRESHOLD_OUTPUT 0x02 |
vijaynvr | 0:bc9f26b5dadf | 98 | #define GPIOx_SELECT_BLANK_IN 0x03 |
vijaynvr | 0:bc9f26b5dadf | 99 | #define GPIOx_SELECT_BLANK_OUT 0x04 |
vijaynvr | 0:bc9f26b5dadf | 100 | #define GPIOx_SELECT_START_STOP 0x05 |
vijaynvr | 0:bc9f26b5dadf | 101 | #define GPIOx_SELECT_DISABLED 0x06 |
vijaynvr | 0:bc9f26b5dadf | 102 | #define GPIOx_SELECT_COMBINED_THRESHOLD_OUTPUT 0x07 |
vijaynvr | 0:bc9f26b5dadf | 103 | #define GPIOx_SELECT_GPIO_INTERRUPT_OUTPUT 0x08 |
vijaynvr | 0:bc9f26b5dadf | 104 | |
vijaynvr | 0:bc9f26b5dadf | 105 | // SYSTEM_HISTORY_CTRL |
vijaynvr | 0:bc9f26b5dadf | 106 | #define HISTORY_BUFFER_ENABLE 0x01 |
vijaynvr | 0:bc9f26b5dadf | 107 | #define HISTORY_BUFFER_DISABLE 0x00 |
vijaynvr | 0:bc9f26b5dadf | 108 | |
vijaynvr | 0:bc9f26b5dadf | 109 | #define HISTORY_BUFFER_ENABLED 0x01 |
vijaynvr | 0:bc9f26b5dadf | 110 | #define HISTORY_BUFFER_MODE 0x02 |
vijaynvr | 0:bc9f26b5dadf | 111 | #define HISTORY_BUFFER_CLEARED 0x04 |
vijaynvr | 0:bc9f26b5dadf | 112 | |
vijaynvr | 0:bc9f26b5dadf | 113 | #define HISTORY_BUFFER_RANGING_MODE 0x00 |
vijaynvr | 0:bc9f26b5dadf | 114 | #define HISTORY_BUFFER_ALS_MODE 0x01 |
vijaynvr | 0:bc9f26b5dadf | 115 | |
vijaynvr | 0:bc9f26b5dadf | 116 | // SYSTEM_INTERRUPT_CLEAR |
vijaynvr | 0:bc9f26b5dadf | 117 | #define INTERRUPT_CLEAR_RANGING 0x01 |
vijaynvr | 0:bc9f26b5dadf | 118 | #define INTERRUPT_CLEAR_ALS 0x02 |
vijaynvr | 0:bc9f26b5dadf | 119 | #define INTERRUPT_CLEAR_ERROR 0x04 |
vijaynvr | 0:bc9f26b5dadf | 120 | |
vijaynvr | 0:bc9f26b5dadf | 121 | // RESULT_INTERRUPT_STATUS_GPIO |
vijaynvr | 0:bc9f26b5dadf | 122 | #define RES_INT_STAT_GPIO_NO_ERROR 0x00 |
vijaynvr | 0:bc9f26b5dadf | 123 | #define RES_INT_STAT_GPIO_LOW_LEVEL_THRESHOLD 0x01 |
vijaynvr | 0:bc9f26b5dadf | 124 | #define RES_INT_STAT_GPIO_HIGH_LEVEL_THRESHOLD 0x02 |
vijaynvr | 0:bc9f26b5dadf | 125 | #define RES_INT_STAT_GPIO_OUT_OF_WINDOW 0x03 |
vijaynvr | 0:bc9f26b5dadf | 126 | #define RES_INT_STAT_GPIO_NEW_SAMPLE_READY 0x04 |
vijaynvr | 0:bc9f26b5dadf | 127 | |
vijaynvr | 0:bc9f26b5dadf | 128 | |
vijaynvr | 0:bc9f26b5dadf | 129 | //----------------------------------------------------------------------------- |
vijaynvr | 0:bc9f26b5dadf | 130 | // global variable declarations |
vijaynvr | 0:bc9f26b5dadf | 131 | //----------------------------------------------------------------------------- |
vijaynvr | 0:bc9f26b5dadf | 132 | |
vijaynvr | 0:bc9f26b5dadf | 133 | //----------------------------------------------------------------------------- |
vijaynvr | 0:bc9f26b5dadf | 134 | // method definitions |
vijaynvr | 0:bc9f26b5dadf | 135 | //----------------------------------------------------------------------------- |
vijaynvr | 0:bc9f26b5dadf | 136 | |
vijaynvr | 0:bc9f26b5dadf | 137 | /*! |
vijaynvr | 0:bc9f26b5dadf | 138 | * |
vijaynvr | 0:bc9f26b5dadf | 139 | */ |
vijaynvr | 0:bc9f26b5dadf | 140 | sensor_error common_initialise(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 141 | |
vijaynvr | 0:bc9f26b5dadf | 142 | /*! |
vijaynvr | 0:bc9f26b5dadf | 143 | *\brief Device setup for Ranging and ALS operations.\n |
vijaynvr | 0:bc9f26b5dadf | 144 | * |
vijaynvr | 0:bc9f26b5dadf | 145 | * To apply these settings the operation bits (bit 0) in the SYSRANGE_START SYSALS_START Registers must be cleared. \n |
vijaynvr | 0:bc9f26b5dadf | 146 | * |
vijaynvr | 0:bc9f26b5dadf | 147 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 148 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 149 | */ |
vijaynvr | 0:bc9f26b5dadf | 150 | sensor_error common_set_static_config(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 151 | |
vijaynvr | 0:bc9f26b5dadf | 152 | /*! |
vijaynvr | 0:bc9f26b5dadf | 153 | *\brief Report device Identification Info. |
vijaynvr | 0:bc9f26b5dadf | 154 | * |
vijaynvr | 0:bc9f26b5dadf | 155 | * Return the contents of the Identification block registers, in the following order : \n |
vijaynvr | 0:bc9f26b5dadf | 156 | * |
vijaynvr | 0:bc9f26b5dadf | 157 | * IDENTIFICATION_MODEL_ID \n |
vijaynvr | 0:bc9f26b5dadf | 158 | * IDENTIFICATION_MODEL_REV_MAJOR \n |
vijaynvr | 0:bc9f26b5dadf | 159 | * IDENTIFICATION_MODEL_REV_MINOR \n |
vijaynvr | 0:bc9f26b5dadf | 160 | * IDENTIFICATION_MODULE_REV_MAJOR \n |
vijaynvr | 0:bc9f26b5dadf | 161 | * IDENTIFICATION_MODULE_REV_MINOR \n |
vijaynvr | 0:bc9f26b5dadf | 162 | * IDENTIFICATION_NVM_REVISION_ID \n |
vijaynvr | 0:bc9f26b5dadf | 163 | * IDENTIFICATION_MASK_REVISION_ID \n |
vijaynvr | 0:bc9f26b5dadf | 164 | * IDENTIFICATION_month \n |
vijaynvr | 0:bc9f26b5dadf | 165 | * IDENTIFICATION_year \n |
vijaynvr | 0:bc9f26b5dadf | 166 | * IDENTIFICATION_phase \n |
vijaynvr | 0:bc9f26b5dadf | 167 | * IDENTIFICATION_day \n |
vijaynvr | 0:bc9f26b5dadf | 168 | * IDENTIFICATION_time \n |
vijaynvr | 0:bc9f26b5dadf | 169 | * IDENTIFICATION_code \n |
vijaynvr | 0:bc9f26b5dadf | 170 | * IDENTIFICATION_FIRMWARE_REVISION_ID\n |
vijaynvr | 0:bc9f26b5dadf | 171 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 172 | *\retval List |
vijaynvr | 0:bc9f26b5dadf | 173 | */ |
vijaynvr | 0:bc9f26b5dadf | 174 | sensor_error common_get_identification(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 175 | |
vijaynvr | 0:bc9f26b5dadf | 176 | /*! |
vijaynvr | 0:bc9f26b5dadf | 177 | *\brief Set Device I2C Base Address. |
vijaynvr | 0:bc9f26b5dadf | 178 | * |
vijaynvr | 0:bc9f26b5dadf | 179 | * Uses I2C_Slave_Device_address register at 0x0212. Can be over-written by a value read from NVM. \n |
vijaynvr | 0:bc9f26b5dadf | 180 | * Defaults to 0x52 (8-bit address)/0x29 (7-bit). Register reports a 7-bit value. \n |
vijaynvr | 0:bc9f26b5dadf | 181 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 182 | *\param[in] i2c_base_address 8-bit I2C Slave device base address. |
vijaynvr | 0:bc9f26b5dadf | 183 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 184 | */ |
vijaynvr | 0:bc9f26b5dadf | 185 | sensor_error common_set_i2c_base_address(uint8_t device_base_address, uint32_t i2c_base_address); |
vijaynvr | 0:bc9f26b5dadf | 186 | |
vijaynvr | 0:bc9f26b5dadf | 187 | /*! |
vijaynvr | 0:bc9f26b5dadf | 188 | *\brief Set I2C Pad Voltage. |
vijaynvr | 0:bc9f26b5dadf | 189 | * |
vijaynvr | 0:bc9f26b5dadf | 190 | * I2C Pad External Bus Supply voltage (applies to both pads). Can be overridden by a value read from in NVM. \n |
vijaynvr | 0:bc9f26b5dadf | 191 | * |
vijaynvr | 0:bc9f26b5dadf | 192 | * Possible values are : \n |
vijaynvr | 0:bc9f26b5dadf | 193 | * I2C_1v8_PAD_VOLTAGE = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 194 | * I2C_2v8_PAD_VOLTAGE = 0x02 \n |
vijaynvr | 0:bc9f26b5dadf | 195 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 196 | *\param[in] pad_voltage I2C Pad External Bus Supply voltage. |
vijaynvr | 0:bc9f26b5dadf | 197 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 198 | */ |
vijaynvr | 0:bc9f26b5dadf | 199 | sensor_error common_set_i2c_pad_voltage(uint8_t device_base_address, uint8_t pad_voltage); |
vijaynvr | 0:bc9f26b5dadf | 200 | |
vijaynvr | 0:bc9f26b5dadf | 201 | /*! |
vijaynvr | 0:bc9f26b5dadf | 202 | *\brief Report I2C Pad Voltage. |
vijaynvr | 0:bc9f26b5dadf | 203 | * |
vijaynvr | 0:bc9f26b5dadf | 204 | * I2C Pad External Bus Supply voltage. |
vijaynvr | 0:bc9f26b5dadf | 205 | * Possible values are : \n |
vijaynvr | 0:bc9f26b5dadf | 206 | * I2C_1v8_PAD_VOLTAGE = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 207 | * I2C_2v8_PAD_VOLTAGE = 0x02 \n |
vijaynvr | 0:bc9f26b5dadf | 208 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 209 | *\retval Integer |
vijaynvr | 0:bc9f26b5dadf | 210 | */ |
vijaynvr | 0:bc9f26b5dadf | 211 | uint8_t common_get_i2c_pad_voltage(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 212 | |
vijaynvr | 0:bc9f26b5dadf | 213 | /*! |
vijaynvr | 0:bc9f26b5dadf | 214 | *\brief Set GPIO0 Mode. |
vijaynvr | 0:bc9f26b5dadf | 215 | * |
vijaynvr | 0:bc9f26b5dadf | 216 | * Possible values for mode are : \n |
vijaynvr | 0:bc9f26b5dadf | 217 | * GPIOx_MODE_SELECT_RANGING = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 218 | * GPIOx_MODE_SELECT_ALS = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 219 | * |
vijaynvr | 0:bc9f26b5dadf | 220 | * Possible settings for select are : \n |
vijaynvr | 0:bc9f26b5dadf | 221 | * GPIOx_SELECT_OFF = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 222 | * GPIOx_SELECT_MEASURE_READY = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 223 | * GPIOx_SELECT_DISABLED = 0x06 \n |
vijaynvr | 0:bc9f26b5dadf | 224 | * GPIOx_SELECT_GPIO_INTERRUPT_OUTPUT = 0x08 \n |
vijaynvr | 0:bc9f26b5dadf | 225 | * |
vijaynvr | 0:bc9f26b5dadf | 226 | * Possible settings for polarity are : \n |
vijaynvr | 0:bc9f26b5dadf | 227 | * GPIOx_POLARITY_SELECT_OFF = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 228 | * GPIOx_POLARITY_SELECT_ON = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 229 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 230 | *\param[in] mode Operating mode to be selected. |
vijaynvr | 0:bc9f26b5dadf | 231 | *\param[in] select |
vijaynvr | 0:bc9f26b5dadf | 232 | *\param[in] polarity |
vijaynvr | 0:bc9f26b5dadf | 233 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 234 | */ |
vijaynvr | 0:bc9f26b5dadf | 235 | sensor_error common_set_system_mode_gpio0(uint8_t device_base_address, uint8_t mode, uint8_t select, uint8_t polarity); |
vijaynvr | 0:bc9f26b5dadf | 236 | |
vijaynvr | 0:bc9f26b5dadf | 237 | /*! |
vijaynvr | 0:bc9f26b5dadf | 238 | *\brief Set GPIO0 Mode. |
vijaynvr | 0:bc9f26b5dadf | 239 | * |
vijaynvr | 0:bc9f26b5dadf | 240 | * Possible values for mode are : \n |
vijaynvr | 0:bc9f26b5dadf | 241 | * GPIOx_MODE_SELECT_RANGING = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 242 | * GPIOx_MODE_SELECT_ALS = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 243 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 244 | *\param[in] mode: Operating mode to be selected. |
vijaynvr | 0:bc9f26b5dadf | 245 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 246 | */ |
vijaynvr | 0:bc9f26b5dadf | 247 | sensor_error common_set_gpio0_mode(uint8_t device_base_address, uint8_t mode); |
vijaynvr | 0:bc9f26b5dadf | 248 | |
vijaynvr | 0:bc9f26b5dadf | 249 | /*! |
vijaynvr | 0:bc9f26b5dadf | 250 | *\brief Report GPIO0 Mode. |
vijaynvr | 0:bc9f26b5dadf | 251 | |
vijaynvr | 0:bc9f26b5dadf | 252 | Possible results are : \n |
vijaynvr | 0:bc9f26b5dadf | 253 | GPIOx_MODE_SELECT_RANGING = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 254 | GPIOx_MODE_SELECT_ALS = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 255 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 256 | *\retval Integer |
vijaynvr | 0:bc9f26b5dadf | 257 | */ |
vijaynvr | 0:bc9f26b5dadf | 258 | uint8_t common_get_gpio0_mode(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 259 | |
vijaynvr | 0:bc9f26b5dadf | 260 | /*! |
vijaynvr | 0:bc9f26b5dadf | 261 | *\brief Set GPIO0 function configuration. |
vijaynvr | 0:bc9f26b5dadf | 262 | |
vijaynvr | 0:bc9f26b5dadf | 263 | Possible settings are : \n |
vijaynvr | 0:bc9f26b5dadf | 264 | GPIOx_SELECT_OFF = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 265 | GPIOx_SELECT_MEASURE_READY = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 266 | GPIOx_SELECT_THRESHOLD_OUTPUT = 0x02 \n |
vijaynvr | 0:bc9f26b5dadf | 267 | GPIOx_SELECT_BLANK_IN = 0x03 \n |
vijaynvr | 0:bc9f26b5dadf | 268 | GPIOx_SELECT_BLANK_OUT = 0x04 \n |
vijaynvr | 0:bc9f26b5dadf | 269 | GPIOx_SELECT_START_STOP = 0x05 \n |
vijaynvr | 0:bc9f26b5dadf | 270 | GPIOx_SELECT_DISABLED = 0x06 \n |
vijaynvr | 0:bc9f26b5dadf | 271 | GPIOx_SELECT_COMBINED_THRESHOLD_OUTPUT = 0x07 \n |
vijaynvr | 0:bc9f26b5dadf | 272 | GPIOx_SELECT_GPIO_INTERRUPT_OUTPUT = 0x08 \n |
vijaynvr | 0:bc9f26b5dadf | 273 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 274 | *\param[in] select: |
vijaynvr | 0:bc9f26b5dadf | 275 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 276 | */ |
vijaynvr | 0:bc9f26b5dadf | 277 | sensor_error common_set_gpio0_select(uint8_t device_base_address, uint8_t select); |
vijaynvr | 0:bc9f26b5dadf | 278 | |
vijaynvr | 0:bc9f26b5dadf | 279 | /*! |
vijaynvr | 0:bc9f26b5dadf | 280 | *\brief Report GPIO0 functional configuration. |
vijaynvr | 0:bc9f26b5dadf | 281 | |
vijaynvr | 0:bc9f26b5dadf | 282 | Possible results are : \n |
vijaynvr | 0:bc9f26b5dadf | 283 | GPIOx_SELECT_OFF = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 284 | GPIOx_SELECT_MEASURE_READY = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 285 | GPIOx_SELECT_THRESHOLD_OUTPUT = 0x02 \n |
vijaynvr | 0:bc9f26b5dadf | 286 | GPIOx_SELECT_BLANK_IN = 0x03 \n |
vijaynvr | 0:bc9f26b5dadf | 287 | GPIOx_SELECT_BLANK_OUT = 0x04 \n |
vijaynvr | 0:bc9f26b5dadf | 288 | GPIOx_SELECT_START_STOP = 0x05 \n |
vijaynvr | 0:bc9f26b5dadf | 289 | GPIOx_SELECT_DISABLED = 0x06 \n |
vijaynvr | 0:bc9f26b5dadf | 290 | GPIOx_SELECT_COMBINED_THRESHOLD_OUTPUT = 0x07 \n |
vijaynvr | 0:bc9f26b5dadf | 291 | GPIOx_SELECT_GPIO_INTERRUPT_OUTPUT = 0x08 \n |
vijaynvr | 0:bc9f26b5dadf | 292 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 293 | *\retval Integer |
vijaynvr | 0:bc9f26b5dadf | 294 | */ |
vijaynvr | 0:bc9f26b5dadf | 295 | uint8_t common_get_gpio0_select(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 296 | |
vijaynvr | 0:bc9f26b5dadf | 297 | /*! |
vijaynvr | 0:bc9f26b5dadf | 298 | *\brief Set GPIO0 Polarity. |
vijaynvr | 0:bc9f26b5dadf | 299 | |
vijaynvr | 0:bc9f26b5dadf | 300 | Possible settings are : \n |
vijaynvr | 0:bc9f26b5dadf | 301 | GPIOx_POLARITY_SELECT_OFF = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 302 | GPIOx_POLARITY_SELECT_ON = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 303 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 304 | *\param[in] polarity: |
vijaynvr | 0:bc9f26b5dadf | 305 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 306 | */ |
vijaynvr | 0:bc9f26b5dadf | 307 | sensor_error common_set_gpio0_polarity(uint8_t device_base_address, uint8_t polarity); |
vijaynvr | 0:bc9f26b5dadf | 308 | |
vijaynvr | 0:bc9f26b5dadf | 309 | /*! |
vijaynvr | 0:bc9f26b5dadf | 310 | *\brief Report GPIO0 Polarity. |
vijaynvr | 0:bc9f26b5dadf | 311 | * |
vijaynvr | 0:bc9f26b5dadf | 312 | * Report the status of the GPIO_0 Polarity select bit in SYSTEM_MODE_GPIO0 register. \n |
vijaynvr | 0:bc9f26b5dadf | 313 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 314 | *\retval Boolean |
vijaynvr | 0:bc9f26b5dadf | 315 | */ |
vijaynvr | 0:bc9f26b5dadf | 316 | bool_t common_get_gpio0_polarity(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 317 | |
vijaynvr | 0:bc9f26b5dadf | 318 | /*! |
vijaynvr | 0:bc9f26b5dadf | 319 | *\brief Set GPIO1 Mode. |
vijaynvr | 0:bc9f26b5dadf | 320 | |
vijaynvr | 0:bc9f26b5dadf | 321 | Possible values for mode are : \n |
vijaynvr | 0:bc9f26b5dadf | 322 | GPIOx_MODE_SELECT_RANGING = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 323 | GPIOx_MODE_SELECT_ALS = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 324 | |
vijaynvr | 0:bc9f26b5dadf | 325 | Possible settings for select are : \n |
vijaynvr | 0:bc9f26b5dadf | 326 | GPIOx_SELECT_OFF = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 327 | GPIOx_SELECT_MEASURE_READY = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 328 | GPIOx_SELECT_DISABLED = 0x06 \n |
vijaynvr | 0:bc9f26b5dadf | 329 | GPIOx_SELECT_GPIO_INTERRUPT_OUTPUT = 0x08 \n |
vijaynvr | 0:bc9f26b5dadf | 330 | |
vijaynvr | 0:bc9f26b5dadf | 331 | Possible settings for polarity are : \n |
vijaynvr | 0:bc9f26b5dadf | 332 | GPIOx_POLARITY_SELECT_OFF = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 333 | GPIOx_POLARITY_SELECT_ON = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 334 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 335 | *\param[in] mode: Operating mode to be selected. |
vijaynvr | 0:bc9f26b5dadf | 336 | *\param[in] select: |
vijaynvr | 0:bc9f26b5dadf | 337 | *\param[in] polarity: |
vijaynvr | 0:bc9f26b5dadf | 338 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 339 | */ |
vijaynvr | 0:bc9f26b5dadf | 340 | sensor_error common_set_system_mode_gpio1(uint8_t device_base_address, uint8_t mode, uint8_t select, uint8_t polarity); |
vijaynvr | 0:bc9f26b5dadf | 341 | |
vijaynvr | 0:bc9f26b5dadf | 342 | /*! |
vijaynvr | 0:bc9f26b5dadf | 343 | *\brief Set GPIO1 Mode. |
vijaynvr | 0:bc9f26b5dadf | 344 | |
vijaynvr | 0:bc9f26b5dadf | 345 | Possible mode settings are : \n |
vijaynvr | 0:bc9f26b5dadf | 346 | GPIOx_MODE_SELECT_RANGING = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 347 | GPIOx_MODE_SELECT_ALS = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 348 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 349 | *\param[in] mode: |
vijaynvr | 0:bc9f26b5dadf | 350 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 351 | */ |
vijaynvr | 0:bc9f26b5dadf | 352 | sensor_error common_set_gpio1_mode(uint8_t device_base_address, uint8_t mode); |
vijaynvr | 0:bc9f26b5dadf | 353 | |
vijaynvr | 0:bc9f26b5dadf | 354 | /*! |
vijaynvr | 0:bc9f26b5dadf | 355 | *\brief Report GPIO1 Mode. |
vijaynvr | 0:bc9f26b5dadf | 356 | |
vijaynvr | 0:bc9f26b5dadf | 357 | Possible results are : \n |
vijaynvr | 0:bc9f26b5dadf | 358 | GPIOx_MODE_SELECT_RANGING = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 359 | GPIOx_MODE_SELECT_ALS = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 360 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 361 | *\retval Integer |
vijaynvr | 0:bc9f26b5dadf | 362 | */ |
vijaynvr | 0:bc9f26b5dadf | 363 | uint8_t common_get_gpio1_mode(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 364 | |
vijaynvr | 0:bc9f26b5dadf | 365 | /*! |
vijaynvr | 0:bc9f26b5dadf | 366 | *\brief Set GPIO1 functional configuration. |
vijaynvr | 0:bc9f26b5dadf | 367 | |
vijaynvr | 0:bc9f26b5dadf | 368 | Possible settings are : \n |
vijaynvr | 0:bc9f26b5dadf | 369 | GPIOx_SELECT_OFF = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 370 | GPIOx_SELECT_MEASURE_READY = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 371 | GPIOx_SELECT_THRESHOLD_OUTPUT = 0x02 \n |
vijaynvr | 0:bc9f26b5dadf | 372 | GPIOx_SELECT_BLANK_IN = 0x03 \n |
vijaynvr | 0:bc9f26b5dadf | 373 | GPIOx_SELECT_BLANK_OUT = 0x04 \n |
vijaynvr | 0:bc9f26b5dadf | 374 | GPIOx_SELECT_START_STOP = 0x05 \n |
vijaynvr | 0:bc9f26b5dadf | 375 | GPIOx_SELECT_DISABLED = 0x06 \n |
vijaynvr | 0:bc9f26b5dadf | 376 | GPIOx_SELECT_COMBINED_THRESHOLD_OUTPUT = 0x07 \n |
vijaynvr | 0:bc9f26b5dadf | 377 | GPIOx_SELECT_GPIO_INTERRUPT_OUTPUT = 0x08 \n |
vijaynvr | 0:bc9f26b5dadf | 378 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 379 | *\param[in] select: |
vijaynvr | 0:bc9f26b5dadf | 380 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 381 | */ |
vijaynvr | 0:bc9f26b5dadf | 382 | sensor_error common_set_gpio1_select(uint8_t device_base_address, uint8_t select); |
vijaynvr | 0:bc9f26b5dadf | 383 | |
vijaynvr | 0:bc9f26b5dadf | 384 | /*! |
vijaynvr | 0:bc9f26b5dadf | 385 | *\brief Report GPIO1 functional configuration. |
vijaynvr | 0:bc9f26b5dadf | 386 | |
vijaynvr | 0:bc9f26b5dadf | 387 | Possible results are : \n |
vijaynvr | 0:bc9f26b5dadf | 388 | GPIOx_SELECT_OFF = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 389 | GPIOx_SELECT_MEASURE_READY = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 390 | GPIOx_SELECT_THRESHOLD_OUTPUT = 0x02 \n |
vijaynvr | 0:bc9f26b5dadf | 391 | GPIOx_SELECT_BLANK_IN = 0x03 \n |
vijaynvr | 0:bc9f26b5dadf | 392 | GPIOx_SELECT_BLANK_OUT = 0x04 \n |
vijaynvr | 0:bc9f26b5dadf | 393 | GPIOx_SELECT_START_STOP = 0x05 \n |
vijaynvr | 0:bc9f26b5dadf | 394 | GPIOx_SELECT_DISABLED = 0x06 \n |
vijaynvr | 0:bc9f26b5dadf | 395 | GPIOx_SELECT_COMBINED_THRESHOLD_OUTPUT = 0x07 \n |
vijaynvr | 0:bc9f26b5dadf | 396 | GPIOx_SELECT_GPIO_INTERRUPT_OUTPUT = 0x08 \n |
vijaynvr | 0:bc9f26b5dadf | 397 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 398 | *\retval Integer |
vijaynvr | 0:bc9f26b5dadf | 399 | */ |
vijaynvr | 0:bc9f26b5dadf | 400 | uint8_t common_get_gpio1_select(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 401 | |
vijaynvr | 0:bc9f26b5dadf | 402 | /*! |
vijaynvr | 0:bc9f26b5dadf | 403 | *\brief Set GPIO1 Polarity. |
vijaynvr | 0:bc9f26b5dadf | 404 | |
vijaynvr | 0:bc9f26b5dadf | 405 | GPIOx_POLARITY_SELECT_OFF = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 406 | GPIOx_POLARITY_SELECT_ON = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 407 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 408 | *\param[in] polarity: |
vijaynvr | 0:bc9f26b5dadf | 409 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 410 | */ |
vijaynvr | 0:bc9f26b5dadf | 411 | sensor_error common_set_gpio1_polarity(uint8_t device_base_address, uint8_t polarity); |
vijaynvr | 0:bc9f26b5dadf | 412 | |
vijaynvr | 0:bc9f26b5dadf | 413 | /*! |
vijaynvr | 0:bc9f26b5dadf | 414 | *\brief Report GPIO1 Polarity. |
vijaynvr | 0:bc9f26b5dadf | 415 | |
vijaynvr | 0:bc9f26b5dadf | 416 | Report the status of the GPIO_0 Polarity select bit in SYSTEM_MODE_GPIO0 register. |
vijaynvr | 0:bc9f26b5dadf | 417 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 418 | *\retval Boolean |
vijaynvr | 0:bc9f26b5dadf | 419 | */ |
vijaynvr | 0:bc9f26b5dadf | 420 | bool_t common_get_gpio1_polarity(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 421 | |
vijaynvr | 0:bc9f26b5dadf | 422 | /*! |
vijaynvr | 0:bc9f26b5dadf | 423 | *\brief Set History Buffer Enable. |
vijaynvr | 0:bc9f26b5dadf | 424 | |
vijaynvr | 0:bc9f26b5dadf | 425 | Possible settings are : \n |
vijaynvr | 0:bc9f26b5dadf | 426 | HISTORY_BUFFER_ENABLE = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 427 | HISTORY_BUFFER_DISABLE = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 428 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 429 | *\param[in] history_buffer_enable: |
vijaynvr | 0:bc9f26b5dadf | 430 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 431 | */ |
vijaynvr | 0:bc9f26b5dadf | 432 | sensor_error common_set_history_buffer_enable(uint8_t device_base_address, uint8_t history_buffer_enable); |
vijaynvr | 0:bc9f26b5dadf | 433 | |
vijaynvr | 0:bc9f26b5dadf | 434 | /*! |
vijaynvr | 0:bc9f26b5dadf | 435 | *\brief Report History Buffer Enable status. |
vijaynvr | 0:bc9f26b5dadf | 436 | |
vijaynvr | 0:bc9f26b5dadf | 437 | Returns True if the command completes successfully, otherwise False.\n |
vijaynvr | 0:bc9f26b5dadf | 438 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 439 | *\retval Boolean |
vijaynvr | 0:bc9f26b5dadf | 440 | */ |
vijaynvr | 0:bc9f26b5dadf | 441 | bool_t common_get_history_buffer_enable(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 442 | |
vijaynvr | 0:bc9f26b5dadf | 443 | /*! |
vijaynvr | 0:bc9f26b5dadf | 444 | *\brief Set History Buffer Mode. |
vijaynvr | 0:bc9f26b5dadf | 445 | |
vijaynvr | 0:bc9f26b5dadf | 446 | Possible modes are : \n |
vijaynvr | 0:bc9f26b5dadf | 447 | HISTORY_BUFFER_RANGING_MODE = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 448 | HISTORY_BUFFER_ALS_MODE = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 449 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 450 | *\param[in] history_buffer_mode: |
vijaynvr | 0:bc9f26b5dadf | 451 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 452 | */ |
vijaynvr | 0:bc9f26b5dadf | 453 | sensor_error common_set_history_buffer_mode(uint8_t device_base_address, uint8_t history_buffer_mode); |
vijaynvr | 0:bc9f26b5dadf | 454 | |
vijaynvr | 0:bc9f26b5dadf | 455 | /*! |
vijaynvr | 0:bc9f26b5dadf | 456 | *\brief Report History Buffer Mode. |
vijaynvr | 0:bc9f26b5dadf | 457 | |
vijaynvr | 0:bc9f26b5dadf | 458 | Returns the contents of the SYSTEM_HISTORY_CTRL register. \n |
vijaynvr | 0:bc9f26b5dadf | 459 | Possible values are : \n |
vijaynvr | 0:bc9f26b5dadf | 460 | HISTORY_BUFFER_RANGING_MODE = 0x00 \n |
vijaynvr | 0:bc9f26b5dadf | 461 | HISTORY_BUFFER_ALS_MODE = 0x01 \n |
vijaynvr | 0:bc9f26b5dadf | 462 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 463 | *\retval Integer |
vijaynvr | 0:bc9f26b5dadf | 464 | */ |
vijaynvr | 0:bc9f26b5dadf | 465 | uint8_t common_get_history_buffer_mode(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 466 | |
vijaynvr | 0:bc9f26b5dadf | 467 | /*! |
vijaynvr | 0:bc9f26b5dadf | 468 | *\brief Clear history buffer (mode not cleared) |
vijaynvr | 0:bc9f26b5dadf | 469 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 470 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 471 | */ |
vijaynvr | 0:bc9f26b5dadf | 472 | sensor_error common_set_history_buffer_clear(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 473 | |
vijaynvr | 0:bc9f26b5dadf | 474 | /*! |
vijaynvr | 0:bc9f26b5dadf | 475 | *\brief Report History Buffer Clear status. |
vijaynvr | 0:bc9f26b5dadf | 476 | * |
vijaynvr | 0:bc9f26b5dadf | 477 | * Returns True if the SYSTEM_HISTORY_CTRL register is cleared, otherwise False. \n |
vijaynvr | 0:bc9f26b5dadf | 478 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 479 | *\retval Boolean |
vijaynvr | 0:bc9f26b5dadf | 480 | */ |
vijaynvr | 0:bc9f26b5dadf | 481 | bool_t common_get_history_buffer_clear(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 482 | |
vijaynvr | 0:bc9f26b5dadf | 483 | /*! |
vijaynvr | 0:bc9f26b5dadf | 484 | *\brief Clear 'Error' System Interrupt. |
vijaynvr | 0:bc9f26b5dadf | 485 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 486 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 487 | */ |
vijaynvr | 0:bc9f26b5dadf | 488 | sensor_error common_set_system_interrupt_clear_error(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 489 | |
vijaynvr | 0:bc9f26b5dadf | 490 | /*! |
vijaynvr | 0:bc9f26b5dadf | 491 | *\brief Report GPIO Interrupt Error Result Status. |
vijaynvr | 0:bc9f26b5dadf | 492 | |
vijaynvr | 0:bc9f26b5dadf | 493 | Returns the Error flag portion of the RESULT_INTERRUPT_STATUS_GPIO register. \n |
vijaynvr | 0:bc9f26b5dadf | 494 | Possible returns are : \n |
vijaynvr | 0:bc9f26b5dadf | 495 | 0: No error reported \n |
vijaynvr | 0:bc9f26b5dadf | 496 | 1: Laser Safety Error \n |
vijaynvr | 0:bc9f26b5dadf | 497 | 2: PLL error (either PLL1 or PLL2) \n |
vijaynvr | 0:bc9f26b5dadf | 498 | 3: Measurement error \n |
vijaynvr | 0:bc9f26b5dadf | 499 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 500 | *\retval Integer |
vijaynvr | 0:bc9f26b5dadf | 501 | */ |
vijaynvr | 0:bc9f26b5dadf | 502 | uint8_t common_get_error_result_interrupt_status_gpio(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 503 | |
vijaynvr | 0:bc9f26b5dadf | 504 | /*! |
vijaynvr | 0:bc9f26b5dadf | 505 | *\brief Clear System Fresh Out Of Reset flag. |
vijaynvr | 0:bc9f26b5dadf | 506 | * |
vijaynvr | 0:bc9f26b5dadf | 507 | * The fresh out of reset bit defaults to 1 at boot-up. The user can set this to 0 after initial boot and then use this flag to check for reset conditions. |
vijaynvr | 0:bc9f26b5dadf | 508 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 509 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 510 | */ |
vijaynvr | 0:bc9f26b5dadf | 511 | sensor_error common_clear_system_fresh_out_of_reset(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 512 | |
vijaynvr | 0:bc9f26b5dadf | 513 | /*! |
vijaynvr | 0:bc9f26b5dadf | 514 | *\brief Report System Fresh Out Of Reset status. |
vijaynvr | 0:bc9f26b5dadf | 515 | * |
vijaynvr | 0:bc9f26b5dadf | 516 | * Returns True if the SYSTEM_FRESH_OUT_OF_RESET register status is set, otherwise False. \n |
vijaynvr | 0:bc9f26b5dadf | 517 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 518 | *\retval Boolean |
vijaynvr | 0:bc9f26b5dadf | 519 | */ |
vijaynvr | 0:bc9f26b5dadf | 520 | bool_t common_get_system_fresh_out_of_reset(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 521 | |
vijaynvr | 0:bc9f26b5dadf | 522 | /*! |
vijaynvr | 0:bc9f26b5dadf | 523 | *\brief Set System Group Parameter Hold flag. |
vijaynvr | 0:bc9f26b5dadf | 524 | |
vijaynvr | 0:bc9f26b5dadf | 525 | The grouped_parameter_hold flag is set to indicate that device data is being updated. \n |
vijaynvr | 0:bc9f26b5dadf | 526 | 0: Data is stable - user is safe to copy. \n |
vijaynvr | 0:bc9f26b5dadf | 527 | 1: Data being updated - user not safe to copy. \n |
vijaynvr | 0:bc9f26b5dadf | 528 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 529 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 530 | */ |
vijaynvr | 0:bc9f26b5dadf | 531 | sensor_error common_set_system_group_parameter_hold(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 532 | |
vijaynvr | 0:bc9f26b5dadf | 533 | /*! |
vijaynvr | 0:bc9f26b5dadf | 534 | *\brief Clear System Group Parameter Hold flag. |
vijaynvr | 0:bc9f26b5dadf | 535 | |
vijaynvr | 0:bc9f26b5dadf | 536 | The grouped_parameter_hold flag is set to indicate that device data is being updated. \n |
vijaynvr | 0:bc9f26b5dadf | 537 | 0: Data is stable - user is safe to copy. \n |
vijaynvr | 0:bc9f26b5dadf | 538 | 1: Data being updated - user not safe to copy. \n |
vijaynvr | 0:bc9f26b5dadf | 539 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 540 | *\retval sensor_error |
vijaynvr | 0:bc9f26b5dadf | 541 | */ |
vijaynvr | 0:bc9f26b5dadf | 542 | sensor_error common_clear_system_group_parameter_hold(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 543 | |
vijaynvr | 0:bc9f26b5dadf | 544 | /*! |
vijaynvr | 0:bc9f26b5dadf | 545 | *\brief Report System Fatal Error Code flag status. |
vijaynvr | 0:bc9f26b5dadf | 546 | * |
vijaynvr | 0:bc9f26b5dadf | 547 | * Returns the contents of the SYSTEM_FATAL_ERROR_CODE register, which is written to when a fatal error occurs. |
vijaynvr | 0:bc9f26b5dadf | 548 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 549 | *\retval Integer |
vijaynvr | 0:bc9f26b5dadf | 550 | */ |
vijaynvr | 0:bc9f26b5dadf | 551 | uint8_t common_get_system_fatal_error_code(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 552 | |
vijaynvr | 0:bc9f26b5dadf | 553 | /*! |
vijaynvr | 0:bc9f26b5dadf | 554 | *\brief Report System Fatal Error Status. |
vijaynvr | 0:bc9f26b5dadf | 555 | |
vijaynvr | 0:bc9f26b5dadf | 556 | Returns the contents of the SYSTEM_FATAL_ERROR_STATUS register, which is written to when a fatal error occurs.\n |
vijaynvr | 0:bc9f26b5dadf | 557 | |
vijaynvr | 0:bc9f26b5dadf | 558 | Read Only HW status bit, set high when a 1 is written into FATAL_ERROR_CODE. \n |
vijaynvr | 0:bc9f26b5dadf | 559 | Checked by FW on bootup to ascertain device status. Can only be rest by a main Go2 reset. \n |
vijaynvr | 0:bc9f26b5dadf | 560 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 561 | *\retval Integer |
vijaynvr | 0:bc9f26b5dadf | 562 | */ |
vijaynvr | 0:bc9f26b5dadf | 563 | uint8_t common_get_system_fatal_error_status(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 564 | |
vijaynvr | 0:bc9f26b5dadf | 565 | /*! |
vijaynvr | 0:bc9f26b5dadf | 566 | *\brief Report System Health. |
vijaynvr | 0:bc9f26b5dadf | 567 | * |
vijaynvr | 0:bc9f26b5dadf | 568 | * A combination of fresh_from_reset, fatal_error and laser safety checks |
vijaynvr | 0:bc9f26b5dadf | 569 | *\param[in] device_base_address |
vijaynvr | 0:bc9f26b5dadf | 570 | *\retval Integer. A combined system health flag. |
vijaynvr | 0:bc9f26b5dadf | 571 | */ |
vijaynvr | 0:bc9f26b5dadf | 572 | uint8_t common_get_system_health_check(uint8_t device_base_address); |
vijaynvr | 0:bc9f26b5dadf | 573 | |
vijaynvr | 0:bc9f26b5dadf | 574 | #endif |
vijaynvr | 0:bc9f26b5dadf | 575 | |
vijaynvr | 0:bc9f26b5dadf | 576 |