Lines Matching refs:data
93 static int apds9300_get_adc_val(struct apds9300_data *data, int adc_number) in apds9300_get_adc_val() argument
98 if (!data->power_state) in apds9300_get_adc_val()
104 ret = i2c_smbus_read_word_data(data->client, flags); in apds9300_get_adc_val()
106 dev_err(&data->client->dev, in apds9300_get_adc_val()
112 static int apds9300_set_thresh_low(struct apds9300_data *data, int value) in apds9300_set_thresh_low() argument
116 if (!data->power_state) in apds9300_set_thresh_low()
122 ret = i2c_smbus_write_word_data(data->client, APDS9300_THRESHLOWLOW in apds9300_set_thresh_low()
125 dev_err(&data->client->dev, "failed to set thresh_low\n"); in apds9300_set_thresh_low()
128 data->thresh_low = value; in apds9300_set_thresh_low()
133 static int apds9300_set_thresh_hi(struct apds9300_data *data, int value) in apds9300_set_thresh_hi() argument
137 if (!data->power_state) in apds9300_set_thresh_hi()
143 ret = i2c_smbus_write_word_data(data->client, APDS9300_THRESHHIGHLOW in apds9300_set_thresh_hi()
146 dev_err(&data->client->dev, "failed to set thresh_hi\n"); in apds9300_set_thresh_hi()
149 data->thresh_hi = value; in apds9300_set_thresh_hi()
154 static int apds9300_set_intr_state(struct apds9300_data *data, int state) in apds9300_set_intr_state() argument
159 if (!data->power_state) in apds9300_set_intr_state()
163 ret = i2c_smbus_write_byte_data(data->client, in apds9300_set_intr_state()
166 dev_err(&data->client->dev, in apds9300_set_intr_state()
170 data->intr_en = state; in apds9300_set_intr_state()
175 static int apds9300_set_power_state(struct apds9300_data *data, int state) in apds9300_set_power_state() argument
181 ret = i2c_smbus_write_byte_data(data->client, in apds9300_set_power_state()
184 dev_err(&data->client->dev, in apds9300_set_power_state()
188 data->power_state = state; in apds9300_set_power_state()
193 static void apds9300_clear_intr(struct apds9300_data *data) in apds9300_clear_intr() argument
197 ret = i2c_smbus_write_byte(data->client, APDS9300_CLEAR | APDS9300_CMD); in apds9300_clear_intr()
199 dev_err(&data->client->dev, "failed to clear interrupt\n"); in apds9300_clear_intr()
202 static int apds9300_chip_init(struct apds9300_data *data) in apds9300_chip_init() argument
207 ret = apds9300_set_power_state(data, 0); in apds9300_chip_init()
214 ret = apds9300_set_power_state(data, 1); in apds9300_chip_init()
217 ret = i2c_smbus_read_byte_data(data->client, in apds9300_chip_init()
227 ret = apds9300_set_intr_state(data, 0); in apds9300_chip_init()
234 dev_err(&data->client->dev, "failed to init the chip\n"); in apds9300_chip_init()
243 struct apds9300_data *data = iio_priv(indio_dev); in apds9300_read_raw() local
245 mutex_lock(&data->mutex); in apds9300_read_raw()
248 ch0 = apds9300_get_adc_val(data, 0); in apds9300_read_raw()
253 ch1 = apds9300_get_adc_val(data, 1); in apds9300_read_raw()
262 ret = apds9300_get_adc_val(data, chan->channel); in apds9300_read_raw()
271 mutex_unlock(&data->mutex); in apds9300_read_raw()
281 struct apds9300_data *data = iio_priv(indio_dev); in apds9300_read_thresh() local
285 *val = data->thresh_hi; in apds9300_read_thresh()
288 *val = data->thresh_low; in apds9300_read_thresh()
302 struct apds9300_data *data = iio_priv(indio_dev); in apds9300_write_thresh() local
305 mutex_lock(&data->mutex); in apds9300_write_thresh()
307 ret = apds9300_set_thresh_hi(data, val); in apds9300_write_thresh()
309 ret = apds9300_set_thresh_low(data, val); in apds9300_write_thresh()
310 mutex_unlock(&data->mutex); in apds9300_write_thresh()
320 struct apds9300_data *data = iio_priv(indio_dev); in apds9300_read_interrupt_config() local
322 return data->intr_en; in apds9300_read_interrupt_config()
329 struct apds9300_data *data = iio_priv(indio_dev); in apds9300_write_interrupt_config() local
332 mutex_lock(&data->mutex); in apds9300_write_interrupt_config()
333 ret = apds9300_set_intr_state(data, state); in apds9300_write_interrupt_config()
334 mutex_unlock(&data->mutex); in apds9300_write_interrupt_config()
393 struct apds9300_data *data = iio_priv(dev_info); in apds9300_interrupt_handler() local
401 apds9300_clear_intr(data); in apds9300_interrupt_handler()
409 struct apds9300_data *data; in apds9300_probe() local
413 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); in apds9300_probe()
417 data = iio_priv(indio_dev); in apds9300_probe()
419 data->client = client; in apds9300_probe()
421 ret = apds9300_chip_init(data); in apds9300_probe()
425 mutex_init(&data->mutex); in apds9300_probe()
457 apds9300_set_power_state(data, 0); in apds9300_probe()
464 struct apds9300_data *data = iio_priv(indio_dev); in apds9300_remove() local
469 apds9300_set_intr_state(data, 0); in apds9300_remove()
470 apds9300_set_power_state(data, 0); in apds9300_remove()
479 struct apds9300_data *data = iio_priv(indio_dev); in apds9300_suspend() local
482 mutex_lock(&data->mutex); in apds9300_suspend()
483 ret = apds9300_set_power_state(data, 0); in apds9300_suspend()
484 mutex_unlock(&data->mutex); in apds9300_suspend()
492 struct apds9300_data *data = iio_priv(indio_dev); in apds9300_resume() local
495 mutex_lock(&data->mutex); in apds9300_resume()
496 ret = apds9300_set_power_state(data, 1); in apds9300_resume()
497 mutex_unlock(&data->mutex); in apds9300_resume()