esp-idf-lib/components/apds9930/apds9930.c

changeset 17
1599e696d947
parent 16
b3e96bbe4ce4
child 21
df8564c9701e
--- a/esp-idf-lib/components/apds9930/apds9930.c	Wed Apr 05 20:00:26 2023 +0200
+++ b/esp-idf-lib/components/apds9930/apds9930.c	Thu Apr 06 13:22:03 2023 +0200
@@ -181,18 +181,18 @@
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
 
     /* Set ENABLE register to 0 (disable all features) */
-    if (apds9930_setMode(dev, APDS9930_MODE_ALL, APDS9930_OFF) != ESP_OK) {
+    if (apds9930_setMode(dev, APDS9930_MODE_ALL | APDS9930_AUTO_INCREMENT, APDS9930_OFF) != ESP_OK) {
         ESP_LOGE(TAG, "apds9930_init() error 'Regs off'");
 	err = ESP_ERR_INVALID_ARG;
     }
 
     /* Set default values for ambient light and proximity registers */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    CHECK_LOGE(dev, write_register8(&dev->i2c_dev, APDS9930_ATIME, APDS9930_DEFAULT_ATIME), "Default atime");
-    CHECK_LOGE(dev, write_register8(&dev->i2c_dev, APDS9930_WTIME, APDS9930_DEFAULT_WTIME), "Default wtime");
-    CHECK_LOGE(dev, write_register8(&dev->i2c_dev, APDS9930_PPULSE, APDS9930_DEFAULT_PPULSE), "Default ppulse");
-    CHECK_LOGE(dev, write_register8(&dev->i2c_dev, APDS9930_POFFSET, APDS9930_DEFAULT_POFFSET), "Default poffset");
-    CHECK_LOGE(dev, write_register8(&dev->i2c_dev, APDS9930_CONFIG, APDS9930_DEFAULT_CONFIG), "Default config");
+    CHECK_LOGE(dev, write_register8(&dev->i2c_dev, APDS9930_ATIME | APDS9930_AUTO_INCREMENT, APDS9930_DEFAULT_ATIME), "Default atime");
+    CHECK_LOGE(dev, write_register8(&dev->i2c_dev, APDS9930_WTIME | APDS9930_AUTO_INCREMENT, APDS9930_DEFAULT_WTIME), "Default wtime");
+    CHECK_LOGE(dev, write_register8(&dev->i2c_dev, APDS9930_PPULSE | APDS9930_AUTO_INCREMENT, APDS9930_DEFAULT_PPULSE), "Default ppulse");
+    CHECK_LOGE(dev, write_register8(&dev->i2c_dev, APDS9930_POFFSET | APDS9930_AUTO_INCREMENT, APDS9930_DEFAULT_POFFSET), "Default poffset");
+    CHECK_LOGE(dev, write_register8(&dev->i2c_dev, APDS9930_CONFIG | APDS9930_AUTO_INCREMENT, APDS9930_DEFAULT_CONFIG), "Default config");
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
 
     CHECK_LOGE(dev, apds9930_setLEDDrive(dev, APDS9930_DEFAULT_PDRIVE), "Default pdrive");
@@ -205,7 +205,7 @@
     CHECK_LOGE(dev, apds9930_setLightIntHighThreshold(dev, APDS9930_DEFAULT_AIHT), "Default aiht");
 
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    CHECK_LOGE(dev, write_register8(&dev->i2c_dev, APDS9930_PERS, APDS9930_DEFAULT_PERS), "Default pers");
+    CHECK_LOGE(dev, write_register8(&dev->i2c_dev, APDS9930_PERS | APDS9930_AUTO_INCREMENT, APDS9930_DEFAULT_PERS), "Default pers");
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
 
     return err;
@@ -221,7 +221,7 @@
 
     /* Read current ENABLE register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    if (read_reg_8_nolock(dev, APDS9930_ENABLE, &enable_value) != ESP_OK) {
+    if (read_reg_8_nolock(dev, APDS9930_ENABLE | APDS9930_AUTO_INCREMENT, &enable_value) != ESP_OK) {
 	I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
         return APDS9930_ERROR;
     }
@@ -238,7 +238,7 @@
 //    CHECK_ARG(dev);
     /* Read current ENABLE register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    I2C_DEV_CHECK(&dev->i2c_dev, read_reg_8_nolock(dev, APDS9930_ENABLE, &reg_val));
+    I2C_DEV_CHECK(&dev->i2c_dev, read_reg_8_nolock(dev, APDS9930_ENABLE | APDS9930_AUTO_INCREMENT, &reg_val));
 //    i2c_dev_read_reg(&dev->i2c_dev, (uint8_t)APDS9930_ENABLE, &reg_val, 1);
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
     ESP_LOGI(TAG, "apds9930_setMode(%d, %d) get=%02x", mode, enable, reg_val);
@@ -262,7 +262,7 @@
     ESP_LOGI(TAG, "apds9930_setMode write %02x", reg_val);
     /* Write value back to ENABLE register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    I2C_DEV_CHECK(&dev->i2c_dev, write_reg_8_nolock(dev, APDS9930_ENABLE, reg_val));
+    I2C_DEV_CHECK(&dev->i2c_dev, write_reg_8_nolock(dev, APDS9930_ENABLE | APDS9930_AUTO_INCREMENT, reg_val));
 //    CHECK_LOGE(dev, write_register8(&dev->i2c_dev, APDS9930_ENABLE, reg_val), "Enable register");
 //    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, (uint8_t)APDS9930_ENABLE, &reg_val, 1), "Enable register");
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
@@ -418,16 +418,16 @@
 
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
     /* Read value from channel 0 */
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, (uint8_t)APDS9930_Ch0DATAL, &val_byte, 1), "Read ch0 low");
+    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, (uint8_t)APDS9930_Ch0DATAL | APDS9930_AUTO_INCREMENT, &val_byte, 1), "Read ch0 low");
     ESP_LOGI(TAG, "l %02x", val_byte);
     *val = val_byte;
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, (uint8_t)APDS9930_Ch0DATAH, &val_byte, 1), "Read ch0 high");
+    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, (uint8_t)APDS9930_Ch0DATAH | APDS9930_AUTO_INCREMENT, &val_byte, 1), "Read ch0 high");
     ESP_LOGI(TAG, "h %02x", val_byte);
     *val += ((uint16_t)val_byte << 8);
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
     ESP_LOGI(TAG, "val %04x", *val);
 
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, (uint8_t)APDS9930_Ch0DATAL, &val_word, 2), "Read ch0 16");
+    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, (uint8_t)APDS9930_Ch0DATAL | APDS9930_AUTO_INCREMENT, &val_word, 2), "Read ch0 16");
     ESP_LOGI(TAG, "16 %04x", val_word);
 
     return ESP_OK;
