On 13/05/22 05:24, Dmitry Osipenko wrote:
Hi Dmitry,
11.05.2022 12:40, Shreeya Patel пишет:
+static int ltrf216a_init(struct iio_dev *indio_dev)
+{
+ int ret;
+ struct ltrf216a_data *data = iio_priv(indio_dev);
+
+ ret = i2c_smbus_read_byte_data(data->client, LTRF216A_MAIN_CTRL);
+ if (ret < 0) {
+ dev_err(&data->client->dev, "Error reading LTRF216A_MAIN_CTRL\n");
+ return ret;
+ }
+
+ /* enable sensor */
+ ret |= FIELD_PREP(LTRF216A_ALS_ENABLE_MASK, 1);
+ ret = i2c_smbus_write_byte_data(data->client, LTRF216A_MAIN_CTRL, ret);
+ if (ret < 0) {
+ dev_err(&data->client->dev, "Error writing LTRF216A_MAIN_CTRL\n");
+ return ret;
+ }
Couldn't you write "1" directly without reading?
What about doing SW reset?
I think we are doing a read here just to make sure device registers are
ready and accessible
without any issues.
Also, why would we want to do a SW reset here?
In the datasheet, I could see the following steps to enable the sensor
Supply VDD to Sensor (Sensor in Standby Mode) ---> Wait 100 ms (min) -
initial startup time
---> I2C Command (Write) To enable sensor to Active Mode
Thanks,
Shreeya Patel