Lines Matching refs:data
96 static int tcs3414_req_data(struct tcs3414_data *data) in tcs3414_req_data() argument
101 ret = i2c_smbus_write_byte_data(data->client, TCS3414_CONTROL, in tcs3414_req_data()
102 data->control | TCS3414_CONTROL_ADC_EN); in tcs3414_req_data()
107 ret = i2c_smbus_read_byte_data(data->client, TCS3414_CONTROL); in tcs3414_req_data()
115 ret = i2c_smbus_write_byte_data(data->client, TCS3414_CONTROL, in tcs3414_req_data()
116 data->control); in tcs3414_req_data()
121 dev_err(&data->client->dev, "data not ready\n"); in tcs3414_req_data()
132 struct tcs3414_data *data = iio_priv(indio_dev); in tcs3414_read_raw() local
139 mutex_lock(&data->lock); in tcs3414_read_raw()
140 ret = tcs3414_req_data(data); in tcs3414_read_raw()
142 mutex_unlock(&data->lock); in tcs3414_read_raw()
145 ret = i2c_smbus_read_word_data(data->client, chan->address); in tcs3414_read_raw()
146 mutex_unlock(&data->lock); in tcs3414_read_raw()
152 i = (data->gain & TCS3414_GAIN_MASK) >> TCS3414_GAIN_SHIFT; in tcs3414_read_raw()
158 *val2 = tcs3414_times[data->timing & TCS3414_INTEG_MASK] * 1000; in tcs3414_read_raw()
168 struct tcs3414_data *data = iio_priv(indio_dev); in tcs3414_write_raw() local
176 data->gain &= ~TCS3414_GAIN_MASK; in tcs3414_write_raw()
177 data->gain |= i << TCS3414_GAIN_SHIFT; in tcs3414_write_raw()
179 data->client, TCS3414_GAIN, in tcs3414_write_raw()
180 data->gain); in tcs3414_write_raw()
189 data->timing &= ~TCS3414_INTEG_MASK; in tcs3414_write_raw()
190 data->timing |= i; in tcs3414_write_raw()
192 data->client, TCS3414_TIMING, in tcs3414_write_raw()
193 data->timing); in tcs3414_write_raw()
206 struct tcs3414_data *data = iio_priv(indio_dev); in tcs3414_trigger_handler() local
211 int ret = i2c_smbus_read_word_data(data->client, in tcs3414_trigger_handler()
216 data->buffer[j++] = ret; in tcs3414_trigger_handler()
219 iio_push_to_buffers_with_timestamp(indio_dev, data->buffer, in tcs3414_trigger_handler()
250 struct tcs3414_data *data = iio_priv(indio_dev); in tcs3414_buffer_preenable() local
252 data->control |= TCS3414_CONTROL_ADC_EN; in tcs3414_buffer_preenable()
253 return i2c_smbus_write_byte_data(data->client, TCS3414_CONTROL, in tcs3414_buffer_preenable()
254 data->control); in tcs3414_buffer_preenable()
259 struct tcs3414_data *data = iio_priv(indio_dev); in tcs3414_buffer_predisable() local
266 data->control &= ~TCS3414_CONTROL_ADC_EN; in tcs3414_buffer_predisable()
267 return i2c_smbus_write_byte_data(data->client, TCS3414_CONTROL, in tcs3414_buffer_predisable()
268 data->control); in tcs3414_buffer_predisable()
280 struct tcs3414_data *data; in tcs3414_probe() local
284 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); in tcs3414_probe()
288 data = iio_priv(indio_dev); in tcs3414_probe()
290 data->client = client; in tcs3414_probe()
291 mutex_init(&data->lock); in tcs3414_probe()
300 ret = i2c_smbus_read_byte_data(data->client, TCS3414_ID); in tcs3414_probe()
315 data->control = TCS3414_CONTROL_POWER; in tcs3414_probe()
316 ret = i2c_smbus_write_byte_data(data->client, TCS3414_CONTROL, in tcs3414_probe()
317 data->control); in tcs3414_probe()
321 data->timing = TCS3414_INTEG_12MS; /* free running */ in tcs3414_probe()
322 ret = i2c_smbus_write_byte_data(data->client, TCS3414_TIMING, in tcs3414_probe()
323 data->timing); in tcs3414_probe()
327 ret = i2c_smbus_read_byte_data(data->client, TCS3414_GAIN); in tcs3414_probe()
330 data->gain = ret; in tcs3414_probe()
348 static int tcs3414_powerdown(struct tcs3414_data *data) in tcs3414_powerdown() argument
350 return i2c_smbus_write_byte_data(data->client, TCS3414_CONTROL, in tcs3414_powerdown()
351 data->control & ~(TCS3414_CONTROL_POWER | in tcs3414_powerdown()
369 struct tcs3414_data *data = iio_priv(i2c_get_clientdata( in tcs3414_suspend() local
371 return tcs3414_powerdown(data); in tcs3414_suspend()
376 struct tcs3414_data *data = iio_priv(i2c_get_clientdata( in tcs3414_resume() local
378 return i2c_smbus_write_byte_data(data->client, TCS3414_CONTROL, in tcs3414_resume()
379 data->control); in tcs3414_resume()