vlx lib

Committer:
vijaynvr
Date:
Sun Feb 08 14:26:51 2015 +0000
Revision:
0:bc9f26b5dadf
working

Who changed what in which revision?

UserRevisionLine numberNew 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