@@ -441,9 +441,9 @@
 
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
     /* Read value from channel 1 */
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_Ch1DATAL, &val_byte, 1), "Read ch1 low");
+    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_Ch1DATAL | APDS9930_AUTO_INCREMENT, &val_byte, 1), "Read ch1 low");
     *val = val_byte;
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_Ch1DATAH, &val_byte, 1), "Read ch1 high");
+    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_Ch1DATAH | APDS9930_AUTO_INCREMENT, &val_byte, 1), "Read ch1 high");
     *val += ((uint16_t)val_byte << 8);
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
 
@@ -461,9 +461,9 @@
 
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
     /* Read value from proximity data register */
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_PDATAL, &val_byte, 1), "Read proximity low");
+    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_PDATAL | APDS9930_AUTO_INCREMENT, &val_byte, 1), "Read proximity low");
     *val = val_byte;
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_PDATAH, &val_byte, 1), "Read proximity high");
+    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_PDATAH | APDS9930_AUTO_INCREMENT, &val_byte, 1), "Read proximity high");
     *val += ((uint16_t)val_byte << 8);
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
 
@@ -481,11 +481,11 @@
 
     /* Read value from PILT register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_PILTL, &val_byte, 1) != ESP_OK) {
+    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_PILTL | APDS9930_AUTO_INCREMENT, &val_byte, 1) != ESP_OK) {
         val = 0;
     }
     val = val_byte;
-    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_PILTH, &val_byte, 1) != ESP_OK) {
+    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_PILTH | APDS9930_AUTO_INCREMENT, &val_byte, 1) != ESP_OK) {
         val = 0;
     }
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
@@ -503,8 +503,8 @@
     lo = threshold & 0x00FF;
 
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_PILTL, &lo, 1), "Write PILTL");
-    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_PILTH, &hi, 1), "Write PILTH");
+    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_PILTL | APDS9930_AUTO_INCREMENT, &lo, 1), "Write PILTL");
+    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_PILTH | APDS9930_AUTO_INCREMENT, &hi, 1), "Write PILTH");
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
 
     return ESP_OK;
@@ -518,11 +518,11 @@
 
     /* Read value from PIHT register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_PIHTL, &val_byte, 1) != ESP_OK) {
+    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_PIHTL | APDS9930_AUTO_INCREMENT, &val_byte, 1) != ESP_OK) {
         val = 0;
     }
     val = val_byte;
-    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_PIHTH, &val_byte, 1) != ESP_OK) {
+    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_PIHTH | APDS9930_AUTO_INCREMENT, &val_byte, 1) != ESP_OK) {
         val = 0;
     }
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
@@ -540,8 +540,8 @@
     lo = threshold & 0x00FF;
 
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_PIHTL, &lo, 1), "Write PIHTL");
-    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_PIHTH, &hi, 1), "Write PIHTH");
+    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_PIHTL | APDS9930_AUTO_INCREMENT, &lo, 1), "Write PIHTL");
+    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_PIHTH | APDS9930_AUTO_INCREMENT, &hi, 1), "Write PIHTH");
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
 
     return ESP_OK;
@@ -554,7 +554,7 @@
 
     /* Read value from CONTROL register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL, &val, 1) != ESP_OK) {
+    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL | APDS9930_AUTO_INCREMENT, &val, 1) != ESP_OK) {
 	I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
         return APDS9930_ERROR;;
     }
@@ -573,7 +573,7 @@
 
     /* Read value from CONTROL register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL, &val, 1), "Read control");
+    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL | APDS9930_AUTO_INCREMENT, &val, 1), "Read control");
 
     /* Set bits in register to given value */
     drive &= 0b00000011;
