Transimpedance Amplifier. Y is 1 for Rf1 and Cf1, Y is 2 for
                Rf2 and Cf2 values.
 
-What:          /sys/bus/iio/devices/iio:deviceX/in_intensity_ledY_raw
-               /sys/bus/iio/devices/iio:deviceX/in_intensity_ledY_ambient_raw
-Date:          December 2015
+What:          /sys/bus/iio/devices/iio:deviceX/in_intensityY_raw
+Date:          May 2016
 KernelVersion:
 Contact:       Andrew F. Davis <afd@ti.com>
 Description:
                Get measured values from the ADC for these stages. Y is the
-               specific LED number. The values are expressed in 24-bit twos
-               complement.
-
-What:          /sys/bus/iio/devices/iio:deviceX/in_intensity_ledY-ledY_ambient_raw
-Date:          December 2015
-KernelVersion:
-Contact:       Andrew F. Davis <afd@ti.com>
-Description:
-               Get differential values from the ADC for these stages. Y is the
-               specific LED number. The values are expressed in 24-bit twos
-               complement for the specified LEDs.
+               specific stage number corresponding to datasheet stage names
+               as follows:
+               1 -> LED2
+               2 -> ALED2/LED3
+               3 -> LED1
+               4 -> ALED1/LED4
+               Note that channels 5 and 6 represent LED2-ALED2 and LED1-ALED1
+               respectively which simply helper channels containing the
+               calculated difference in the value of stage 1 - 2 and 3 - 4.
+               The values are expressed in 24-bit twos complement.
 
-What:          /sys/bus/iio/devices/iio:deviceX/out_current_ledY_offset
-               /sys/bus/iio/devices/iio:deviceX/out_current_ledY_ambient_offset
-Date:          December 2015
+What:          /sys/bus/iio/devices/iio:deviceX/in_intensityY_offset
+Date:          May 2016
 KernelVersion:
 Contact:       Andrew F. Davis <afd@ti.com>
 Description:
                Get and set the offset cancellation DAC setting for these
                stages. The values are expressed in 5-bit sign-magnitude.
 
-What:          /sys/bus/iio/devices/iio:deviceX/out_current_ledY_raw
-Date:          December 2015
+What:          /sys/bus/iio/devices/iio:deviceX/out_currentY_raw
+Date:          May 2016
 KernelVersion:
 Contact:       Andrew F. Davis <afd@ti.com>
 Description:
-               Get and set the LED current for the specified LED. Y is the
-               specific LED number.
+               Get and set the LED current for the specified LED active during
+               this stage. Y is the specific stage number.
 
 };
 
 enum afe4403_chan_id {
+       LED2 = 1,
+       ALED2,
        LED1,
        ALED1,
-       LED2,
-       ALED2,
-       LED1_ALED1,
        LED2_ALED2,
+       LED1_ALED1,
        ILED1,
        ILED2,
 };
 
 static const struct afe440x_reg_info afe4403_reg_info[] = {
-       [LED1] = AFE440X_REG_INFO(AFE440X_LED1VAL, 0, NULL),
-       [ALED1] = AFE440X_REG_INFO(AFE440X_ALED1VAL, 0, NULL),
        [LED2] = AFE440X_REG_INFO(AFE440X_LED2VAL, 0, NULL),
        [ALED2] = AFE440X_REG_INFO(AFE440X_ALED2VAL, 0, NULL),
-       [LED1_ALED1] = AFE440X_REG_INFO(AFE440X_LED1_ALED1VAL, 0, NULL),
+       [LED1] = AFE440X_REG_INFO(AFE440X_LED1VAL, 0, NULL),
+       [ALED1] = AFE440X_REG_INFO(AFE440X_ALED1VAL, 0, NULL),
        [LED2_ALED2] = AFE440X_REG_INFO(AFE440X_LED2_ALED2VAL, 0, NULL),
+       [LED1_ALED1] = AFE440X_REG_INFO(AFE440X_LED1_ALED1VAL, 0, NULL),
        [ILED1] = AFE440X_REG_INFO(AFE440X_LEDCNTRL, 0, AFE440X_LEDCNTRL_LED1),
        [ILED2] = AFE440X_REG_INFO(AFE440X_LEDCNTRL, 0, AFE440X_LEDCNTRL_LED2),
 };
 
 static const struct iio_chan_spec afe4403_channels[] = {
        /* ADC values */
-       AFE440X_INTENSITY_CHAN(LED1, "led1", 0),
-       AFE440X_INTENSITY_CHAN(ALED1, "led1_ambient", 0),
-       AFE440X_INTENSITY_CHAN(LED2, "led2", 0),
-       AFE440X_INTENSITY_CHAN(ALED2, "led2_ambient", 0),
-       AFE440X_INTENSITY_CHAN(LED1_ALED1, "led1-led1_ambient", 0),
-       AFE440X_INTENSITY_CHAN(LED2_ALED2, "led2-led2_ambient", 0),
+       AFE440X_INTENSITY_CHAN(LED2, 0),
+       AFE440X_INTENSITY_CHAN(ALED2, 0),
+       AFE440X_INTENSITY_CHAN(LED1, 0),
+       AFE440X_INTENSITY_CHAN(ALED1, 0),
+       AFE440X_INTENSITY_CHAN(LED2_ALED2, 0),
+       AFE440X_INTENSITY_CHAN(LED1_ALED1, 0),
        /* LED current */
-       AFE440X_CURRENT_CHAN(ILED1, "led1"),
-       AFE440X_CURRENT_CHAN(ILED2, "led2"),
+       AFE440X_CURRENT_CHAN(ILED1),
+       AFE440X_CURRENT_CHAN(ILED2),
 };
 
 static const struct afe440x_val_table afe4403_res_table[] = {
 
 };
 
 enum afe4404_chan_id {
+       LED2 = 1,
+       ALED2,
        LED1,
        ALED1,
-       LED2,
-       ALED2,
-       LED1_ALED1,
        LED2_ALED2,
+       LED1_ALED1,
        ILED1,
        ILED2,
        ILED3,
 };
 
 static const struct afe440x_reg_info afe4404_reg_info[] = {
-       [LED1] = AFE440X_REG_INFO(AFE440X_LED1VAL, AFE4404_OFFDAC, AFE4404_OFFDAC_CURR_LED1),
-       [ALED1] = AFE440X_REG_INFO(AFE440X_ALED1VAL, AFE4404_OFFDAC, AFE4404_OFFDAC_CURR_ALED1),
        [LED2] = AFE440X_REG_INFO(AFE440X_LED2VAL, AFE4404_OFFDAC, AFE4404_OFFDAC_CURR_LED2),
        [ALED2] = AFE440X_REG_INFO(AFE440X_ALED2VAL, AFE4404_OFFDAC, AFE4404_OFFDAC_CURR_ALED2),
-       [LED1_ALED1] = AFE440X_REG_INFO(AFE440X_LED1_ALED1VAL, 0, NULL),
+       [LED1] = AFE440X_REG_INFO(AFE440X_LED1VAL, AFE4404_OFFDAC, AFE4404_OFFDAC_CURR_LED1),
+       [ALED1] = AFE440X_REG_INFO(AFE440X_ALED1VAL, AFE4404_OFFDAC, AFE4404_OFFDAC_CURR_ALED1),
        [LED2_ALED2] = AFE440X_REG_INFO(AFE440X_LED2_ALED2VAL, 0, NULL),
+       [LED1_ALED1] = AFE440X_REG_INFO(AFE440X_LED1_ALED1VAL, 0, NULL),
        [ILED1] = AFE440X_REG_INFO(AFE440X_LEDCNTRL, 0, AFE4404_LEDCNTRL_ILED1),
        [ILED2] = AFE440X_REG_INFO(AFE440X_LEDCNTRL, 0, AFE4404_LEDCNTRL_ILED2),
        [ILED3] = AFE440X_REG_INFO(AFE440X_LEDCNTRL, 0, AFE4404_LEDCNTRL_ILED3),
 
 static const struct iio_chan_spec afe4404_channels[] = {
        /* ADC values */
-       AFE440X_INTENSITY_CHAN(LED1, "led1", BIT(IIO_CHAN_INFO_OFFSET)),
-       AFE440X_INTENSITY_CHAN(ALED1, "led1_ambient", BIT(IIO_CHAN_INFO_OFFSET)),
-       AFE440X_INTENSITY_CHAN(LED2, "led2", BIT(IIO_CHAN_INFO_OFFSET)),
-       AFE440X_INTENSITY_CHAN(ALED2, "led2_ambient", BIT(IIO_CHAN_INFO_OFFSET)),
-       AFE440X_INTENSITY_CHAN(LED1_ALED1, "led1-led1_ambient", 0),
-       AFE440X_INTENSITY_CHAN(LED2_ALED2, "led2-led2_ambient", 0),
+       AFE440X_INTENSITY_CHAN(LED2, BIT(IIO_CHAN_INFO_OFFSET)),
+       AFE440X_INTENSITY_CHAN(ALED2, BIT(IIO_CHAN_INFO_OFFSET)),
+       AFE440X_INTENSITY_CHAN(LED1, BIT(IIO_CHAN_INFO_OFFSET)),
+       AFE440X_INTENSITY_CHAN(ALED1, BIT(IIO_CHAN_INFO_OFFSET)),
+       AFE440X_INTENSITY_CHAN(LED2_ALED2, 0),
+       AFE440X_INTENSITY_CHAN(LED1_ALED1, 0),
        /* LED current */
-       AFE440X_CURRENT_CHAN(ILED1, "led1"),
-       AFE440X_CURRENT_CHAN(ILED2, "led2"),
-       AFE440X_CURRENT_CHAN(ILED3, "led3"),
+       AFE440X_CURRENT_CHAN(ILED1),
+       AFE440X_CURRENT_CHAN(ILED2),
+       AFE440X_CURRENT_CHAN(ILED3),
 };
 
 static const struct afe440x_val_table afe4404_res_table[] = {
 
                .mask = _sm ## _MASK,                           \
        }
 
-#define AFE440X_INTENSITY_CHAN(_index, _name, _mask)           \
+#define AFE440X_INTENSITY_CHAN(_index, _mask)                  \
        {                                                       \
                .type = IIO_INTENSITY,                          \
                .channel = _index,                              \
                                .storagebits = 32,              \
                                .endianness = IIO_CPU,          \
                },                                              \
-               .extend_name = _name,                           \
                .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) |  \
                        _mask,                                  \
+               .indexed = true,                                \
        }
 
-#define AFE440X_CURRENT_CHAN(_index, _name)                    \
+#define AFE440X_CURRENT_CHAN(_index)                           \
        {                                                       \
                .type = IIO_CURRENT,                            \
                .channel = _index,                              \
                .address = _index,                              \
                .scan_index = -1,                               \
-               .extend_name = _name,                           \
                .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) |  \
                        BIT(IIO_CHAN_INFO_SCALE),               \
+               .indexed = true,                                \
                .output = true,                                 \
        }