Lines Matching refs:data

54 static int ltr501_drdy(struct ltr501_data *data, u8 drdy_mask)  in ltr501_drdy()  argument
60 ret = i2c_smbus_read_byte_data(data->client, in ltr501_drdy()
69 dev_err(&data->client->dev, "ltr501_drdy() failed, data not ready\n"); in ltr501_drdy()
73 static int ltr501_read_als(struct ltr501_data *data, __le16 buf[2]) in ltr501_read_als() argument
75 int ret = ltr501_drdy(data, LTR501_STATUS_ALS_RDY); in ltr501_read_als()
79 return i2c_smbus_read_i2c_block_data(data->client, in ltr501_read_als()
83 static int ltr501_read_ps(struct ltr501_data *data) in ltr501_read_ps() argument
85 int ret = ltr501_drdy(data, LTR501_STATUS_PS_RDY); in ltr501_read_ps()
88 return i2c_smbus_read_word_data(data->client, LTR501_PS_DATA); in ltr501_read_ps()
135 struct ltr501_data *data = iio_priv(indio_dev); in ltr501_read_raw() local
146 mutex_lock(&data->lock_als); in ltr501_read_raw()
147 ret = ltr501_read_als(data, buf); in ltr501_read_raw()
148 mutex_unlock(&data->lock_als); in ltr501_read_raw()
155 mutex_lock(&data->lock_ps); in ltr501_read_raw()
156 ret = ltr501_read_ps(data); in ltr501_read_raw()
157 mutex_unlock(&data->lock_ps); in ltr501_read_raw()
168 if (data->als_contr & LTR501_CONTR_ALS_GAIN_MASK) { in ltr501_read_raw()
178 i = (data->ps_contr & LTR501_CONTR_PS_GAIN_MASK) >> in ltr501_read_raw()
205 struct ltr501_data *data = iio_priv(indio_dev); in ltr501_write_raw() local
216 data->als_contr |= LTR501_CONTR_ALS_GAIN_MASK; in ltr501_write_raw()
218 data->als_contr &= ~LTR501_CONTR_ALS_GAIN_MASK; in ltr501_write_raw()
221 return i2c_smbus_write_byte_data(data->client, in ltr501_write_raw()
222 LTR501_ALS_CONTR, data->als_contr); in ltr501_write_raw()
227 data->ps_contr &= ~LTR501_CONTR_PS_GAIN_MASK; in ltr501_write_raw()
228 data->ps_contr |= i << LTR501_CONTR_PS_GAIN_SHIFT; in ltr501_write_raw()
229 return i2c_smbus_write_byte_data(data->client, in ltr501_write_raw()
230 LTR501_PS_CONTR, data->ps_contr); in ltr501_write_raw()
271 struct ltr501_data *data = iio_priv(indio_dev); in ltr501_trigger_handler() local
287 ret = ltr501_drdy(data, mask); in ltr501_trigger_handler()
292 ret = i2c_smbus_read_i2c_block_data(data->client, in ltr501_trigger_handler()
303 ret = i2c_smbus_read_word_data(data->client, LTR501_PS_DATA); in ltr501_trigger_handler()
318 static int ltr501_init(struct ltr501_data *data) in ltr501_init() argument
322 ret = i2c_smbus_read_byte_data(data->client, LTR501_ALS_CONTR); in ltr501_init()
325 data->als_contr = ret | LTR501_CONTR_ACTIVE; in ltr501_init()
327 ret = i2c_smbus_read_byte_data(data->client, LTR501_PS_CONTR); in ltr501_init()
330 data->ps_contr = ret | LTR501_CONTR_ACTIVE; in ltr501_init()
332 return ltr501_write_contr(data->client, data->als_contr, in ltr501_init()
333 data->ps_contr); in ltr501_init()
336 static int ltr501_powerdown(struct ltr501_data *data) in ltr501_powerdown() argument
338 return ltr501_write_contr(data->client, in ltr501_powerdown()
339 data->als_contr & ~LTR501_CONTR_ACTIVE, in ltr501_powerdown()
340 data->ps_contr & ~LTR501_CONTR_ACTIVE); in ltr501_powerdown()
346 struct ltr501_data *data; in ltr501_probe() local
350 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); in ltr501_probe()
354 data = iio_priv(indio_dev); in ltr501_probe()
356 data->client = client; in ltr501_probe()
357 mutex_init(&data->lock_als); in ltr501_probe()
358 mutex_init(&data->lock_ps); in ltr501_probe()
360 ret = i2c_smbus_read_byte_data(data->client, LTR501_PART_ID); in ltr501_probe()
373 ret = ltr501_init(data); in ltr501_probe()
391 ltr501_powerdown(data); in ltr501_probe()
409 struct ltr501_data *data = iio_priv(i2c_get_clientdata( in ltr501_suspend() local
411 return ltr501_powerdown(data); in ltr501_suspend()
416 struct ltr501_data *data = iio_priv(i2c_get_clientdata( in ltr501_resume() local
419 return ltr501_write_contr(data->client, data->als_contr, in ltr501_resume()
420 data->ps_contr); in ltr501_resume()