@@ -582,7 +582,7 @@
     val |= drive;
 
     /* Write register value back into CONTROL register */
-    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_CONTROL, &val, 1), "Write control");
+    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_CONTROL | APDS9930_AUTO_INCREMENT, &val, 1), "Write control");
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
 
     return ESP_OK;
@@ -595,7 +595,7 @@
 
     /* Read value from CONTROL register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL, &val, 1) != ESP_OK) {
+    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL | APDS9930_AUTO_INCREMENT, &val, 1) != ESP_OK) {
         I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
         return APDS9930_ERROR;;
     }
@@ -614,7 +614,7 @@
 
     /* Read value from CONTROL register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL, &val, 1), "Read control");
+    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL | APDS9930_AUTO_INCREMENT, &val, 1), "Read control");
 
     /* Set bits in register to given value */
     drive &= 0b00000011;
@@ -623,7 +623,7 @@
     val |= drive;
 
     /* Write register value back into CONTROL register */
-    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_CONTROL, &val, 1), "Write control");
+    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_CONTROL | APDS9930_AUTO_INCREMENT, &val, 1), "Write control");
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
 
     return ESP_OK;
@@ -636,7 +636,7 @@
 
     /* Read value from CONTROL register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL, &val, 1) != ESP_OK) {
+    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL | APDS9930_AUTO_INCREMENT, &val, 1) != ESP_OK) {
         I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
         return APDS9930_ERROR;;
     }
@@ -655,7 +655,7 @@
 
     /* Read value from CONTROL register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL, &val, 1), "Read control");
+    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL | APDS9930_AUTO_INCREMENT, &val, 1), "Read control");
 
     /* Set bits in register to given value */
     drive &= 0b00000011;
@@ -664,7 +664,7 @@
     val |= drive;
 
     /* Write register value back into CONTROL register */
-    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_CONTROL, &val, 1), "Write control");
+    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_CONTROL | APDS9930_AUTO_INCREMENT, &val, 1), "Write control");
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
 
     return ESP_OK;
@@ -677,7 +677,7 @@
 
     /* Read value from CONTROL register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL, &val, 1) != ESP_OK) {
+    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL | APDS9930_AUTO_INCREMENT, &val, 1) != ESP_OK) {
         I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
         return APDS9930_ERROR;;
     }
@@ -696,7 +696,7 @@
 
     /* Read value from CONTROL register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL, &val, 1), "Read control");
+    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL | APDS9930_AUTO_INCREMENT, &val, 1), "Read control");
 
     /* Set bits in register to given value */
     drive &= 0b00000011;
@@ -704,7 +704,7 @@
     val |= drive;
 
     /* Write register value back into CONTROL register */
-    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_CONTROL, &val, 1), "Write control");
+    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_CONTROL | APDS9930_AUTO_INCREMENT, &val, 1), "Write control");
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
 
     return ESP_OK;
@@ -717,7 +717,7 @@
 
     /* Read value from CONTROL register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL, &val, 1) != ESP_OK) {
+    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL | APDS9930_AUTO_INCREMENT, &val, 1) != ESP_OK) {
         I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
         return APDS9930_ERROR;;
     }
@@ -736,7 +736,7 @@
 
     /* Read value from CONTROL register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL, &val, 1), "Read control");
+    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_CONTROL | APDS9930_AUTO_INCREMENT, &val, 1), "Read control");
 
     /* Set bits in register to given value */
     enable &= 0b00000001;
