Re: [PATCH v4 3/3] iio: light: Add support for ltrf216a sensor

From: Shreeya Patel
Date: Tue May 17 2022 - 06:55:26 EST



On 13/05/22 06:00, Dmitry Osipenko wrote:
11.05.2022 12:40, Shreeya Patel пишет:
+static int ltrf216a_set_int_time(struct ltrf216a_data *data, int itime)
+{
+ int i, ret, index = -1;
+ u8 reg_val;
+
+ for (i = 0; i < ARRAY_SIZE(ltrf216a_int_time_available); i++) {
+ if (ltrf216a_int_time_available[i][1] == itime) {
+ index = i;
+ break;
+ }
+ }
+
+ if (index < 0)
+ return -EINVAL;
+
+ reg_val = ltrf216a_int_time_reg[index][1];
+ data->int_time_fac = ltrf216a_int_time_reg[index][0];
+
+ ret = i2c_smbus_write_byte_data(data->client, LTRF216A_ALS_MEAS_RES, reg_val);
+ if (ret < 0)
+ return ret;
Should the data->int_time_fac be updated only if I2C write was successful?

Yes, thanks for pointing it out. It should be updated only if write is successful.

I'm not sure what reading of LTRF216A_CLEAR_DATA reg does, but if it
clears the measured data, then shouldn't the data be cleared after
changing the config?

LTRF216A_CLEAR_DATA isn't used for clearing the measured data. Name is a
bit confusing and even I assumed it is being used for clearing the data. But from the
datasheet, it seems that clear data registers provides light intensity data related to infrared
and ultravoilet.
We are currently not using this anywhere in the driver so we could remove the cleardata readings
for now.


Thanks,
Shreeya Patel
+ data->int_time = itime;
+
+ return 0;
+}