altos: Replace ao_xmem functions with direct mem calls
[fw/altos] / src / drivers / ao_adxl375.c
index 778c214b6e49b637a0ebd0be74b65c5de1120b68..4f6b816948709632e5462e1d8d0460a0f3911b49 100644 (file)
@@ -143,7 +143,7 @@ ao_adxl375_setup(void)
 
        uint8_t devid = ao_adxl375_reg_read(AO_ADXL375_DEVID);
        if (devid != AO_ADXL375_DEVID_ID)
-               ao_sensor_errors = 1;
+               AO_SENSOR_ERROR(AO_DATA_ADXL375);
 
        /* Set the data rate */
        ao_adxl375_reg_write(AO_ADXL375_BW_RATE,
@@ -172,7 +172,6 @@ ao_adxl375_setup(void)
                             (0 << AO_ADXL375_POWER_CTL_SLEEP) |
                             (AO_ADXL375_POWER_CTL_WAKEUP_8 << AO_ADXL375_POWER_CTL_WAKEUP));
 
-       (void) ao_adxl375_total_value;
        /* Perform self-test */
 
        struct ao_adxl375_total self_test_off, self_test_on;
@@ -204,8 +203,15 @@ ao_adxl375_setup(void)
 
        self_test_value = z_change;
 
-       if (z_change < MIN_SELF_TEST || MAX_SELF_TEST < z_change)
-               ao_sensor_errors = 1;
+       if (z_change < MIN_SELF_TEST)
+               AO_SENSOR_ERROR(AO_DATA_ADXL375);
+
+       /* This check is commented out as maximum self test is unreliable
+
+          if (z_change > MAX_SELF_TEST)
+               AO_SENSOR_ERROR(AO_DATA_ADXL375);
+
+       */
 
        /* Discard some samples to let it settle down */
        ao_adxl375_total_value(&self_test_off, AO_ADXL375_SELF_TEST_SETTLE);