@@ -745,7 +745,7 @@
     val |= enable;
 
     /* Write register value back into CONTROL register */
-    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_CONTROL, &val, 1), "Write control");
+    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_CONTROL | APDS9930_AUTO_INCREMENT, &val, 1), "Write control");
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
 
     return ESP_OK;
@@ -759,11 +759,11 @@
 
     /* Read value from ambient light low threshold, low byte register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_AILTL, &val_byte, 1) != ESP_OK) {
+    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_AILTL | APDS9930_AUTO_INCREMENT, &val_byte, 1) != ESP_OK) {
         *threshold = 0;
     }
     *threshold = val_byte;
-    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_AILTH, &val_byte, 1) != ESP_OK) {
+    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_AILTH | APDS9930_AUTO_INCREMENT, &val_byte, 1) != ESP_OK) {
         *threshold = 0;
     }
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
@@ -783,8 +783,8 @@
     val_high = (threshold & 0xFF00) >> 8;
 
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_AILTL, &val_low, 1), "Write AILTL");
-    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_AILTH, &val_high, 1), "Write AILTH");
+    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_AILTL | APDS9930_AUTO_INCREMENT, &val_low, 1), "Write AILTL");
+    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_AILTH | APDS9930_AUTO_INCREMENT, &val_high, 1), "Write AILTH");
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
 
     return ESP_OK;
@@ -798,11 +798,11 @@
 
     /* Read value from ambient light high threshold, low byte register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_AIHTL, &val_byte, 1) != ESP_OK) {
+    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_AIHTL | APDS9930_AUTO_INCREMENT, &val_byte, 1) != ESP_OK) {
         *threshold = 0;
     }
     *threshold = val_byte;
-    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_AIHTH, &val_byte, 1) != ESP_OK) {
+    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_AIHTH | APDS9930_AUTO_INCREMENT, &val_byte, 1) != ESP_OK) {
         *threshold = 0;
     }
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
@@ -822,8 +822,8 @@
     val_high = (threshold & 0xFF00) >> 8;
 
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_AIHTL, &val_low, 1), "Write AIHTL");
-    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_AIHTH, &val_high, 1), "Write AIHTH");
+    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_AIHTL | APDS9930_AUTO_INCREMENT, &val_low, 1), "Write AIHTL");
+    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_AIHTH | APDS9930_AUTO_INCREMENT, &val_high, 1), "Write AIHTH");
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
 
     return ESP_OK;
@@ -836,7 +836,7 @@
 
     /* Read value from ENABLE register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_ENABLE, &val, 1) != ESP_OK) {
+    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_ENABLE | APDS9930_AUTO_INCREMENT, &val, 1) != ESP_OK) {
         I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
         return APDS9930_ERROR;;
     }
@@ -855,7 +855,7 @@
 
     /* Read value from ENABLE register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_ENABLE, &val, 1), "Read enable");
+    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_ENABLE | APDS9930_AUTO_INCREMENT, &val, 1), "Read enable");
 
     /* Set bits in register to given value */
     enable &= 0b00000001;
@@ -864,7 +864,7 @@
     val |= enable;
 
     /* Write register value back into ENABLE register */
-    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_ENABLE, &val, 1), "Write enable");
+    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_ENABLE | APDS9930_AUTO_INCREMENT, &val, 1), "Write enable");
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
 
     return ESP_OK;
@@ -877,7 +877,7 @@
 
     /* Read value from ENABLE register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_ENABLE, &val, 1) != ESP_OK) {
+    if (i2c_dev_read_reg(&dev->i2c_dev, APDS9930_ENABLE | APDS9930_AUTO_INCREMENT, &val, 1) != ESP_OK) {
         I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
         return APDS9930_ERROR;;
     }
@@ -896,7 +896,7 @@
 
     /* Read value from ENABLE register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_ENABLE, &val, 1), "Read enable");
+    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_ENABLE | APDS9930_AUTO_INCREMENT, &val, 1), "Read enable");
 
     /* Set bits in register to given value */
     enable &= 0b00000001;
@@ -905,7 +905,7 @@
     val |= enable;
 
     /* Write register value back into ENABLE register */
-    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_ENABLE, &val, 1), "Write enable");
+    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, APDS9930_ENABLE | APDS9930_AUTO_INCREMENT, &val, 1), "Write enable");
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
 
     return ESP_OK;

mercurial