Jesus Fausto / Mbed 2 deprecated VL53L1X_Multiple

Dependencies:   mbed

Fork of VL53L1X_Pololu by Jesus Fausto

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers VL53L1X.h Source File

VL53L1X.h

00001 #ifndef VL53L1X_H
00002 #define VL53L1X_H
00003 
00004 #include "mbed.h"
00005 
00006 class VL53L1X
00007 {
00008   public:
00009     Timer t;
00010     VL53L1X(PinName SDA, PinName SCL, PinName shutDown);
00011 
00012     // register addresses from API vl53l1x_register_map.h
00013     enum regAddr : uint16_t
00014     {
00015       SOFT_RESET                                                                 = 0x0000,
00016       I2C_SLAVE__DEVICE_ADDRESS                                                  = 0x0001,
00017       ANA_CONFIG__VHV_REF_SEL_VDDPIX                                             = 0x0002,
00018       ANA_CONFIG__VHV_REF_SEL_VQUENCH                                            = 0x0003,
00019       ANA_CONFIG__REG_AVDD1V2_SEL                                                = 0x0004,
00020       ANA_CONFIG__FAST_OSC__TRIM                                                 = 0x0005,
00021       OSC_MEASURED__FAST_OSC__FREQUENCY                                          = 0x0006,
00022       OSC_MEASURED__FAST_OSC__FREQUENCY_HI                                       = 0x0006,
00023       OSC_MEASURED__FAST_OSC__FREQUENCY_LO                                       = 0x0007,
00024       VHV_CONFIG__TIMEOUT_MACROP_LOOP_BOUND                                      = 0x0008,
00025       VHV_CONFIG__COUNT_THRESH                                                   = 0x0009,
00026       VHV_CONFIG__OFFSET                                                         = 0x000A,
00027       VHV_CONFIG__INIT                                                           = 0x000B,
00028       GLOBAL_CONFIG__SPAD_ENABLES_REF_0                                          = 0x000D,
00029       GLOBAL_CONFIG__SPAD_ENABLES_REF_1                                          = 0x000E,
00030       GLOBAL_CONFIG__SPAD_ENABLES_REF_2                                          = 0x000F,
00031       GLOBAL_CONFIG__SPAD_ENABLES_REF_3                                          = 0x0010,
00032       GLOBAL_CONFIG__SPAD_ENABLES_REF_4                                          = 0x0011,
00033       GLOBAL_CONFIG__SPAD_ENABLES_REF_5                                          = 0x0012,
00034       GLOBAL_CONFIG__REF_EN_START_SELECT                                         = 0x0013,
00035       REF_SPAD_MAN__NUM_REQUESTED_REF_SPADS                                      = 0x0014,
00036       REF_SPAD_MAN__REF_LOCATION                                                 = 0x0015,
00037       ALGO__CROSSTALK_COMPENSATION_PLANE_OFFSET_KCPS                             = 0x0016,
00038       ALGO__CROSSTALK_COMPENSATION_PLANE_OFFSET_KCPS_HI                          = 0x0016,
00039       ALGO__CROSSTALK_COMPENSATION_PLANE_OFFSET_KCPS_LO                          = 0x0017,
00040       ALGO__CROSSTALK_COMPENSATION_X_PLANE_GRADIENT_KCPS                         = 0x0018,
00041       ALGO__CROSSTALK_COMPENSATION_X_PLANE_GRADIENT_KCPS_HI                      = 0x0018,
00042       ALGO__CROSSTALK_COMPENSATION_X_PLANE_GRADIENT_KCPS_LO                      = 0x0019,
00043       ALGO__CROSSTALK_COMPENSATION_Y_PLANE_GRADIENT_KCPS                         = 0x001A,
00044       ALGO__CROSSTALK_COMPENSATION_Y_PLANE_GRADIENT_KCPS_HI                      = 0x001A,
00045       ALGO__CROSSTALK_COMPENSATION_Y_PLANE_GRADIENT_KCPS_LO                      = 0x001B,
00046       REF_SPAD_CHAR__TOTAL_RATE_TARGET_MCPS                                      = 0x001C,
00047       REF_SPAD_CHAR__TOTAL_RATE_TARGET_MCPS_HI                                   = 0x001C,
00048       REF_SPAD_CHAR__TOTAL_RATE_TARGET_MCPS_LO                                   = 0x001D,
00049       ALGO__PART_TO_PART_RANGE_OFFSET_MM                                         = 0x001E,
00050       ALGO__PART_TO_PART_RANGE_OFFSET_MM_HI                                      = 0x001E,
00051       ALGO__PART_TO_PART_RANGE_OFFSET_MM_LO                                      = 0x001F,
00052       MM_CONFIG__INNER_OFFSET_MM                                                 = 0x0020,
00053       MM_CONFIG__INNER_OFFSET_MM_HI                                              = 0x0020,
00054       MM_CONFIG__INNER_OFFSET_MM_LO                                              = 0x0021,
00055       MM_CONFIG__OUTER_OFFSET_MM                                                 = 0x0022,
00056       MM_CONFIG__OUTER_OFFSET_MM_HI                                              = 0x0022,
00057       MM_CONFIG__OUTER_OFFSET_MM_LO                                              = 0x0023,
00058       DSS_CONFIG__TARGET_TOTAL_RATE_MCPS                                         = 0x0024,
00059       DSS_CONFIG__TARGET_TOTAL_RATE_MCPS_HI                                      = 0x0024,
00060       DSS_CONFIG__TARGET_TOTAL_RATE_MCPS_LO                                      = 0x0025,
00061       DEBUG__CTRL                                                                = 0x0026,
00062       TEST_MODE__CTRL                                                            = 0x0027,
00063       CLK_GATING__CTRL                                                           = 0x0028,
00064       NVM_BIST__CTRL                                                             = 0x0029,
00065       NVM_BIST__NUM_NVM_WORDS                                                    = 0x002A,
00066       NVM_BIST__START_ADDRESS                                                    = 0x002B,
00067       HOST_IF__STATUS                                                            = 0x002C,
00068       PAD_I2C_HV__CONFIG                                                         = 0x002D,
00069       PAD_I2C_HV__EXTSUP_CONFIG                                                  = 0x002E,
00070       GPIO_HV_PAD__CTRL                                                          = 0x002F,
00071       GPIO_HV_MUX__CTRL                                                          = 0x0030,
00072       GPIO__TIO_HV_STATUS                                                        = 0x0031,
00073       GPIO__FIO_HV_STATUS                                                        = 0x0032,
00074       ANA_CONFIG__SPAD_SEL_PSWIDTH                                               = 0x0033,
00075       ANA_CONFIG__VCSEL_PULSE_WIDTH_OFFSET                                       = 0x0034,
00076       ANA_CONFIG__FAST_OSC__CONFIG_CTRL                                          = 0x0035,
00077       SIGMA_ESTIMATOR__EFFECTIVE_PULSE_WIDTH_NS                                  = 0x0036,
00078       SIGMA_ESTIMATOR__EFFECTIVE_AMBIENT_WIDTH_NS                                = 0x0037,
00079       SIGMA_ESTIMATOR__SIGMA_REF_MM                                              = 0x0038,
00080       ALGO__CROSSTALK_COMPENSATION_VALID_HEIGHT_MM                               = 0x0039,
00081       SPARE_HOST_CONFIG__STATIC_CONFIG_SPARE_0                                   = 0x003A,
00082       SPARE_HOST_CONFIG__STATIC_CONFIG_SPARE_1                                   = 0x003B,
00083       ALGO__RANGE_IGNORE_THRESHOLD_MCPS                                          = 0x003C,
00084       ALGO__RANGE_IGNORE_THRESHOLD_MCPS_HI                                       = 0x003C,
00085       ALGO__RANGE_IGNORE_THRESHOLD_MCPS_LO                                       = 0x003D,
00086       ALGO__RANGE_IGNORE_VALID_HEIGHT_MM                                         = 0x003E,
00087       ALGO__RANGE_MIN_CLIP                                                       = 0x003F,
00088       ALGO__CONSISTENCY_CHECK__TOLERANCE                                         = 0x0040,
00089       SPARE_HOST_CONFIG__STATIC_CONFIG_SPARE_2                                   = 0x0041,
00090       SD_CONFIG__RESET_STAGES_MSB                                                = 0x0042,
00091       SD_CONFIG__RESET_STAGES_LSB                                                = 0x0043,
00092       GPH_CONFIG__STREAM_COUNT_UPDATE_VALUE                                      = 0x0044,
00093       GLOBAL_CONFIG__STREAM_DIVIDER                                              = 0x0045,
00094       SYSTEM__INTERRUPT_CONFIG_GPIO                                              = 0x0046,
00095       CAL_CONFIG__VCSEL_START                                                    = 0x0047,
00096       CAL_CONFIG__REPEAT_RATE                                                    = 0x0048,
00097       CAL_CONFIG__REPEAT_RATE_HI                                                 = 0x0048,
00098       CAL_CONFIG__REPEAT_RATE_LO                                                 = 0x0049,
00099       GLOBAL_CONFIG__VCSEL_WIDTH                                                 = 0x004A,
00100       PHASECAL_CONFIG__TIMEOUT_MACROP                                            = 0x004B,
00101       PHASECAL_CONFIG__TARGET                                                    = 0x004C,
00102       PHASECAL_CONFIG__OVERRIDE                                                  = 0x004D,
00103       DSS_CONFIG__ROI_MODE_CONTROL                                               = 0x004F,
00104       SYSTEM__THRESH_RATE_HIGH                                                   = 0x0050,
00105       SYSTEM__THRESH_RATE_HIGH_HI                                                = 0x0050,
00106       SYSTEM__THRESH_RATE_HIGH_LO                                                = 0x0051,
00107       SYSTEM__THRESH_RATE_LOW                                                    = 0x0052,
00108       SYSTEM__THRESH_RATE_LOW_HI                                                 = 0x0052,
00109       SYSTEM__THRESH_RATE_LOW_LO                                                 = 0x0053,
00110       DSS_CONFIG__MANUAL_EFFECTIVE_SPADS_SELECT                                  = 0x0054,
00111       DSS_CONFIG__MANUAL_EFFECTIVE_SPADS_SELECT_HI                               = 0x0054,
00112       DSS_CONFIG__MANUAL_EFFECTIVE_SPADS_SELECT_LO                               = 0x0055,
00113       DSS_CONFIG__MANUAL_BLOCK_SELECT                                            = 0x0056,
00114       DSS_CONFIG__APERTURE_ATTENUATION                                           = 0x0057,
00115       DSS_CONFIG__MAX_SPADS_LIMIT                                                = 0x0058,
00116       DSS_CONFIG__MIN_SPADS_LIMIT                                                = 0x0059,
00117       MM_CONFIG__TIMEOUT_MACROP_A                                                = 0x005A, // added by Pololu for 16-bit accesses
00118       MM_CONFIG__TIMEOUT_MACROP_A_HI                                             = 0x005A,
00119       MM_CONFIG__TIMEOUT_MACROP_A_LO                                             = 0x005B,
00120       MM_CONFIG__TIMEOUT_MACROP_B                                                = 0x005C, // added by Pololu for 16-bit accesses
00121       MM_CONFIG__TIMEOUT_MACROP_B_HI                                             = 0x005C,
00122       MM_CONFIG__TIMEOUT_MACROP_B_LO                                             = 0x005D,
00123       RANGE_CONFIG__TIMEOUT_MACROP_A                                             = 0x005E, // added by Pololu for 16-bit accesses
00124       RANGE_CONFIG__TIMEOUT_MACROP_A_HI                                          = 0x005E,
00125       RANGE_CONFIG__TIMEOUT_MACROP_A_LO                                          = 0x005F,
00126       RANGE_CONFIG__VCSEL_PERIOD_A                                               = 0x0060,
00127       RANGE_CONFIG__TIMEOUT_MACROP_B                                             = 0x0061, // added by Pololu for 16-bit accesses
00128       RANGE_CONFIG__TIMEOUT_MACROP_B_HI                                          = 0x0061,
00129       RANGE_CONFIG__TIMEOUT_MACROP_B_LO                                          = 0x0062,
00130       RANGE_CONFIG__VCSEL_PERIOD_B                                               = 0x0063,
00131       RANGE_CONFIG__SIGMA_THRESH                                                 = 0x0064,
00132       RANGE_CONFIG__SIGMA_THRESH_HI                                              = 0x0064,
00133       RANGE_CONFIG__SIGMA_THRESH_LO                                              = 0x0065,
00134       RANGE_CONFIG__MIN_COUNT_RATE_RTN_LIMIT_MCPS                                = 0x0066,
00135       RANGE_CONFIG__MIN_COUNT_RATE_RTN_LIMIT_MCPS_HI                             = 0x0066,
00136       RANGE_CONFIG__MIN_COUNT_RATE_RTN_LIMIT_MCPS_LO                             = 0x0067,
00137       RANGE_CONFIG__VALID_PHASE_LOW                                              = 0x0068,
00138       RANGE_CONFIG__VALID_PHASE_HIGH                                             = 0x0069,
00139       SYSTEM__INTERMEASUREMENT_PERIOD                                            = 0x006C,
00140       SYSTEM__INTERMEASUREMENT_PERIOD_3                                          = 0x006C,
00141       SYSTEM__INTERMEASUREMENT_PERIOD_2                                          = 0x006D,
00142       SYSTEM__INTERMEASUREMENT_PERIOD_1                                          = 0x006E,
00143       SYSTEM__INTERMEASUREMENT_PERIOD_0                                          = 0x006F,
00144       SYSTEM__FRACTIONAL_ENABLE                                                  = 0x0070,
00145       SYSTEM__GROUPED_PARAMETER_HOLD_0                                           = 0x0071,
00146       SYSTEM__THRESH_HIGH                                                        = 0x0072,
00147       SYSTEM__THRESH_HIGH_HI                                                     = 0x0072,
00148       SYSTEM__THRESH_HIGH_LO                                                     = 0x0073,
00149       SYSTEM__THRESH_LOW                                                         = 0x0074,
00150       SYSTEM__THRESH_LOW_HI                                                      = 0x0074,
00151       SYSTEM__THRESH_LOW_LO                                                      = 0x0075,
00152       SYSTEM__ENABLE_XTALK_PER_QUADRANT                                          = 0x0076,
00153       SYSTEM__SEED_CONFIG                                                        = 0x0077,
00154       SD_CONFIG__WOI_SD0                                                         = 0x0078,
00155       SD_CONFIG__WOI_SD1                                                         = 0x0079,
00156       SD_CONFIG__INITIAL_PHASE_SD0                                               = 0x007A,
00157       SD_CONFIG__INITIAL_PHASE_SD1                                               = 0x007B,
00158       SYSTEM__GROUPED_PARAMETER_HOLD_1                                           = 0x007C,
00159       SD_CONFIG__FIRST_ORDER_SELECT                                              = 0x007D,
00160       SD_CONFIG__QUANTIFIER                                                      = 0x007E,
00161       ROI_CONFIG__USER_ROI_CENTRE_SPAD                                           = 0x007F,
00162       ROI_CONFIG__USER_ROI_REQUESTED_GLOBAL_XY_SIZE                              = 0x0080,
00163       SYSTEM__SEQUENCE_CONFIG                                                    = 0x0081,
00164       SYSTEM__GROUPED_PARAMETER_HOLD                                             = 0x0082,
00165       POWER_MANAGEMENT__GO1_POWER_FORCE                                          = 0x0083,
00166       SYSTEM__STREAM_COUNT_CTRL                                                  = 0x0084,
00167       FIRMWARE__ENABLE                                                           = 0x0085,
00168       SYSTEM__INTERRUPT_CLEAR                                                    = 0x0086,
00169       SYSTEM__MODE_START                                                         = 0x0087,
00170       RESULT__INTERRUPT_STATUS                                                   = 0x0088,
00171       RESULT__RANGE_STATUS                                                       = 0x0089,
00172       RESULT__REPORT_STATUS                                                      = 0x008A,
00173       RESULT__STREAM_COUNT                                                       = 0x008B,
00174       RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0                                     = 0x008C,
00175       RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0_HI                                  = 0x008C,
00176       RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0_LO                                  = 0x008D,
00177       RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0                                    = 0x008E,
00178       RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0_HI                                 = 0x008E,
00179       RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0_LO                                 = 0x008F,
00180       RESULT__AMBIENT_COUNT_RATE_MCPS_SD0                                        = 0x0090,
00181       RESULT__AMBIENT_COUNT_RATE_MCPS_SD0_HI                                     = 0x0090,
00182       RESULT__AMBIENT_COUNT_RATE_MCPS_SD0_LO                                     = 0x0091,
00183       RESULT__SIGMA_SD0                                                          = 0x0092,
00184       RESULT__SIGMA_SD0_HI                                                       = 0x0092,
00185       RESULT__SIGMA_SD0_LO                                                       = 0x0093,
00186       RESULT__PHASE_SD0                                                          = 0x0094,
00187       RESULT__PHASE_SD0_HI                                                       = 0x0094,
00188       RESULT__PHASE_SD0_LO                                                       = 0x0095,
00189       RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0                             = 0x0096,
00190       RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0_HI                          = 0x0096,
00191       RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0_LO                          = 0x0097,
00192       RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0                = 0x0098,
00193       RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_HI             = 0x0098,
00194       RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_LO             = 0x0099,
00195       RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0                                = 0x009A,
00196       RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0_HI                             = 0x009A,
00197       RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0_LO                             = 0x009B,
00198       RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0                                = 0x009C,
00199       RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0_HI                             = 0x009C,
00200       RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0_LO                             = 0x009D,
00201       RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0                                     = 0x009E,
00202       RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0_HI                                  = 0x009E,
00203       RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0_LO                                  = 0x009F,
00204       RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1                                     = 0x00A0,
00205       RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1_HI                                  = 0x00A0,
00206       RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1_LO                                  = 0x00A1,
00207       RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1                                    = 0x00A2,
00208       RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1_HI                                 = 0x00A2,
00209       RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1_LO                                 = 0x00A3,
00210       RESULT__AMBIENT_COUNT_RATE_MCPS_SD1                                        = 0x00A4,
00211       RESULT__AMBIENT_COUNT_RATE_MCPS_SD1_HI                                     = 0x00A4,
00212       RESULT__AMBIENT_COUNT_RATE_MCPS_SD1_LO                                     = 0x00A5,
00213       RESULT__SIGMA_SD1                                                          = 0x00A6,
00214       RESULT__SIGMA_SD1_HI                                                       = 0x00A6,
00215       RESULT__SIGMA_SD1_LO                                                       = 0x00A7,
00216       RESULT__PHASE_SD1                                                          = 0x00A8,
00217       RESULT__PHASE_SD1_HI                                                       = 0x00A8,
00218       RESULT__PHASE_SD1_LO                                                       = 0x00A9,
00219       RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1                             = 0x00AA,
00220       RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1_HI                          = 0x00AA,
00221       RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1_LO                          = 0x00AB,
00222       RESULT__SPARE_0_SD1                                                        = 0x00AC,
00223       RESULT__SPARE_0_SD1_HI                                                     = 0x00AC,
00224       RESULT__SPARE_0_SD1_LO                                                     = 0x00AD,
00225       RESULT__SPARE_1_SD1                                                        = 0x00AE,
00226       RESULT__SPARE_1_SD1_HI                                                     = 0x00AE,
00227       RESULT__SPARE_1_SD1_LO                                                     = 0x00AF,
00228       RESULT__SPARE_2_SD1                                                        = 0x00B0,
00229       RESULT__SPARE_2_SD1_HI                                                     = 0x00B0,
00230       RESULT__SPARE_2_SD1_LO                                                     = 0x00B1,
00231       RESULT__SPARE_3_SD1                                                        = 0x00B2,
00232       RESULT__THRESH_INFO                                                        = 0x00B3,
00233       RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0                                     = 0x00B4,
00234       RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_3                                   = 0x00B4,
00235       RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_2                                   = 0x00B5,
00236       RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_1                                   = 0x00B6,
00237       RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_0                                   = 0x00B7,
00238       RESULT_CORE__RANGING_TOTAL_EVENTS_SD0                                      = 0x00B8,
00239       RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_3                                    = 0x00B8,
00240       RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_2                                    = 0x00B9,
00241       RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_1                                    = 0x00BA,
00242       RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_0                                    = 0x00BB,
00243       RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0                                       = 0x00BC,
00244       RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_3                                     = 0x00BC,
00245       RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_2                                     = 0x00BD,
00246       RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_1                                     = 0x00BE,
00247       RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_0                                     = 0x00BF,
00248       RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0                                     = 0x00C0,
00249       RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_3                                   = 0x00C0,
00250       RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_2                                   = 0x00C1,
00251       RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_1                                   = 0x00C2,
00252       RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_0                                   = 0x00C3,
00253       RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1                                     = 0x00C4,
00254       RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_3                                   = 0x00C4,
00255       RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_2                                   = 0x00C5,
00256       RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_1                                   = 0x00C6,
00257       RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_0                                   = 0x00C7,
00258       RESULT_CORE__RANGING_TOTAL_EVENTS_SD1                                      = 0x00C8,
00259       RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_3                                    = 0x00C8,
00260       RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_2                                    = 0x00C9,
00261       RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_1                                    = 0x00CA,
00262       RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_0                                    = 0x00CB,
00263       RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1                                       = 0x00CC,
00264       RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_3                                     = 0x00CC,
00265       RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_2                                     = 0x00CD,
00266       RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_1                                     = 0x00CE,
00267       RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_0                                     = 0x00CF,
00268       RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1                                     = 0x00D0,
00269       RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_3                                   = 0x00D0,
00270       RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_2                                   = 0x00D1,
00271       RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_1                                   = 0x00D2,
00272       RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_0                                   = 0x00D3,
00273       RESULT_CORE__SPARE_0                                                       = 0x00D4,
00274       PHASECAL_RESULT__REFERENCE_PHASE                                           = 0x00D6,
00275       PHASECAL_RESULT__REFERENCE_PHASE_HI                                        = 0x00D6,
00276       PHASECAL_RESULT__REFERENCE_PHASE_LO                                        = 0x00D7,
00277       PHASECAL_RESULT__VCSEL_START                                               = 0x00D8,
00278       REF_SPAD_CHAR_RESULT__NUM_ACTUAL_REF_SPADS                                 = 0x00D9,
00279       REF_SPAD_CHAR_RESULT__REF_LOCATION                                         = 0x00DA,
00280       VHV_RESULT__COLDBOOT_STATUS                                                = 0x00DB,
00281       VHV_RESULT__SEARCH_RESULT                                                  = 0x00DC,
00282       VHV_RESULT__LATEST_SETTING                                                 = 0x00DD,
00283       RESULT__OSC_CALIBRATE_VAL                                                  = 0x00DE,
00284       RESULT__OSC_CALIBRATE_VAL_HI                                               = 0x00DE,
00285       RESULT__OSC_CALIBRATE_VAL_LO                                               = 0x00DF,
00286       ANA_CONFIG__POWERDOWN_GO1                                                  = 0x00E0,
00287       ANA_CONFIG__REF_BG_CTRL                                                    = 0x00E1,
00288       ANA_CONFIG__REGDVDD1V2_CTRL                                                = 0x00E2,
00289       ANA_CONFIG__OSC_SLOW_CTRL                                                  = 0x00E3,
00290       TEST_MODE__STATUS                                                          = 0x00E4,
00291       FIRMWARE__SYSTEM_STATUS                                                    = 0x00E5,
00292       FIRMWARE__MODE_STATUS                                                      = 0x00E6,
00293       FIRMWARE__SECONDARY_MODE_STATUS                                            = 0x00E7,
00294       FIRMWARE__CAL_REPEAT_RATE_COUNTER                                          = 0x00E8,
00295       FIRMWARE__CAL_REPEAT_RATE_COUNTER_HI                                       = 0x00E8,
00296       FIRMWARE__CAL_REPEAT_RATE_COUNTER_LO                                       = 0x00E9,
00297       FIRMWARE__HISTOGRAM_BIN                                                    = 0x00EA,
00298       GPH__SYSTEM__THRESH_HIGH                                                   = 0x00EC,
00299       GPH__SYSTEM__THRESH_HIGH_HI                                                = 0x00EC,
00300       GPH__SYSTEM__THRESH_HIGH_LO                                                = 0x00ED,
00301       GPH__SYSTEM__THRESH_LOW                                                    = 0x00EE,
00302       GPH__SYSTEM__THRESH_LOW_HI                                                 = 0x00EE,
00303       GPH__SYSTEM__THRESH_LOW_LO                                                 = 0x00EF,
00304       GPH__SYSTEM__ENABLE_XTALK_PER_QUADRANT                                     = 0x00F0,
00305       GPH__SPARE_0                                                               = 0x00F1,
00306       GPH__SD_CONFIG__WOI_SD0                                                    = 0x00F2,
00307       GPH__SD_CONFIG__WOI_SD1                                                    = 0x00F3,
00308       GPH__SD_CONFIG__INITIAL_PHASE_SD0                                          = 0x00F4,
00309       GPH__SD_CONFIG__INITIAL_PHASE_SD1                                          = 0x00F5,
00310       GPH__SD_CONFIG__FIRST_ORDER_SELECT                                         = 0x00F6,
00311       GPH__SD_CONFIG__QUANTIFIER                                                 = 0x00F7,
00312       GPH__ROI_CONFIG__USER_ROI_CENTRE_SPAD                                      = 0x00F8,
00313       GPH__ROI_CONFIG__USER_ROI_REQUESTED_GLOBAL_XY_SIZE                         = 0x00F9,
00314       GPH__SYSTEM__SEQUENCE_CONFIG                                               = 0x00FA,
00315       GPH__GPH_ID                                                                = 0x00FB,
00316       SYSTEM__INTERRUPT_SET                                                      = 0x00FC,
00317       INTERRUPT_MANAGER__ENABLES                                                 = 0x00FD,
00318       INTERRUPT_MANAGER__CLEAR                                                   = 0x00FE,
00319       INTERRUPT_MANAGER__STATUS                                                  = 0x00FF,
00320       MCU_TO_HOST_BANK__WR_ACCESS_EN                                             = 0x0100,
00321       POWER_MANAGEMENT__GO1_RESET_STATUS                                         = 0x0101,
00322       PAD_STARTUP_MODE__VALUE_RO                                                 = 0x0102,
00323       PAD_STARTUP_MODE__VALUE_CTRL                                               = 0x0103,
00324       PLL_PERIOD_US                                                              = 0x0104,
00325       PLL_PERIOD_US_3                                                            = 0x0104,
00326       PLL_PERIOD_US_2                                                            = 0x0105,
00327       PLL_PERIOD_US_1                                                            = 0x0106,
00328       PLL_PERIOD_US_0                                                            = 0x0107,
00329       INTERRUPT_SCHEDULER__DATA_OUT                                              = 0x0108,
00330       INTERRUPT_SCHEDULER__DATA_OUT_3                                            = 0x0108,
00331       INTERRUPT_SCHEDULER__DATA_OUT_2                                            = 0x0109,
00332       INTERRUPT_SCHEDULER__DATA_OUT_1                                            = 0x010A,
00333       INTERRUPT_SCHEDULER__DATA_OUT_0                                            = 0x010B,
00334       NVM_BIST__COMPLETE                                                         = 0x010C,
00335       NVM_BIST__STATUS                                                           = 0x010D,
00336       IDENTIFICATION__MODEL_ID                                                   = 0x010F,
00337       IDENTIFICATION__MODULE_TYPE                                                = 0x0110,
00338       IDENTIFICATION__REVISION_ID                                                = 0x0111,
00339       IDENTIFICATION__MODULE_ID                                                  = 0x0112,
00340       IDENTIFICATION__MODULE_ID_HI                                               = 0x0112,
00341       IDENTIFICATION__MODULE_ID_LO                                               = 0x0113,
00342       ANA_CONFIG__FAST_OSC__TRIM_MAX                                             = 0x0114,
00343       ANA_CONFIG__FAST_OSC__FREQ_SET                                             = 0x0115,
00344       ANA_CONFIG__VCSEL_TRIM                                                     = 0x0116,
00345       ANA_CONFIG__VCSEL_SELION                                                   = 0x0117,
00346       ANA_CONFIG__VCSEL_SELION_MAX                                               = 0x0118,
00347       PROTECTED_LASER_SAFETY__LOCK_BIT                                           = 0x0119,
00348       LASER_SAFETY__KEY                                                          = 0x011A,
00349       LASER_SAFETY__KEY_RO                                                       = 0x011B,
00350       LASER_SAFETY__CLIP                                                         = 0x011C,
00351       LASER_SAFETY__MULT                                                         = 0x011D,
00352       GLOBAL_CONFIG__SPAD_ENABLES_RTN_0                                          = 0x011E,
00353       GLOBAL_CONFIG__SPAD_ENABLES_RTN_1                                          = 0x011F,
00354       GLOBAL_CONFIG__SPAD_ENABLES_RTN_2                                          = 0x0120,
00355       GLOBAL_CONFIG__SPAD_ENABLES_RTN_3                                          = 0x0121,
00356       GLOBAL_CONFIG__SPAD_ENABLES_RTN_4                                          = 0x0122,
00357       GLOBAL_CONFIG__SPAD_ENABLES_RTN_5                                          = 0x0123,
00358       GLOBAL_CONFIG__SPAD_ENABLES_RTN_6                                          = 0x0124,
00359       GLOBAL_CONFIG__SPAD_ENABLES_RTN_7                                          = 0x0125,
00360       GLOBAL_CONFIG__SPAD_ENABLES_RTN_8                                          = 0x0126,
00361       GLOBAL_CONFIG__SPAD_ENABLES_RTN_9                                          = 0x0127,
00362       GLOBAL_CONFIG__SPAD_ENABLES_RTN_10                                         = 0x0128,
00363       GLOBAL_CONFIG__SPAD_ENABLES_RTN_11                                         = 0x0129,
00364       GLOBAL_CONFIG__SPAD_ENABLES_RTN_12                                         = 0x012A,
00365       GLOBAL_CONFIG__SPAD_ENABLES_RTN_13                                         = 0x012B,
00366       GLOBAL_CONFIG__SPAD_ENABLES_RTN_14                                         = 0x012C,
00367       GLOBAL_CONFIG__SPAD_ENABLES_RTN_15                                         = 0x012D,
00368       GLOBAL_CONFIG__SPAD_ENABLES_RTN_16                                         = 0x012E,
00369       GLOBAL_CONFIG__SPAD_ENABLES_RTN_17                                         = 0x012F,
00370       GLOBAL_CONFIG__SPAD_ENABLES_RTN_18                                         = 0x0130,
00371       GLOBAL_CONFIG__SPAD_ENABLES_RTN_19                                         = 0x0131,
00372       GLOBAL_CONFIG__SPAD_ENABLES_RTN_20                                         = 0x0132,
00373       GLOBAL_CONFIG__SPAD_ENABLES_RTN_21                                         = 0x0133,
00374       GLOBAL_CONFIG__SPAD_ENABLES_RTN_22                                         = 0x0134,
00375       GLOBAL_CONFIG__SPAD_ENABLES_RTN_23                                         = 0x0135,
00376       GLOBAL_CONFIG__SPAD_ENABLES_RTN_24                                         = 0x0136,
00377       GLOBAL_CONFIG__SPAD_ENABLES_RTN_25                                         = 0x0137,
00378       GLOBAL_CONFIG__SPAD_ENABLES_RTN_26                                         = 0x0138,
00379       GLOBAL_CONFIG__SPAD_ENABLES_RTN_27                                         = 0x0139,
00380       GLOBAL_CONFIG__SPAD_ENABLES_RTN_28                                         = 0x013A,
00381       GLOBAL_CONFIG__SPAD_ENABLES_RTN_29                                         = 0x013B,
00382       GLOBAL_CONFIG__SPAD_ENABLES_RTN_30                                         = 0x013C,
00383       GLOBAL_CONFIG__SPAD_ENABLES_RTN_31                                         = 0x013D,
00384       ROI_CONFIG__MODE_ROI_CENTRE_SPAD                                           = 0x013E,
00385       ROI_CONFIG__MODE_ROI_XY_SIZE                                               = 0x013F,
00386       GO2_HOST_BANK_ACCESS__OVERRIDE                                             = 0x0300,
00387       MCU_UTIL_MULTIPLIER__MULTIPLICAND                                          = 0x0400,
00388       MCU_UTIL_MULTIPLIER__MULTIPLICAND_3                                        = 0x0400,
00389       MCU_UTIL_MULTIPLIER__MULTIPLICAND_2                                        = 0x0401,
00390       MCU_UTIL_MULTIPLIER__MULTIPLICAND_1                                        = 0x0402,
00391       MCU_UTIL_MULTIPLIER__MULTIPLICAND_0                                        = 0x0403,
00392       MCU_UTIL_MULTIPLIER__MULTIPLIER                                            = 0x0404,
00393       MCU_UTIL_MULTIPLIER__MULTIPLIER_3                                          = 0x0404,
00394       MCU_UTIL_MULTIPLIER__MULTIPLIER_2                                          = 0x0405,
00395       MCU_UTIL_MULTIPLIER__MULTIPLIER_1                                          = 0x0406,
00396       MCU_UTIL_MULTIPLIER__MULTIPLIER_0                                          = 0x0407,
00397       MCU_UTIL_MULTIPLIER__PRODUCT_HI                                            = 0x0408,
00398       MCU_UTIL_MULTIPLIER__PRODUCT_HI_3                                          = 0x0408,
00399       MCU_UTIL_MULTIPLIER__PRODUCT_HI_2                                          = 0x0409,
00400       MCU_UTIL_MULTIPLIER__PRODUCT_HI_1                                          = 0x040A,
00401       MCU_UTIL_MULTIPLIER__PRODUCT_HI_0                                          = 0x040B,
00402       MCU_UTIL_MULTIPLIER__PRODUCT_LO                                            = 0x040C,
00403       MCU_UTIL_MULTIPLIER__PRODUCT_LO_3                                          = 0x040C,
00404       MCU_UTIL_MULTIPLIER__PRODUCT_LO_2                                          = 0x040D,
00405       MCU_UTIL_MULTIPLIER__PRODUCT_LO_1                                          = 0x040E,
00406       MCU_UTIL_MULTIPLIER__PRODUCT_LO_0                                          = 0x040F,
00407       MCU_UTIL_MULTIPLIER__START                                                 = 0x0410,
00408       MCU_UTIL_MULTIPLIER__STATUS                                                = 0x0411,
00409       MCU_UTIL_DIVIDER__START                                                    = 0x0412,
00410       MCU_UTIL_DIVIDER__STATUS                                                   = 0x0413,
00411       MCU_UTIL_DIVIDER__DIVIDEND                                                 = 0x0414,
00412       MCU_UTIL_DIVIDER__DIVIDEND_3                                               = 0x0414,
00413       MCU_UTIL_DIVIDER__DIVIDEND_2                                               = 0x0415,
00414       MCU_UTIL_DIVIDER__DIVIDEND_1                                               = 0x0416,
00415       MCU_UTIL_DIVIDER__DIVIDEND_0                                               = 0x0417,
00416       MCU_UTIL_DIVIDER__DIVISOR                                                  = 0x0418,
00417       MCU_UTIL_DIVIDER__DIVISOR_3                                                = 0x0418,
00418       MCU_UTIL_DIVIDER__DIVISOR_2                                                = 0x0419,
00419       MCU_UTIL_DIVIDER__DIVISOR_1                                                = 0x041A,
00420       MCU_UTIL_DIVIDER__DIVISOR_0                                                = 0x041B,
00421       MCU_UTIL_DIVIDER__QUOTIENT                                                 = 0x041C,
00422       MCU_UTIL_DIVIDER__QUOTIENT_3                                               = 0x041C,
00423       MCU_UTIL_DIVIDER__QUOTIENT_2                                               = 0x041D,
00424       MCU_UTIL_DIVIDER__QUOTIENT_1                                               = 0x041E,
00425       MCU_UTIL_DIVIDER__QUOTIENT_0                                               = 0x041F,
00426       TIMER0__VALUE_IN                                                           = 0x0420,
00427       TIMER0__VALUE_IN_3                                                         = 0x0420,
00428       TIMER0__VALUE_IN_2                                                         = 0x0421,
00429       TIMER0__VALUE_IN_1                                                         = 0x0422,
00430       TIMER0__VALUE_IN_0                                                         = 0x0423,
00431       TIMER1__VALUE_IN                                                           = 0x0424,
00432       TIMER1__VALUE_IN_3                                                         = 0x0424,
00433       TIMER1__VALUE_IN_2                                                         = 0x0425,
00434       TIMER1__VALUE_IN_1                                                         = 0x0426,
00435       TIMER1__VALUE_IN_0                                                         = 0x0427,
00436       TIMER0__CTRL                                                               = 0x0428,
00437       TIMER1__CTRL                                                               = 0x0429,
00438       MCU_GENERAL_PURPOSE__GP_0                                                  = 0x042C,
00439       MCU_GENERAL_PURPOSE__GP_1                                                  = 0x042D,
00440       MCU_GENERAL_PURPOSE__GP_2                                                  = 0x042E,
00441       MCU_GENERAL_PURPOSE__GP_3                                                  = 0x042F,
00442       MCU_RANGE_CALC__CONFIG                                                     = 0x0430,
00443       MCU_RANGE_CALC__OFFSET_CORRECTED_RANGE                                     = 0x0432,
00444       MCU_RANGE_CALC__OFFSET_CORRECTED_RANGE_HI                                  = 0x0432,
00445       MCU_RANGE_CALC__OFFSET_CORRECTED_RANGE_LO                                  = 0x0433,
00446       MCU_RANGE_CALC__SPARE_4                                                    = 0x0434,
00447       MCU_RANGE_CALC__SPARE_4_3                                                  = 0x0434,
00448       MCU_RANGE_CALC__SPARE_4_2                                                  = 0x0435,
00449       MCU_RANGE_CALC__SPARE_4_1                                                  = 0x0436,
00450       MCU_RANGE_CALC__SPARE_4_0                                                  = 0x0437,
00451       MCU_RANGE_CALC__AMBIENT_DURATION_PRE_CALC                                  = 0x0438,
00452       MCU_RANGE_CALC__AMBIENT_DURATION_PRE_CALC_HI                               = 0x0438,
00453       MCU_RANGE_CALC__AMBIENT_DURATION_PRE_CALC_LO                               = 0x0439,
00454       MCU_RANGE_CALC__ALGO_VCSEL_PERIOD                                          = 0x043C,
00455       MCU_RANGE_CALC__SPARE_5                                                    = 0x043D,
00456       MCU_RANGE_CALC__ALGO_TOTAL_PERIODS                                         = 0x043E,
00457       MCU_RANGE_CALC__ALGO_TOTAL_PERIODS_HI                                      = 0x043E,
00458       MCU_RANGE_CALC__ALGO_TOTAL_PERIODS_LO                                      = 0x043F,
00459       MCU_RANGE_CALC__ALGO_ACCUM_PHASE                                           = 0x0440,
00460       MCU_RANGE_CALC__ALGO_ACCUM_PHASE_3                                         = 0x0440,
00461       MCU_RANGE_CALC__ALGO_ACCUM_PHASE_2                                         = 0x0441,
00462       MCU_RANGE_CALC__ALGO_ACCUM_PHASE_1                                         = 0x0442,
00463       MCU_RANGE_CALC__ALGO_ACCUM_PHASE_0                                         = 0x0443,
00464       MCU_RANGE_CALC__ALGO_SIGNAL_EVENTS                                         = 0x0444,
00465       MCU_RANGE_CALC__ALGO_SIGNAL_EVENTS_3                                       = 0x0444,
00466       MCU_RANGE_CALC__ALGO_SIGNAL_EVENTS_2                                       = 0x0445,
00467       MCU_RANGE_CALC__ALGO_SIGNAL_EVENTS_1                                       = 0x0446,
00468       MCU_RANGE_CALC__ALGO_SIGNAL_EVENTS_0                                       = 0x0447,
00469       MCU_RANGE_CALC__ALGO_AMBIENT_EVENTS                                        = 0x0448,
00470       MCU_RANGE_CALC__ALGO_AMBIENT_EVENTS_3                                      = 0x0448,
00471       MCU_RANGE_CALC__ALGO_AMBIENT_EVENTS_2                                      = 0x0449,
00472       MCU_RANGE_CALC__ALGO_AMBIENT_EVENTS_1                                      = 0x044A,
00473       MCU_RANGE_CALC__ALGO_AMBIENT_EVENTS_0                                      = 0x044B,
00474       MCU_RANGE_CALC__SPARE_6                                                    = 0x044C,
00475       MCU_RANGE_CALC__SPARE_6_HI                                                 = 0x044C,
00476       MCU_RANGE_CALC__SPARE_6_LO                                                 = 0x044D,
00477       MCU_RANGE_CALC__ALGO_ADJUST_VCSEL_PERIOD                                   = 0x044E,
00478       MCU_RANGE_CALC__ALGO_ADJUST_VCSEL_PERIOD_HI                                = 0x044E,
00479       MCU_RANGE_CALC__ALGO_ADJUST_VCSEL_PERIOD_LO                                = 0x044F,
00480       MCU_RANGE_CALC__NUM_SPADS                                                  = 0x0450,
00481       MCU_RANGE_CALC__NUM_SPADS_HI                                               = 0x0450,
00482       MCU_RANGE_CALC__NUM_SPADS_LO                                               = 0x0451,
00483       MCU_RANGE_CALC__PHASE_OUTPUT                                               = 0x0452,
00484       MCU_RANGE_CALC__PHASE_OUTPUT_HI                                            = 0x0452,
00485       MCU_RANGE_CALC__PHASE_OUTPUT_LO                                            = 0x0453,
00486       MCU_RANGE_CALC__RATE_PER_SPAD_MCPS                                         = 0x0454,
00487       MCU_RANGE_CALC__RATE_PER_SPAD_MCPS_3                                       = 0x0454,
00488       MCU_RANGE_CALC__RATE_PER_SPAD_MCPS_2                                       = 0x0455,
00489       MCU_RANGE_CALC__RATE_PER_SPAD_MCPS_1                                       = 0x0456,
00490       MCU_RANGE_CALC__RATE_PER_SPAD_MCPS_0                                       = 0x0457,
00491       MCU_RANGE_CALC__SPARE_7                                                    = 0x0458,
00492       MCU_RANGE_CALC__SPARE_8                                                    = 0x0459,
00493       MCU_RANGE_CALC__PEAK_SIGNAL_RATE_MCPS                                      = 0x045A,
00494       MCU_RANGE_CALC__PEAK_SIGNAL_RATE_MCPS_HI                                   = 0x045A,
00495       MCU_RANGE_CALC__PEAK_SIGNAL_RATE_MCPS_LO                                   = 0x045B,
00496       MCU_RANGE_CALC__AVG_SIGNAL_RATE_MCPS                                       = 0x045C,
00497       MCU_RANGE_CALC__AVG_SIGNAL_RATE_MCPS_HI                                    = 0x045C,
00498       MCU_RANGE_CALC__AVG_SIGNAL_RATE_MCPS_LO                                    = 0x045D,
00499       MCU_RANGE_CALC__AMBIENT_RATE_MCPS                                          = 0x045E,
00500       MCU_RANGE_CALC__AMBIENT_RATE_MCPS_HI                                       = 0x045E,
00501       MCU_RANGE_CALC__AMBIENT_RATE_MCPS_LO                                       = 0x045F,
00502       MCU_RANGE_CALC__XTALK                                                      = 0x0460,
00503       MCU_RANGE_CALC__XTALK_HI                                                   = 0x0460,
00504       MCU_RANGE_CALC__XTALK_LO                                                   = 0x0461,
00505       MCU_RANGE_CALC__CALC_STATUS                                                = 0x0462,
00506       MCU_RANGE_CALC__DEBUG                                                      = 0x0463,
00507       MCU_RANGE_CALC__PEAK_SIGNAL_RATE_XTALK_CORR_MCPS                           = 0x0464,
00508       MCU_RANGE_CALC__PEAK_SIGNAL_RATE_XTALK_CORR_MCPS_HI                        = 0x0464,
00509       MCU_RANGE_CALC__PEAK_SIGNAL_RATE_XTALK_CORR_MCPS_LO                        = 0x0465,
00510       MCU_RANGE_CALC__SPARE_0                                                    = 0x0468,
00511       MCU_RANGE_CALC__SPARE_1                                                    = 0x0469,
00512       MCU_RANGE_CALC__SPARE_2                                                    = 0x046A,
00513       MCU_RANGE_CALC__SPARE_3                                                    = 0x046B,
00514       PATCH__CTRL                                                                = 0x0470,
00515       PATCH__JMP_ENABLES                                                         = 0x0472,
00516       PATCH__JMP_ENABLES_HI                                                      = 0x0472,
00517       PATCH__JMP_ENABLES_LO                                                      = 0x0473,
00518       PATCH__DATA_ENABLES                                                        = 0x0474,
00519       PATCH__DATA_ENABLES_HI                                                     = 0x0474,
00520       PATCH__DATA_ENABLES_LO                                                     = 0x0475,
00521       PATCH__OFFSET_0                                                            = 0x0476,
00522       PATCH__OFFSET_0_HI                                                         = 0x0476,
00523       PATCH__OFFSET_0_LO                                                         = 0x0477,
00524       PATCH__OFFSET_1                                                            = 0x0478,
00525       PATCH__OFFSET_1_HI                                                         = 0x0478,
00526       PATCH__OFFSET_1_LO                                                         = 0x0479,
00527       PATCH__OFFSET_2                                                            = 0x047A,
00528       PATCH__OFFSET_2_HI                                                         = 0x047A,
00529       PATCH__OFFSET_2_LO                                                         = 0x047B,
00530       PATCH__OFFSET_3                                                            = 0x047C,
00531       PATCH__OFFSET_3_HI                                                         = 0x047C,
00532       PATCH__OFFSET_3_LO                                                         = 0x047D,
00533       PATCH__OFFSET_4                                                            = 0x047E,
00534       PATCH__OFFSET_4_HI                                                         = 0x047E,
00535       PATCH__OFFSET_4_LO                                                         = 0x047F,
00536       PATCH__OFFSET_5                                                            = 0x0480,
00537       PATCH__OFFSET_5_HI                                                         = 0x0480,
00538       PATCH__OFFSET_5_LO                                                         = 0x0481,
00539       PATCH__OFFSET_6                                                            = 0x0482,
00540       PATCH__OFFSET_6_HI                                                         = 0x0482,
00541       PATCH__OFFSET_6_LO                                                         = 0x0483,
00542       PATCH__OFFSET_7                                                            = 0x0484,
00543       PATCH__OFFSET_7_HI                                                         = 0x0484,
00544       PATCH__OFFSET_7_LO                                                         = 0x0485,
00545       PATCH__OFFSET_8                                                            = 0x0486,
00546       PATCH__OFFSET_8_HI                                                         = 0x0486,
00547       PATCH__OFFSET_8_LO                                                         = 0x0487,
00548       PATCH__OFFSET_9                                                            = 0x0488,
00549       PATCH__OFFSET_9_HI                                                         = 0x0488,
00550       PATCH__OFFSET_9_LO                                                         = 0x0489,
00551       PATCH__OFFSET_10                                                           = 0x048A,
00552       PATCH__OFFSET_10_HI                                                        = 0x048A,
00553       PATCH__OFFSET_10_LO                                                        = 0x048B,
00554       PATCH__OFFSET_11                                                           = 0x048C,
00555       PATCH__OFFSET_11_HI                                                        = 0x048C,
00556       PATCH__OFFSET_11_LO                                                        = 0x048D,
00557       PATCH__OFFSET_12                                                           = 0x048E,
00558       PATCH__OFFSET_12_HI                                                        = 0x048E,
00559       PATCH__OFFSET_12_LO                                                        = 0x048F,
00560       PATCH__OFFSET_13                                                           = 0x0490,
00561       PATCH__OFFSET_13_HI                                                        = 0x0490,
00562       PATCH__OFFSET_13_LO                                                        = 0x0491,
00563       PATCH__OFFSET_14                                                           = 0x0492,
00564       PATCH__OFFSET_14_HI                                                        = 0x0492,
00565       PATCH__OFFSET_14_LO                                                        = 0x0493,
00566       PATCH__OFFSET_15                                                           = 0x0494,
00567       PATCH__OFFSET_15_HI                                                        = 0x0494,
00568       PATCH__OFFSET_15_LO                                                        = 0x0495,
00569       PATCH__ADDRESS_0                                                           = 0x0496,
00570       PATCH__ADDRESS_0_HI                                                        = 0x0496,
00571       PATCH__ADDRESS_0_LO                                                        = 0x0497,
00572       PATCH__ADDRESS_1                                                           = 0x0498,
00573       PATCH__ADDRESS_1_HI                                                        = 0x0498,
00574       PATCH__ADDRESS_1_LO                                                        = 0x0499,
00575       PATCH__ADDRESS_2                                                           = 0x049A,
00576       PATCH__ADDRESS_2_HI                                                        = 0x049A,
00577       PATCH__ADDRESS_2_LO                                                        = 0x049B,
00578       PATCH__ADDRESS_3                                                           = 0x049C,
00579       PATCH__ADDRESS_3_HI                                                        = 0x049C,
00580       PATCH__ADDRESS_3_LO                                                        = 0x049D,
00581       PATCH__ADDRESS_4                                                           = 0x049E,
00582       PATCH__ADDRESS_4_HI                                                        = 0x049E,
00583       PATCH__ADDRESS_4_LO                                                        = 0x049F,
00584       PATCH__ADDRESS_5                                                           = 0x04A0,
00585       PATCH__ADDRESS_5_HI                                                        = 0x04A0,
00586       PATCH__ADDRESS_5_LO                                                        = 0x04A1,
00587       PATCH__ADDRESS_6                                                           = 0x04A2,
00588       PATCH__ADDRESS_6_HI                                                        = 0x04A2,
00589       PATCH__ADDRESS_6_LO                                                        = 0x04A3,
00590       PATCH__ADDRESS_7                                                           = 0x04A4,
00591       PATCH__ADDRESS_7_HI                                                        = 0x04A4,
00592       PATCH__ADDRESS_7_LO                                                        = 0x04A5,
00593       PATCH__ADDRESS_8                                                           = 0x04A6,
00594       PATCH__ADDRESS_8_HI                                                        = 0x04A6,
00595       PATCH__ADDRESS_8_LO                                                        = 0x04A7,
00596       PATCH__ADDRESS_9                                                           = 0x04A8,
00597       PATCH__ADDRESS_9_HI                                                        = 0x04A8,
00598       PATCH__ADDRESS_9_LO                                                        = 0x04A9,
00599       PATCH__ADDRESS_10                                                          = 0x04AA,
00600       PATCH__ADDRESS_10_HI                                                       = 0x04AA,
00601       PATCH__ADDRESS_10_LO                                                       = 0x04AB,
00602       PATCH__ADDRESS_11                                                          = 0x04AC,
00603       PATCH__ADDRESS_11_HI                                                       = 0x04AC,
00604       PATCH__ADDRESS_11_LO                                                       = 0x04AD,
00605       PATCH__ADDRESS_12                                                          = 0x04AE,
00606       PATCH__ADDRESS_12_HI                                                       = 0x04AE,
00607       PATCH__ADDRESS_12_LO                                                       = 0x04AF,
00608       PATCH__ADDRESS_13                                                          = 0x04B0,
00609       PATCH__ADDRESS_13_HI                                                       = 0x04B0,
00610       PATCH__ADDRESS_13_LO                                                       = 0x04B1,
00611       PATCH__ADDRESS_14                                                          = 0x04B2,
00612       PATCH__ADDRESS_14_HI                                                       = 0x04B2,
00613       PATCH__ADDRESS_14_LO                                                       = 0x04B3,
00614       PATCH__ADDRESS_15                                                          = 0x04B4,
00615       PATCH__ADDRESS_15_HI                                                       = 0x04B4,
00616       PATCH__ADDRESS_15_LO                                                       = 0x04B5,
00617       SPI_ASYNC_MUX__CTRL                                                        = 0x04C0,
00618       CLK__CONFIG                                                                = 0x04C4,
00619       GPIO_LV_MUX__CTRL                                                          = 0x04CC,
00620       GPIO_LV_PAD__CTRL                                                          = 0x04CD,
00621       PAD_I2C_LV__CONFIG                                                         = 0x04D0,
00622       PAD_STARTUP_MODE__VALUE_RO_GO1                                             = 0x04D4,
00623       HOST_IF__STATUS_GO1                                                        = 0x04D5,
00624       MCU_CLK_GATING__CTRL                                                       = 0x04D8,
00625       TEST__BIST_ROM_CTRL                                                        = 0x04E0,
00626       TEST__BIST_ROM_RESULT                                                      = 0x04E1,
00627       TEST__BIST_ROM_MCU_SIG                                                     = 0x04E2,
00628       TEST__BIST_ROM_MCU_SIG_HI                                                  = 0x04E2,
00629       TEST__BIST_ROM_MCU_SIG_LO                                                  = 0x04E3,
00630       TEST__BIST_RAM_CTRL                                                        = 0x04E4,
00631       TEST__BIST_RAM_RESULT                                                      = 0x04E5,
00632       TEST__TMC                                                                  = 0x04E8,
00633       TEST__PLL_BIST_MIN_THRESHOLD                                               = 0x04F0,
00634       TEST__PLL_BIST_MIN_THRESHOLD_HI                                            = 0x04F0,
00635       TEST__PLL_BIST_MIN_THRESHOLD_LO                                            = 0x04F1,
00636       TEST__PLL_BIST_MAX_THRESHOLD                                               = 0x04F2,
00637       TEST__PLL_BIST_MAX_THRESHOLD_HI                                            = 0x04F2,
00638       TEST__PLL_BIST_MAX_THRESHOLD_LO                                            = 0x04F3,
00639       TEST__PLL_BIST_COUNT_OUT                                                   = 0x04F4,
00640       TEST__PLL_BIST_COUNT_OUT_HI                                                = 0x04F4,
00641       TEST__PLL_BIST_COUNT_OUT_LO                                                = 0x04F5,
00642       TEST__PLL_BIST_GONOGO                                                      = 0x04F6,
00643       TEST__PLL_BIST_CTRL                                                        = 0x04F7,
00644       RANGING_CORE__DEVICE_ID                                                    = 0x0680,
00645       RANGING_CORE__REVISION_ID                                                  = 0x0681,
00646       RANGING_CORE__CLK_CTRL1                                                    = 0x0683,
00647       RANGING_CORE__CLK_CTRL2                                                    = 0x0684,
00648       RANGING_CORE__WOI_1                                                        = 0x0685,
00649       RANGING_CORE__WOI_REF_1                                                    = 0x0686,
00650       RANGING_CORE__START_RANGING                                                = 0x0687,
00651       RANGING_CORE__LOW_LIMIT_1                                                  = 0x0690,
00652       RANGING_CORE__HIGH_LIMIT_1                                                 = 0x0691,
00653       RANGING_CORE__LOW_LIMIT_REF_1                                              = 0x0692,
00654       RANGING_CORE__HIGH_LIMIT_REF_1                                             = 0x0693,
00655       RANGING_CORE__QUANTIFIER_1_MSB                                             = 0x0694,
00656       RANGING_CORE__QUANTIFIER_1_LSB                                             = 0x0695,
00657       RANGING_CORE__QUANTIFIER_REF_1_MSB                                         = 0x0696,
00658       RANGING_CORE__QUANTIFIER_REF_1_LSB                                         = 0x0697,
00659       RANGING_CORE__AMBIENT_OFFSET_1_MSB                                         = 0x0698,
00660       RANGING_CORE__AMBIENT_OFFSET_1_LSB                                         = 0x0699,
00661       RANGING_CORE__AMBIENT_OFFSET_REF_1_MSB                                     = 0x069A,
00662       RANGING_CORE__AMBIENT_OFFSET_REF_1_LSB                                     = 0x069B,
00663       RANGING_CORE__FILTER_STRENGTH_1                                            = 0x069C,
00664       RANGING_CORE__FILTER_STRENGTH_REF_1                                        = 0x069D,
00665       RANGING_CORE__SIGNAL_EVENT_LIMIT_1_MSB                                     = 0x069E,
00666       RANGING_CORE__SIGNAL_EVENT_LIMIT_1_LSB                                     = 0x069F,
00667       RANGING_CORE__SIGNAL_EVENT_LIMIT_REF_1_MSB                                 = 0x06A0,
00668       RANGING_CORE__SIGNAL_EVENT_LIMIT_REF_1_LSB                                 = 0x06A1,
00669       RANGING_CORE__TIMEOUT_OVERALL_PERIODS_MSB                                  = 0x06A4,
00670       RANGING_CORE__TIMEOUT_OVERALL_PERIODS_LSB                                  = 0x06A5,
00671       RANGING_CORE__INVERT_HW                                                    = 0x06A6,
00672       RANGING_CORE__FORCE_HW                                                     = 0x06A7,
00673       RANGING_CORE__STATIC_HW_VALUE                                              = 0x06A8,
00674       RANGING_CORE__FORCE_CONTINUOUS_AMBIENT                                     = 0x06A9,
00675       RANGING_CORE__TEST_PHASE_SELECT_TO_FILTER                                  = 0x06AA,
00676       RANGING_CORE__TEST_PHASE_SELECT_TO_TIMING_GEN                              = 0x06AB,
00677       RANGING_CORE__INITIAL_PHASE_VALUE_1                                        = 0x06AC,
00678       RANGING_CORE__INITIAL_PHASE_VALUE_REF_1                                    = 0x06AD,
00679       RANGING_CORE__FORCE_UP_IN                                                  = 0x06AE,
00680       RANGING_CORE__FORCE_DN_IN                                                  = 0x06AF,
00681       RANGING_CORE__STATIC_UP_VALUE_1                                            = 0x06B0,
00682       RANGING_CORE__STATIC_UP_VALUE_REF_1                                        = 0x06B1,
00683       RANGING_CORE__STATIC_DN_VALUE_1                                            = 0x06B2,
00684       RANGING_CORE__STATIC_DN_VALUE_REF_1                                        = 0x06B3,
00685       RANGING_CORE__MONITOR_UP_DN                                                = 0x06B4,
00686       RANGING_CORE__INVERT_UP_DN                                                 = 0x06B5,
00687       RANGING_CORE__CPUMP_1                                                      = 0x06B6,
00688       RANGING_CORE__CPUMP_2                                                      = 0x06B7,
00689       RANGING_CORE__CPUMP_3                                                      = 0x06B8,
00690       RANGING_CORE__OSC_1                                                        = 0x06B9,
00691       RANGING_CORE__PLL_1                                                        = 0x06BB,
00692       RANGING_CORE__PLL_2                                                        = 0x06BC,
00693       RANGING_CORE__REFERENCE_1                                                  = 0x06BD,
00694       RANGING_CORE__REFERENCE_3                                                  = 0x06BF,
00695       RANGING_CORE__REFERENCE_4                                                  = 0x06C0,
00696       RANGING_CORE__REFERENCE_5                                                  = 0x06C1,
00697       RANGING_CORE__REGAVDD1V2                                                   = 0x06C3,
00698       RANGING_CORE__CALIB_1                                                      = 0x06C4,
00699       RANGING_CORE__CALIB_2                                                      = 0x06C5,
00700       RANGING_CORE__CALIB_3                                                      = 0x06C6,
00701       RANGING_CORE__TST_MUX_SEL1                                                 = 0x06C9,
00702       RANGING_CORE__TST_MUX_SEL2                                                 = 0x06CA,
00703       RANGING_CORE__TST_MUX                                                      = 0x06CB,
00704       RANGING_CORE__GPIO_OUT_TESTMUX                                             = 0x06CC,
00705       RANGING_CORE__CUSTOM_FE                                                    = 0x06CD,
00706       RANGING_CORE__CUSTOM_FE_2                                                  = 0x06CE,
00707       RANGING_CORE__SPAD_READOUT                                                 = 0x06CF,
00708       RANGING_CORE__SPAD_READOUT_1                                               = 0x06D0,
00709       RANGING_CORE__SPAD_READOUT_2                                               = 0x06D1,
00710       RANGING_CORE__SPAD_PS                                                      = 0x06D2,
00711       RANGING_CORE__LASER_SAFETY_2                                               = 0x06D4,
00712       RANGING_CORE__NVM_CTRL__MODE                                               = 0x0780,
00713       RANGING_CORE__NVM_CTRL__PDN                                                = 0x0781,
00714       RANGING_CORE__NVM_CTRL__PROGN                                              = 0x0782,
00715       RANGING_CORE__NVM_CTRL__READN                                              = 0x0783,
00716       RANGING_CORE__NVM_CTRL__PULSE_WIDTH_MSB                                    = 0x0784,
00717       RANGING_CORE__NVM_CTRL__PULSE_WIDTH_LSB                                    = 0x0785,
00718       RANGING_CORE__NVM_CTRL__HV_RISE_MSB                                        = 0x0786,
00719       RANGING_CORE__NVM_CTRL__HV_RISE_LSB                                        = 0x0787,
00720       RANGING_CORE__NVM_CTRL__HV_FALL_MSB                                        = 0x0788,
00721       RANGING_CORE__NVM_CTRL__HV_FALL_LSB                                        = 0x0789,
00722       RANGING_CORE__NVM_CTRL__TST                                                = 0x078A,
00723       RANGING_CORE__NVM_CTRL__TESTREAD                                           = 0x078B,
00724       RANGING_CORE__NVM_CTRL__DATAIN_MMM                                         = 0x078C,
00725       RANGING_CORE__NVM_CTRL__DATAIN_LMM                                         = 0x078D,
00726       RANGING_CORE__NVM_CTRL__DATAIN_LLM                                         = 0x078E,
00727       RANGING_CORE__NVM_CTRL__DATAIN_LLL                                         = 0x078F,
00728       RANGING_CORE__NVM_CTRL__DATAOUT_MMM                                        = 0x0790,
00729       RANGING_CORE__NVM_CTRL__DATAOUT_LMM                                        = 0x0791,
00730       RANGING_CORE__NVM_CTRL__DATAOUT_LLM                                        = 0x0792,
00731       RANGING_CORE__NVM_CTRL__DATAOUT_LLL                                        = 0x0793,
00732       RANGING_CORE__NVM_CTRL__ADDR                                               = 0x0794,
00733       RANGING_CORE__NVM_CTRL__DATAOUT_ECC                                        = 0x0795,
00734       RANGING_CORE__RET_SPAD_EN_0                                                = 0x0796,
00735       RANGING_CORE__RET_SPAD_EN_1                                                = 0x0797,
00736       RANGING_CORE__RET_SPAD_EN_2                                                = 0x0798,
00737       RANGING_CORE__RET_SPAD_EN_3                                                = 0x0799,
00738       RANGING_CORE__RET_SPAD_EN_4                                                = 0x079A,
00739       RANGING_CORE__RET_SPAD_EN_5                                                = 0x079B,
00740       RANGING_CORE__RET_SPAD_EN_6                                                = 0x079C,
00741       RANGING_CORE__RET_SPAD_EN_7                                                = 0x079D,
00742       RANGING_CORE__RET_SPAD_EN_8                                                = 0x079E,
00743       RANGING_CORE__RET_SPAD_EN_9                                                = 0x079F,
00744       RANGING_CORE__RET_SPAD_EN_10                                               = 0x07A0,
00745       RANGING_CORE__RET_SPAD_EN_11                                               = 0x07A1,
00746       RANGING_CORE__RET_SPAD_EN_12                                               = 0x07A2,
00747       RANGING_CORE__RET_SPAD_EN_13                                               = 0x07A3,
00748       RANGING_CORE__RET_SPAD_EN_14                                               = 0x07A4,
00749       RANGING_CORE__RET_SPAD_EN_15                                               = 0x07A5,
00750       RANGING_CORE__RET_SPAD_EN_16                                               = 0x07A6,
00751       RANGING_CORE__RET_SPAD_EN_17                                               = 0x07A7,
00752       RANGING_CORE__SPAD_SHIFT_EN                                                = 0x07BA,
00753       RANGING_CORE__SPAD_DISABLE_CTRL                                            = 0x07BB,
00754       RANGING_CORE__SPAD_EN_SHIFT_OUT_DEBUG                                      = 0x07BC,
00755       RANGING_CORE__SPI_MODE                                                     = 0x07BD,
00756       RANGING_CORE__GPIO_DIR                                                     = 0x07BE,
00757       RANGING_CORE__VCSEL_PERIOD                                                 = 0x0880,
00758       RANGING_CORE__VCSEL_START                                                  = 0x0881,
00759       RANGING_CORE__VCSEL_STOP                                                   = 0x0882,
00760       RANGING_CORE__VCSEL_1                                                      = 0x0885,
00761       RANGING_CORE__VCSEL_STATUS                                                 = 0x088D,
00762       RANGING_CORE__STATUS                                                       = 0x0980,
00763       RANGING_CORE__LASER_CONTINUITY_STATE                                       = 0x0981,
00764       RANGING_CORE__RANGE_1_MMM                                                  = 0x0982,
00765       RANGING_CORE__RANGE_1_LMM                                                  = 0x0983,
00766       RANGING_CORE__RANGE_1_LLM                                                  = 0x0984,
00767       RANGING_CORE__RANGE_1_LLL                                                  = 0x0985,
00768       RANGING_CORE__RANGE_REF_1_MMM                                              = 0x0986,
00769       RANGING_CORE__RANGE_REF_1_LMM                                              = 0x0987,
00770       RANGING_CORE__RANGE_REF_1_LLM                                              = 0x0988,
00771       RANGING_CORE__RANGE_REF_1_LLL                                              = 0x0989,
00772       RANGING_CORE__AMBIENT_WINDOW_EVENTS_1_MMM                                  = 0x098A,
00773       RANGING_CORE__AMBIENT_WINDOW_EVENTS_1_LMM                                  = 0x098B,
00774       RANGING_CORE__AMBIENT_WINDOW_EVENTS_1_LLM                                  = 0x098C,
00775       RANGING_CORE__AMBIENT_WINDOW_EVENTS_1_LLL                                  = 0x098D,
00776       RANGING_CORE__RANGING_TOTAL_EVENTS_1_MMM                                   = 0x098E,
00777       RANGING_CORE__RANGING_TOTAL_EVENTS_1_LMM                                   = 0x098F,
00778       RANGING_CORE__RANGING_TOTAL_EVENTS_1_LLM                                   = 0x0990,
00779       RANGING_CORE__RANGING_TOTAL_EVENTS_1_LLL                                   = 0x0991,
00780       RANGING_CORE__SIGNAL_TOTAL_EVENTS_1_MMM                                    = 0x0992,
00781       RANGING_CORE__SIGNAL_TOTAL_EVENTS_1_LMM                                    = 0x0993,
00782       RANGING_CORE__SIGNAL_TOTAL_EVENTS_1_LLM                                    = 0x0994,
00783       RANGING_CORE__SIGNAL_TOTAL_EVENTS_1_LLL                                    = 0x0995,
00784       RANGING_CORE__TOTAL_PERIODS_ELAPSED_1_MM                                   = 0x0996,
00785       RANGING_CORE__TOTAL_PERIODS_ELAPSED_1_LM                                   = 0x0997,
00786       RANGING_CORE__TOTAL_PERIODS_ELAPSED_1_LL                                   = 0x0998,
00787       RANGING_CORE__AMBIENT_MISMATCH_MM                                          = 0x0999,
00788       RANGING_CORE__AMBIENT_MISMATCH_LM                                          = 0x099A,
00789       RANGING_CORE__AMBIENT_MISMATCH_LL                                          = 0x099B,
00790       RANGING_CORE__AMBIENT_WINDOW_EVENTS_REF_1_MMM                              = 0x099C,
00791       RANGING_CORE__AMBIENT_WINDOW_EVENTS_REF_1_LMM                              = 0x099D,
00792       RANGING_CORE__AMBIENT_WINDOW_EVENTS_REF_1_LLM                              = 0x099E,
00793       RANGING_CORE__AMBIENT_WINDOW_EVENTS_REF_1_LLL                              = 0x099F,
00794       RANGING_CORE__RANGING_TOTAL_EVENTS_REF_1_MMM                               = 0x09A0,
00795       RANGING_CORE__RANGING_TOTAL_EVENTS_REF_1_LMM                               = 0x09A1,
00796       RANGING_CORE__RANGING_TOTAL_EVENTS_REF_1_LLM                               = 0x09A2,
00797       RANGING_CORE__RANGING_TOTAL_EVENTS_REF_1_LLL                               = 0x09A3,
00798       RANGING_CORE__SIGNAL_TOTAL_EVENTS_REF_1_MMM                                = 0x09A4,
00799       RANGING_CORE__SIGNAL_TOTAL_EVENTS_REF_1_LMM                                = 0x09A5,
00800       RANGING_CORE__SIGNAL_TOTAL_EVENTS_REF_1_LLM                                = 0x09A6,
00801       RANGING_CORE__SIGNAL_TOTAL_EVENTS_REF_1_LLL                                = 0x09A7,
00802       RANGING_CORE__TOTAL_PERIODS_ELAPSED_REF_1_MM                               = 0x09A8,
00803       RANGING_CORE__TOTAL_PERIODS_ELAPSED_REF_1_LM                               = 0x09A9,
00804       RANGING_CORE__TOTAL_PERIODS_ELAPSED_REF_1_LL                               = 0x09AA,
00805       RANGING_CORE__AMBIENT_MISMATCH_REF_MM                                      = 0x09AB,
00806       RANGING_CORE__AMBIENT_MISMATCH_REF_LM                                      = 0x09AC,
00807       RANGING_CORE__AMBIENT_MISMATCH_REF_LL                                      = 0x09AD,
00808       RANGING_CORE__GPIO_CONFIG__A0                                              = 0x0A00,
00809       RANGING_CORE__RESET_CONTROL__A0                                            = 0x0A01,
00810       RANGING_CORE__INTR_MANAGER__A0                                             = 0x0A02,
00811       RANGING_CORE__POWER_FSM_TIME_OSC__A0                                       = 0x0A06,
00812       RANGING_CORE__VCSEL_ATEST__A0                                              = 0x0A07,
00813       RANGING_CORE__VCSEL_PERIOD_CLIPPED__A0                                     = 0x0A08,
00814       RANGING_CORE__VCSEL_STOP_CLIPPED__A0                                       = 0x0A09,
00815       RANGING_CORE__CALIB_2__A0                                                  = 0x0A0A,
00816       RANGING_CORE__STOP_CONDITION__A0                                           = 0x0A0B,
00817       RANGING_CORE__STATUS_RESET__A0                                             = 0x0A0C,
00818       RANGING_CORE__READOUT_CFG__A0                                              = 0x0A0D,
00819       RANGING_CORE__WINDOW_SETTING__A0                                           = 0x0A0E,
00820       RANGING_CORE__VCSEL_DELAY__A0                                              = 0x0A1A,
00821       RANGING_CORE__REFERENCE_2__A0                                              = 0x0A1B,
00822       RANGING_CORE__REGAVDD1V2__A0                                               = 0x0A1D,
00823       RANGING_CORE__TST_MUX__A0                                                  = 0x0A1F,
00824       RANGING_CORE__CUSTOM_FE_2__A0                                              = 0x0A20,
00825       RANGING_CORE__SPAD_READOUT__A0                                             = 0x0A21,
00826       RANGING_CORE__CPUMP_1__A0                                                  = 0x0A22,
00827       RANGING_CORE__SPARE_REGISTER__A0                                           = 0x0A23,
00828       RANGING_CORE__VCSEL_CONT_STAGE5_BYPASS__A0                                 = 0x0A24,
00829       RANGING_CORE__RET_SPAD_EN_18                                               = 0x0A25,
00830       RANGING_CORE__RET_SPAD_EN_19                                               = 0x0A26,
00831       RANGING_CORE__RET_SPAD_EN_20                                               = 0x0A27,
00832       RANGING_CORE__RET_SPAD_EN_21                                               = 0x0A28,
00833       RANGING_CORE__RET_SPAD_EN_22                                               = 0x0A29,
00834       RANGING_CORE__RET_SPAD_EN_23                                               = 0x0A2A,
00835       RANGING_CORE__RET_SPAD_EN_24                                               = 0x0A2B,
00836       RANGING_CORE__RET_SPAD_EN_25                                               = 0x0A2C,
00837       RANGING_CORE__RET_SPAD_EN_26                                               = 0x0A2D,
00838       RANGING_CORE__RET_SPAD_EN_27                                               = 0x0A2E,
00839       RANGING_CORE__RET_SPAD_EN_28                                               = 0x0A2F,
00840       RANGING_CORE__RET_SPAD_EN_29                                               = 0x0A30,
00841       RANGING_CORE__RET_SPAD_EN_30                                               = 0x0A31,
00842       RANGING_CORE__RET_SPAD_EN_31                                               = 0x0A32,
00843       RANGING_CORE__REF_SPAD_EN_0__EWOK                                          = 0x0A33,
00844       RANGING_CORE__REF_SPAD_EN_1__EWOK                                          = 0x0A34,
00845       RANGING_CORE__REF_SPAD_EN_2__EWOK                                          = 0x0A35,
00846       RANGING_CORE__REF_SPAD_EN_3__EWOK                                          = 0x0A36,
00847       RANGING_CORE__REF_SPAD_EN_4__EWOK                                          = 0x0A37,
00848       RANGING_CORE__REF_SPAD_EN_5__EWOK                                          = 0x0A38,
00849       RANGING_CORE__REF_EN_START_SELECT                                          = 0x0A39,
00850       RANGING_CORE__REGDVDD1V2_ATEST__EWOK                                       = 0x0A41,
00851       SOFT_RESET_GO1                                                             = 0x0B00,
00852       PRIVATE__PATCH_BASE_ADDR_RSLV                                              = 0x0E00,
00853       PREV_SHADOW_RESULT__INTERRUPT_STATUS                                       = 0x0ED0,
00854       PREV_SHADOW_RESULT__RANGE_STATUS                                           = 0x0ED1,
00855       PREV_SHADOW_RESULT__REPORT_STATUS                                          = 0x0ED2,
00856       PREV_SHADOW_RESULT__STREAM_COUNT                                           = 0x0ED3,
00857       PREV_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0                         = 0x0ED4,
00858       PREV_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0_HI                      = 0x0ED4,
00859       PREV_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0_LO                      = 0x0ED5,
00860       PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0                        = 0x0ED6,
00861       PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0_HI                     = 0x0ED6,
00862       PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0_LO                     = 0x0ED7,
00863       PREV_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0                            = 0x0ED8,
00864       PREV_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0_HI                         = 0x0ED8,
00865       PREV_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0_LO                         = 0x0ED9,
00866       PREV_SHADOW_RESULT__SIGMA_SD0                                              = 0x0EDA,
00867       PREV_SHADOW_RESULT__SIGMA_SD0_HI                                           = 0x0EDA,
00868       PREV_SHADOW_RESULT__SIGMA_SD0_LO                                           = 0x0EDB,
00869       PREV_SHADOW_RESULT__PHASE_SD0                                              = 0x0EDC,
00870       PREV_SHADOW_RESULT__PHASE_SD0_HI                                           = 0x0EDC,
00871       PREV_SHADOW_RESULT__PHASE_SD0_LO                                           = 0x0EDD,
00872       PREV_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0                 = 0x0EDE,
00873       PREV_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0_HI              = 0x0EDE,
00874       PREV_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0_LO              = 0x0EDF,
00875       PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0    = 0x0EE0,
00876       PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_HI = 0x0EE0,
00877       PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_LO = 0x0EE1,
00878       PREV_SHADOW_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0                    = 0x0EE2,
00879       PREV_SHADOW_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0_HI                 = 0x0EE2,
00880       PREV_SHADOW_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0_LO                 = 0x0EE3,
00881       PREV_SHADOW_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0                    = 0x0EE4,
00882       PREV_SHADOW_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0_HI                 = 0x0EE4,
00883       PREV_SHADOW_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0_LO                 = 0x0EE5,
00884       PREV_SHADOW_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0                         = 0x0EE6,
00885       PREV_SHADOW_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0_HI                      = 0x0EE6,
00886       PREV_SHADOW_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0_LO                      = 0x0EE7,
00887       PREV_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1                         = 0x0EE8,
00888       PREV_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1_HI                      = 0x0EE8,
00889       PREV_SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1_LO                      = 0x0EE9,
00890       PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1                        = 0x0EEA,
00891       PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1_HI                     = 0x0EEA,
00892       PREV_SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1_LO                     = 0x0EEB,
00893       PREV_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1                            = 0x0EEC,
00894       PREV_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1_HI                         = 0x0EEC,
00895       PREV_SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1_LO                         = 0x0EED,
00896       PREV_SHADOW_RESULT__SIGMA_SD1                                              = 0x0EEE,
00897       PREV_SHADOW_RESULT__SIGMA_SD1_HI                                           = 0x0EEE,
00898       PREV_SHADOW_RESULT__SIGMA_SD1_LO                                           = 0x0EEF,
00899       PREV_SHADOW_RESULT__PHASE_SD1                                              = 0x0EF0,
00900       PREV_SHADOW_RESULT__PHASE_SD1_HI                                           = 0x0EF0,
00901       PREV_SHADOW_RESULT__PHASE_SD1_LO                                           = 0x0EF1,
00902       PREV_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1                 = 0x0EF2,
00903       PREV_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1_HI              = 0x0EF2,
00904       PREV_SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1_LO              = 0x0EF3,
00905       PREV_SHADOW_RESULT__SPARE_0_SD1                                            = 0x0EF4,
00906       PREV_SHADOW_RESULT__SPARE_0_SD1_HI                                         = 0x0EF4,
00907       PREV_SHADOW_RESULT__SPARE_0_SD1_LO                                         = 0x0EF5,
00908       PREV_SHADOW_RESULT__SPARE_1_SD1                                            = 0x0EF6,
00909       PREV_SHADOW_RESULT__SPARE_1_SD1_HI                                         = 0x0EF6,
00910       PREV_SHADOW_RESULT__SPARE_1_SD1_LO                                         = 0x0EF7,
00911       PREV_SHADOW_RESULT__SPARE_2_SD1                                            = 0x0EF8,
00912       PREV_SHADOW_RESULT__SPARE_2_SD1_HI                                         = 0x0EF8,
00913       PREV_SHADOW_RESULT__SPARE_2_SD1_LO                                         = 0x0EF9,
00914       PREV_SHADOW_RESULT__SPARE_3_SD1                                            = 0x0EFA,
00915       PREV_SHADOW_RESULT__SPARE_3_SD1_HI                                         = 0x0EFA,
00916       PREV_SHADOW_RESULT__SPARE_3_SD1_LO                                         = 0x0EFB,
00917       PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0                         = 0x0EFC,
00918       PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_3                       = 0x0EFC,
00919       PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_2                       = 0x0EFD,
00920       PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_1                       = 0x0EFE,
00921       PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_0                       = 0x0EFF,
00922       PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0                          = 0x0F00,
00923       PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_3                        = 0x0F00,
00924       PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_2                        = 0x0F01,
00925       PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_1                        = 0x0F02,
00926       PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_0                        = 0x0F03,
00927       PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0                           = 0x0F04,
00928       PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_3                         = 0x0F04,
00929       PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_2                         = 0x0F05,
00930       PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_1                         = 0x0F06,
00931       PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_0                         = 0x0F07,
00932       PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0                         = 0x0F08,
00933       PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_3                       = 0x0F08,
00934       PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_2                       = 0x0F09,
00935       PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_1                       = 0x0F0A,
00936       PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_0                       = 0x0F0B,
00937       PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1                         = 0x0F0C,
00938       PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_3                       = 0x0F0C,
00939       PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_2                       = 0x0F0D,
00940       PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_1                       = 0x0F0E,
00941       PREV_SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_0                       = 0x0F0F,
00942       PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1                          = 0x0F10,
00943       PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_3                        = 0x0F10,
00944       PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_2                        = 0x0F11,
00945       PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_1                        = 0x0F12,
00946       PREV_SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_0                        = 0x0F13,
00947       PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1                           = 0x0F14,
00948       PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_3                         = 0x0F14,
00949       PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_2                         = 0x0F15,
00950       PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_1                         = 0x0F16,
00951       PREV_SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_0                         = 0x0F17,
00952       PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1                         = 0x0F18,
00953       PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_3                       = 0x0F18,
00954       PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_2                       = 0x0F19,
00955       PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_1                       = 0x0F1A,
00956       PREV_SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_0                       = 0x0F1B,
00957       PREV_SHADOW_RESULT_CORE__SPARE_0                                           = 0x0F1C,
00958       RESULT__DEBUG_STATUS                                                       = 0x0F20,
00959       RESULT__DEBUG_STAGE                                                        = 0x0F21,
00960       GPH__SYSTEM__THRESH_RATE_HIGH                                              = 0x0F24,
00961       GPH__SYSTEM__THRESH_RATE_HIGH_HI                                           = 0x0F24,
00962       GPH__SYSTEM__THRESH_RATE_HIGH_LO                                           = 0x0F25,
00963       GPH__SYSTEM__THRESH_RATE_LOW                                               = 0x0F26,
00964       GPH__SYSTEM__THRESH_RATE_LOW_HI                                            = 0x0F26,
00965       GPH__SYSTEM__THRESH_RATE_LOW_LO                                            = 0x0F27,
00966       GPH__SYSTEM__INTERRUPT_CONFIG_GPIO                                         = 0x0F28,
00967       GPH__DSS_CONFIG__ROI_MODE_CONTROL                                          = 0x0F2F,
00968       GPH__DSS_CONFIG__MANUAL_EFFECTIVE_SPADS_SELECT                             = 0x0F30,
00969       GPH__DSS_CONFIG__MANUAL_EFFECTIVE_SPADS_SELECT_HI                          = 0x0F30,
00970       GPH__DSS_CONFIG__MANUAL_EFFECTIVE_SPADS_SELECT_LO                          = 0x0F31,
00971       GPH__DSS_CONFIG__MANUAL_BLOCK_SELECT                                       = 0x0F32,
00972       GPH__DSS_CONFIG__MAX_SPADS_LIMIT                                           = 0x0F33,
00973       GPH__DSS_CONFIG__MIN_SPADS_LIMIT                                           = 0x0F34,
00974       GPH__MM_CONFIG__TIMEOUT_MACROP_A_HI                                        = 0x0F36,
00975       GPH__MM_CONFIG__TIMEOUT_MACROP_A_LO                                        = 0x0F37,
00976       GPH__MM_CONFIG__TIMEOUT_MACROP_B_HI                                        = 0x0F38,
00977       GPH__MM_CONFIG__TIMEOUT_MACROP_B_LO                                        = 0x0F39,
00978       GPH__RANGE_CONFIG__TIMEOUT_MACROP_A_HI                                     = 0x0F3A,
00979       GPH__RANGE_CONFIG__TIMEOUT_MACROP_A_LO                                     = 0x0F3B,
00980       GPH__RANGE_CONFIG__VCSEL_PERIOD_A                                          = 0x0F3C,
00981       GPH__RANGE_CONFIG__VCSEL_PERIOD_B                                          = 0x0F3D,
00982       GPH__RANGE_CONFIG__TIMEOUT_MACROP_B_HI                                     = 0x0F3E,
00983       GPH__RANGE_CONFIG__TIMEOUT_MACROP_B_LO                                     = 0x0F3F,
00984       GPH__RANGE_CONFIG__SIGMA_THRESH                                            = 0x0F40,
00985       GPH__RANGE_CONFIG__SIGMA_THRESH_HI                                         = 0x0F40,
00986       GPH__RANGE_CONFIG__SIGMA_THRESH_LO                                         = 0x0F41,
00987       GPH__RANGE_CONFIG__MIN_COUNT_RATE_RTN_LIMIT_MCPS                           = 0x0F42,
00988       GPH__RANGE_CONFIG__MIN_COUNT_RATE_RTN_LIMIT_MCPS_HI                        = 0x0F42,
00989       GPH__RANGE_CONFIG__MIN_COUNT_RATE_RTN_LIMIT_MCPS_LO                        = 0x0F43,
00990       GPH__RANGE_CONFIG__VALID_PHASE_LOW                                         = 0x0F44,
00991       GPH__RANGE_CONFIG__VALID_PHASE_HIGH                                        = 0x0F45,
00992       FIRMWARE__INTERNAL_STREAM_COUNT_DIV                                        = 0x0F46,
00993       FIRMWARE__INTERNAL_STREAM_COUNTER_VAL                                      = 0x0F47,
00994       DSS_CALC__ROI_CTRL                                                         = 0x0F54,
00995       DSS_CALC__SPARE_1                                                          = 0x0F55,
00996       DSS_CALC__SPARE_2                                                          = 0x0F56,
00997       DSS_CALC__SPARE_3                                                          = 0x0F57,
00998       DSS_CALC__SPARE_4                                                          = 0x0F58,
00999       DSS_CALC__SPARE_5                                                          = 0x0F59,
01000       DSS_CALC__SPARE_6                                                          = 0x0F5A,
01001       DSS_CALC__SPARE_7                                                          = 0x0F5B,
01002       DSS_CALC__USER_ROI_SPAD_EN_0                                               = 0x0F5C,
01003       DSS_CALC__USER_ROI_SPAD_EN_1                                               = 0x0F5D,
01004       DSS_CALC__USER_ROI_SPAD_EN_2                                               = 0x0F5E,
01005       DSS_CALC__USER_ROI_SPAD_EN_3                                               = 0x0F5F,
01006       DSS_CALC__USER_ROI_SPAD_EN_4                                               = 0x0F60,
01007       DSS_CALC__USER_ROI_SPAD_EN_5                                               = 0x0F61,
01008       DSS_CALC__USER_ROI_SPAD_EN_6                                               = 0x0F62,
01009       DSS_CALC__USER_ROI_SPAD_EN_7                                               = 0x0F63,
01010       DSS_CALC__USER_ROI_SPAD_EN_8                                               = 0x0F64,
01011       DSS_CALC__USER_ROI_SPAD_EN_9                                               = 0x0F65,
01012       DSS_CALC__USER_ROI_SPAD_EN_10                                              = 0x0F66,
01013       DSS_CALC__USER_ROI_SPAD_EN_11                                              = 0x0F67,
01014       DSS_CALC__USER_ROI_SPAD_EN_12                                              = 0x0F68,
01015       DSS_CALC__USER_ROI_SPAD_EN_13                                              = 0x0F69,
01016       DSS_CALC__USER_ROI_SPAD_EN_14                                              = 0x0F6A,
01017       DSS_CALC__USER_ROI_SPAD_EN_15                                              = 0x0F6B,
01018       DSS_CALC__USER_ROI_SPAD_EN_16                                              = 0x0F6C,
01019       DSS_CALC__USER_ROI_SPAD_EN_17                                              = 0x0F6D,
01020       DSS_CALC__USER_ROI_SPAD_EN_18                                              = 0x0F6E,
01021       DSS_CALC__USER_ROI_SPAD_EN_19                                              = 0x0F6F,
01022       DSS_CALC__USER_ROI_SPAD_EN_20                                              = 0x0F70,
01023       DSS_CALC__USER_ROI_SPAD_EN_21                                              = 0x0F71,
01024       DSS_CALC__USER_ROI_SPAD_EN_22                                              = 0x0F72,
01025       DSS_CALC__USER_ROI_SPAD_EN_23                                              = 0x0F73,
01026       DSS_CALC__USER_ROI_SPAD_EN_24                                              = 0x0F74,
01027       DSS_CALC__USER_ROI_SPAD_EN_25                                              = 0x0F75,
01028       DSS_CALC__USER_ROI_SPAD_EN_26                                              = 0x0F76,
01029       DSS_CALC__USER_ROI_SPAD_EN_27                                              = 0x0F77,
01030       DSS_CALC__USER_ROI_SPAD_EN_28                                              = 0x0F78,
01031       DSS_CALC__USER_ROI_SPAD_EN_29                                              = 0x0F79,
01032       DSS_CALC__USER_ROI_SPAD_EN_30                                              = 0x0F7A,
01033       DSS_CALC__USER_ROI_SPAD_EN_31                                              = 0x0F7B,
01034       DSS_CALC__USER_ROI_0                                                       = 0x0F7C,
01035       DSS_CALC__USER_ROI_1                                                       = 0x0F7D,
01036       DSS_CALC__MODE_ROI_0                                                       = 0x0F7E,
01037       DSS_CALC__MODE_ROI_1                                                       = 0x0F7F,
01038       SIGMA_ESTIMATOR_CALC__SPARE_0                                              = 0x0F80,
01039       VHV_RESULT__PEAK_SIGNAL_RATE_MCPS                                          = 0x0F82,
01040       VHV_RESULT__PEAK_SIGNAL_RATE_MCPS_HI                                       = 0x0F82,
01041       VHV_RESULT__PEAK_SIGNAL_RATE_MCPS_LO                                       = 0x0F83,
01042       VHV_RESULT__SIGNAL_TOTAL_EVENTS_REF                                        = 0x0F84,
01043       VHV_RESULT__SIGNAL_TOTAL_EVENTS_REF_3                                      = 0x0F84,
01044       VHV_RESULT__SIGNAL_TOTAL_EVENTS_REF_2                                      = 0x0F85,
01045       VHV_RESULT__SIGNAL_TOTAL_EVENTS_REF_1                                      = 0x0F86,
01046       VHV_RESULT__SIGNAL_TOTAL_EVENTS_REF_0                                      = 0x0F87,
01047       PHASECAL_RESULT__PHASE_OUTPUT_REF                                          = 0x0F88,
01048       PHASECAL_RESULT__PHASE_OUTPUT_REF_HI                                       = 0x0F88,
01049       PHASECAL_RESULT__PHASE_OUTPUT_REF_LO                                       = 0x0F89,
01050       DSS_RESULT__TOTAL_RATE_PER_SPAD                                            = 0x0F8A,
01051       DSS_RESULT__TOTAL_RATE_PER_SPAD_HI                                         = 0x0F8A,
01052       DSS_RESULT__TOTAL_RATE_PER_SPAD_LO                                         = 0x0F8B,
01053       DSS_RESULT__ENABLED_BLOCKS                                                 = 0x0F8C,
01054       DSS_RESULT__NUM_REQUESTED_SPADS                                            = 0x0F8E,
01055       DSS_RESULT__NUM_REQUESTED_SPADS_HI                                         = 0x0F8E,
01056       DSS_RESULT__NUM_REQUESTED_SPADS_LO                                         = 0x0F8F,
01057       MM_RESULT__INNER_INTERSECTION_RATE                                         = 0x0F92,
01058       MM_RESULT__INNER_INTERSECTION_RATE_HI                                      = 0x0F92,
01059       MM_RESULT__INNER_INTERSECTION_RATE_LO                                      = 0x0F93,
01060       MM_RESULT__OUTER_COMPLEMENT_RATE                                           = 0x0F94,
01061       MM_RESULT__OUTER_COMPLEMENT_RATE_HI                                        = 0x0F94,
01062       MM_RESULT__OUTER_COMPLEMENT_RATE_LO                                        = 0x0F95,
01063       MM_RESULT__TOTAL_OFFSET                                                    = 0x0F96,
01064       MM_RESULT__TOTAL_OFFSET_HI                                                 = 0x0F96,
01065       MM_RESULT__TOTAL_OFFSET_LO                                                 = 0x0F97,
01066       XTALK_CALC__XTALK_FOR_ENABLED_SPADS                                        = 0x0F98,
01067       XTALK_CALC__XTALK_FOR_ENABLED_SPADS_3                                      = 0x0F98,
01068       XTALK_CALC__XTALK_FOR_ENABLED_SPADS_2                                      = 0x0F99,
01069       XTALK_CALC__XTALK_FOR_ENABLED_SPADS_1                                      = 0x0F9A,
01070       XTALK_CALC__XTALK_FOR_ENABLED_SPADS_0                                      = 0x0F9B,
01071       XTALK_RESULT__AVG_XTALK_USER_ROI_KCPS                                      = 0x0F9C,
01072       XTALK_RESULT__AVG_XTALK_USER_ROI_KCPS_3                                    = 0x0F9C,
01073       XTALK_RESULT__AVG_XTALK_USER_ROI_KCPS_2                                    = 0x0F9D,
01074       XTALK_RESULT__AVG_XTALK_USER_ROI_KCPS_1                                    = 0x0F9E,
01075       XTALK_RESULT__AVG_XTALK_USER_ROI_KCPS_0                                    = 0x0F9F,
01076       XTALK_RESULT__AVG_XTALK_MM_INNER_ROI_KCPS                                  = 0x0FA0,
01077       XTALK_RESULT__AVG_XTALK_MM_INNER_ROI_KCPS_3                                = 0x0FA0,
01078       XTALK_RESULT__AVG_XTALK_MM_INNER_ROI_KCPS_2                                = 0x0FA1,
01079       XTALK_RESULT__AVG_XTALK_MM_INNER_ROI_KCPS_1                                = 0x0FA2,
01080       XTALK_RESULT__AVG_XTALK_MM_INNER_ROI_KCPS_0                                = 0x0FA3,
01081       XTALK_RESULT__AVG_XTALK_MM_OUTER_ROI_KCPS                                  = 0x0FA4,
01082       XTALK_RESULT__AVG_XTALK_MM_OUTER_ROI_KCPS_3                                = 0x0FA4,
01083       XTALK_RESULT__AVG_XTALK_MM_OUTER_ROI_KCPS_2                                = 0x0FA5,
01084       XTALK_RESULT__AVG_XTALK_MM_OUTER_ROI_KCPS_1                                = 0x0FA6,
01085       XTALK_RESULT__AVG_XTALK_MM_OUTER_ROI_KCPS_0                                = 0x0FA7,
01086       RANGE_RESULT__ACCUM_PHASE                                                  = 0x0FA8,
01087       RANGE_RESULT__ACCUM_PHASE_3                                                = 0x0FA8,
01088       RANGE_RESULT__ACCUM_PHASE_2                                                = 0x0FA9,
01089       RANGE_RESULT__ACCUM_PHASE_1                                                = 0x0FAA,
01090       RANGE_RESULT__ACCUM_PHASE_0                                                = 0x0FAB,
01091       RANGE_RESULT__OFFSET_CORRECTED_RANGE                                       = 0x0FAC,
01092       RANGE_RESULT__OFFSET_CORRECTED_RANGE_HI                                    = 0x0FAC,
01093       RANGE_RESULT__OFFSET_CORRECTED_RANGE_LO                                    = 0x0FAD,
01094       SHADOW_PHASECAL_RESULT__VCSEL_START                                        = 0x0FAE,
01095       SHADOW_RESULT__INTERRUPT_STATUS                                            = 0x0FB0,
01096       SHADOW_RESULT__RANGE_STATUS                                                = 0x0FB1,
01097       SHADOW_RESULT__REPORT_STATUS                                               = 0x0FB2,
01098       SHADOW_RESULT__STREAM_COUNT                                                = 0x0FB3,
01099       SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0                              = 0x0FB4,
01100       SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0_HI                           = 0x0FB4,
01101       SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD0_LO                           = 0x0FB5,
01102       SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0                             = 0x0FB6,
01103       SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0_HI                          = 0x0FB6,
01104       SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD0_LO                          = 0x0FB7,
01105       SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0                                 = 0x0FB8,
01106       SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0_HI                              = 0x0FB8,
01107       SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD0_LO                              = 0x0FB9,
01108       SHADOW_RESULT__SIGMA_SD0                                                   = 0x0FBA,
01109       SHADOW_RESULT__SIGMA_SD0_HI                                                = 0x0FBA,
01110       SHADOW_RESULT__SIGMA_SD0_LO                                                = 0x0FBB,
01111       SHADOW_RESULT__PHASE_SD0                                                   = 0x0FBC,
01112       SHADOW_RESULT__PHASE_SD0_HI                                                = 0x0FBC,
01113       SHADOW_RESULT__PHASE_SD0_LO                                                = 0x0FBD,
01114       SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0                      = 0x0FBE,
01115       SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0_HI                   = 0x0FBE,
01116       SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0_LO                   = 0x0FBF,
01117       SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0         = 0x0FC0,
01118       SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_HI      = 0x0FC0,
01119       SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_LO      = 0x0FC1,
01120       SHADOW_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0                         = 0x0FC2,
01121       SHADOW_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0_HI                      = 0x0FC2,
01122       SHADOW_RESULT__MM_INNER_ACTUAL_EFFECTIVE_SPADS_SD0_LO                      = 0x0FC3,
01123       SHADOW_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0                         = 0x0FC4,
01124       SHADOW_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0_HI                      = 0x0FC4,
01125       SHADOW_RESULT__MM_OUTER_ACTUAL_EFFECTIVE_SPADS_SD0_LO                      = 0x0FC5,
01126       SHADOW_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0                              = 0x0FC6,
01127       SHADOW_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0_HI                           = 0x0FC6,
01128       SHADOW_RESULT__AVG_SIGNAL_COUNT_RATE_MCPS_SD0_LO                           = 0x0FC7,
01129       SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1                              = 0x0FC8,
01130       SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1_HI                           = 0x0FC8,
01131       SHADOW_RESULT__DSS_ACTUAL_EFFECTIVE_SPADS_SD1_LO                           = 0x0FC9,
01132       SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1                             = 0x0FCA,
01133       SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1_HI                          = 0x0FCA,
01134       SHADOW_RESULT__PEAK_SIGNAL_COUNT_RATE_MCPS_SD1_LO                          = 0x0FCB,
01135       SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1                                 = 0x0FCC,
01136       SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1_HI                              = 0x0FCC,
01137       SHADOW_RESULT__AMBIENT_COUNT_RATE_MCPS_SD1_LO                              = 0x0FCD,
01138       SHADOW_RESULT__SIGMA_SD1                                                   = 0x0FCE,
01139       SHADOW_RESULT__SIGMA_SD1_HI                                                = 0x0FCE,
01140       SHADOW_RESULT__SIGMA_SD1_LO                                                = 0x0FCF,
01141       SHADOW_RESULT__PHASE_SD1                                                   = 0x0FD0,
01142       SHADOW_RESULT__PHASE_SD1_HI                                                = 0x0FD0,
01143       SHADOW_RESULT__PHASE_SD1_LO                                                = 0x0FD1,
01144       SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1                      = 0x0FD2,
01145       SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1_HI                   = 0x0FD2,
01146       SHADOW_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD1_LO                   = 0x0FD3,
01147       SHADOW_RESULT__SPARE_0_SD1                                                 = 0x0FD4,
01148       SHADOW_RESULT__SPARE_0_SD1_HI                                              = 0x0FD4,
01149       SHADOW_RESULT__SPARE_0_SD1_LO                                              = 0x0FD5,
01150       SHADOW_RESULT__SPARE_1_SD1                                                 = 0x0FD6,
01151       SHADOW_RESULT__SPARE_1_SD1_HI                                              = 0x0FD6,
01152       SHADOW_RESULT__SPARE_1_SD1_LO                                              = 0x0FD7,
01153       SHADOW_RESULT__SPARE_2_SD1                                                 = 0x0FD8,
01154       SHADOW_RESULT__SPARE_2_SD1_HI                                              = 0x0FD8,
01155       SHADOW_RESULT__SPARE_2_SD1_LO                                              = 0x0FD9,
01156       SHADOW_RESULT__SPARE_3_SD1                                                 = 0x0FDA,
01157       SHADOW_RESULT__THRESH_INFO                                                 = 0x0FDB,
01158       SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0                              = 0x0FDC,
01159       SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_3                            = 0x0FDC,
01160       SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_2                            = 0x0FDD,
01161       SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_1                            = 0x0FDE,
01162       SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD0_0                            = 0x0FDF,
01163       SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0                               = 0x0FE0,
01164       SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_3                             = 0x0FE0,
01165       SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_2                             = 0x0FE1,
01166       SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_1                             = 0x0FE2,
01167       SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD0_0                             = 0x0FE3,
01168       SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0                                = 0x0FE4,
01169       SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_3                              = 0x0FE4,
01170       SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_2                              = 0x0FE5,
01171       SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_1                              = 0x0FE6,
01172       SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD0_0                              = 0x0FE7,
01173       SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0                              = 0x0FE8,
01174       SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_3                            = 0x0FE8,
01175       SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_2                            = 0x0FE9,
01176       SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_1                            = 0x0FEA,
01177       SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD0_0                            = 0x0FEB,
01178       SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1                              = 0x0FEC,
01179       SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_3                            = 0x0FEC,
01180       SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_2                            = 0x0FED,
01181       SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_1                            = 0x0FEE,
01182       SHADOW_RESULT_CORE__AMBIENT_WINDOW_EVENTS_SD1_0                            = 0x0FEF,
01183       SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1                               = 0x0FF0,
01184       SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_3                             = 0x0FF0,
01185       SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_2                             = 0x0FF1,
01186       SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_1                             = 0x0FF2,
01187       SHADOW_RESULT_CORE__RANGING_TOTAL_EVENTS_SD1_0                             = 0x0FF3,
01188       SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1                                = 0x0FF4,
01189       SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_3                              = 0x0FF4,
01190       SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_2                              = 0x0FF5,
01191       SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_1                              = 0x0FF6,
01192       SHADOW_RESULT_CORE__SIGNAL_TOTAL_EVENTS_SD1_0                              = 0x0FF7,
01193       SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1                              = 0x0FF8,
01194       SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_3                            = 0x0FF8,
01195       SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_2                            = 0x0FF9,
01196       SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_1                            = 0x0FFA,
01197       SHADOW_RESULT_CORE__TOTAL_PERIODS_ELAPSED_SD1_0                            = 0x0FFB,
01198       SHADOW_RESULT_CORE__SPARE_0                                                = 0x0FFC,
01199       SHADOW_PHASECAL_RESULT__REFERENCE_PHASE_HI                                 = 0x0FFE,
01200       SHADOW_PHASECAL_RESULT__REFERENCE_PHASE_LO                                 = 0x0FFF,
01201     };
01202 
01203     enum DistanceMode { Short, Medium, Long, Unknown };
01204 
01205     enum RangeStatus : uint8_t
01206     {
01207       RangeValid                =   0,
01208 
01209       // "sigma estimator check is above the internal defined threshold"
01210       // (sigma = standard deviation of measurement)
01211       SigmaFail                 =   1,
01212 
01213       // "signal value is below the internal defined threshold"
01214       SignalFail                =   2,
01215 
01216       // "Target is below minimum detection threshold."
01217       RangeValidMinRangeClipped =   3,
01218 
01219       // "phase is out of bounds"
01220       // (nothing detected in range; try a longer distance mode if applicable)
01221       OutOfBoundsFail           =   4,
01222 
01223       // "HW or VCSEL failure"
01224       HardwareFail              =   5,
01225 
01226       // "The Range is valid but the wraparound check has not been done."
01227       RangeValidNoWrapCheckFail =   6,
01228 
01229       // "Wrapped target, not matching phases"
01230       // "no matching phase in other VCSEL period timing."
01231       WrapTargetFail            =   7,
01232 
01233       // "Internal algo underflow or overflow in lite ranging."
01234    // ProcessingFail            =   8: not used in API
01235 
01236       // "Specific to lite ranging."
01237       // should never occur with this lib (which uses low power auto ranging,
01238       // as the API does)
01239       XtalkSignalFail           =   9,
01240 
01241       // "1st interrupt when starting ranging in back to back mode. Ignore
01242       // data."
01243       // should never occur with this lib
01244       SynchronizationInt         =  10, // (the API spells this "syncronisation")
01245 
01246       // "All Range ok but object is result of multiple pulses merging together.
01247       // Used by RQL for merged pulse detection"
01248    // RangeValid MergedPulse    =  11: not used in API
01249 
01250       // "Used by RQL as different to phase fail."
01251    // TargetPresentLackOfSignal =  12:
01252 
01253       // "Target is below minimum detection threshold."
01254       MinRangeFail              =  13,
01255 
01256       // "The reported range is invalid"
01257    // RangeInvalid              =  14: can't actually be returned by API (range can never become negative, even after correction)
01258 
01259       // "No Update."
01260       None                      = 255,
01261     };
01262 
01263     struct RangingData
01264     {
01265       uint16_t range_mm;
01266       RangeStatus range_status;
01267       float peak_signal_count_rate_MCPS;
01268       float ambient_count_rate_MCPS;
01269     };
01270 
01271     RangingData ranging_data;
01272 
01273     uint8_t last_status; // status of last I2C transmission
01274     VL53L1X();
01275 
01276     void setAddress(uint8_t new_addr);
01277     uint8_t getAddress() { return address; }
01278 
01279     bool init(bool io_2v8 = true);
01280 
01281     void writeReg(uint16_t registerAddr, uint8_t data);
01282     void writeReg16Bit(uint16_t registerAddr, uint16_t data);
01283     void writeReg32Bit(uint16_t registerAddr, uint32_t data);
01284     uint8_t readReg(uint16_t registerAddr);
01285     uint16_t readReg16Bit(uint16_t registerAddr);
01286     uint32_t readReg32Bit(uint16_t registerAddr);
01287 
01288     bool setDistanceMode(DistanceMode mode);
01289     DistanceMode getDistanceMode() { return distance_mode; }
01290 
01291     bool setMeasurementTimingBudget(uint32_t budget_us);
01292     uint32_t getMeasurementTimingBudget();
01293 
01294     void startContinuous(uint32_t period_ms);
01295     void stopContinuous();
01296     uint16_t read(bool blocking = true);
01297     uint16_t readRangeContinuousMillimeters(bool blocking = true) { return read(blocking); } // alias of read()
01298 
01299     // check if sensor has new reading available
01300     // assumes interrupt is active low (GPIO_HV_MUX__CTRL bit 4 is 1)
01301     bool dataReady() { 
01302     int isThereData = readReg(GPIO__TIO_HV_STATUS);
01303  //   printf("%x\r\n", isThereData);
01304     return (isThereData & 0x01) == 0; 
01305     }
01306 
01307     static const char * rangeStatusToString(RangeStatus status);
01308 
01309     void setTimeout(uint16_t timeout) { io_timeout = timeout; }
01310     uint16_t getTimeout() { return io_timeout; }
01311     bool timeoutOccurred();
01312 
01313     bool initReading(int addr, int timing_budget);
01314     void turnOff(void);
01315     void resetPin(void);
01316     void turnOn(void);
01317     int  readFromOneSensor(void);
01318 
01319 
01320 
01321   private:
01322     I2C _i2c;
01323     DigitalOut _shutDown;
01324     
01325     // The Arduino two-wire interface uses a 7-bit number for the address,
01326     // and sets the last bit correctly based on reads and writes
01327     static const uint8_t AddressDefault = 0b0101001;
01328 
01329     // value used in measurement timing budget calculations
01330     // assumes PresetMode is LOWPOWER_AUTONOMOUS
01331     //
01332     // vhv = LOWPOWER_AUTO_VHV_LOOP_DURATION_US + LOWPOWERAUTO_VHV_LOOP_BOUND
01333     //       (tuning parm default) * LOWPOWER_AUTO_VHV_LOOP_DURATION_US
01334     //     = 245 + 3 * 245 = 980
01335     // TimingGuard = LOWPOWER_AUTO_OVERHEAD_BEFORE_A_RANGING +
01336     //               LOWPOWER_AUTO_OVERHEAD_BETWEEN_A_B_RANGING + vhv
01337     //             = 1448 + 2100 + 980 = 4528
01338     static const uint32_t TimingGuard = 4528;
01339 
01340     // value in DSS_CONFIG__TARGET_TOTAL_RATE_MCPS register, used in DSS
01341     // calculations
01342     static const uint16_t TargetRate = 0x0A00;
01343 
01344     // for storing values read from RESULT__RANGE_STATUS (0x0089)
01345     // through RESULT__PEAK_SIGNAL_COUNT_RATE_CROSSTALK_CORRECTED_MCPS_SD0_LOW
01346     // (0x0099)
01347     struct ResultBuffer
01348     {
01349       uint8_t range_status;
01350     // uint8_t report_status: not used
01351       uint8_t stream_count;
01352       uint16_t dss_actual_effective_spads_sd0;
01353    // uint16_t peak_signal_count_rate_mcps_sd0: not used
01354       uint16_t ambient_count_rate_mcps_sd0;
01355    // uint16_t sigma_sd0: not used
01356    // uint16_t phase_sd0: not used
01357       uint16_t final_crosstalk_corrected_range_mm_sd0;
01358       uint16_t peak_signal_count_rate_crosstalk_corrected_mcps_sd0;
01359     };
01360 
01361     // making this static would save RAM for multiple instances as long as there
01362     // aren't multiple sensors being read at the same time (e.g. on separate
01363     // I2C buses)
01364     ResultBuffer results;
01365     
01366     bool didInitialize;
01367 
01368     uint8_t address;
01369 
01370     uint16_t io_timeout;
01371     bool did_timeout;
01372     uint16_t timeout_start_ms;
01373 
01374     uint16_t fast_osc_frequency;
01375     uint16_t osc_calibrate_val;
01376 
01377     bool calibrated;
01378     uint8_t saved_vhv_init;
01379     uint8_t saved_vhv_timeout;
01380 
01381     DistanceMode distance_mode;
01382 
01383     // Record the current time to check an upcoming timeout against
01384     void startTimeout() { timeout_start_ms = t.read()*1000; }
01385 
01386     // Check if timeout is enabled (set to nonzero value) and has expired
01387     bool checkTimeoutExpired() {return (io_timeout > 0) && ((uint16_t)(t.read()*1000 - timeout_start_ms) > io_timeout); }
01388 
01389     void setupManualCalibration();
01390     void readResults();
01391     void updateDSS();
01392     void getRangingData();
01393 
01394     static uint32_t decodeTimeout(uint16_t reg_val);
01395     static uint16_t encodeTimeout(uint32_t timeout_mclks);
01396     static uint32_t timeoutMclksToMicroseconds(uint32_t timeout_mclks, uint32_t macro_period_us);
01397     static uint32_t timeoutMicrosecondsToMclks(uint32_t timeout_us, uint32_t macro_period_us);
01398     uint32_t calcMacroPeriod(uint8_t vcsel_period);
01399 
01400     // Convert count rate from fixed point 9.7 format to float
01401     float countRateFixedToFloat(uint16_t count_rate_fixed) { return (float)count_rate_fixed / (1 << 7); }
01402 };
01403 #endif