Lines Matching refs:data

151 static int max30100_set_powermode(struct max30100_data *data, bool state)
153 return regmap_update_bits(data->regmap, MAX30100_REG_MODE_CONFIG,
158 static int max30100_clear_fifo(struct max30100_data *data)
162 ret = regmap_write(data->regmap, MAX30100_REG_FIFO_WR_PTR, 0);
166 ret = regmap_write(data->regmap, MAX30100_REG_FIFO_OVR_CTR, 0);
170 return regmap_write(data->regmap, MAX30100_REG_FIFO_RD_PTR, 0);
175 struct max30100_data *data = iio_priv(indio_dev);
178 ret = max30100_set_powermode(data, true);
182 return max30100_clear_fifo(data);
187 struct max30100_data *data = iio_priv(indio_dev);
189 return max30100_set_powermode(data, false);
197 static inline int max30100_fifo_count(struct max30100_data *data)
202 ret = regmap_read(data->regmap, MAX30100_REG_INT_STATUS, &val);
213 static int max30100_read_measurement(struct max30100_data *data)
217 ret = i2c_smbus_read_i2c_block_data(data->client,
220 (u8 *) &data->buffer);
228 struct max30100_data *data = iio_priv(indio_dev);
231 mutex_lock(&data->lock);
233 while (cnt || (cnt = max30100_fifo_count(data)) > 0) {
234 ret = max30100_read_measurement(data);
238 iio_push_to_buffers(data->indio_dev, data->buffer);
242 mutex_unlock(&data->lock);
267 static int max30100_led_init(struct max30100_data *data)
269 struct device *dev = &data->client->dev;
282 return regmap_write(data->regmap, MAX30100_REG_LED_CONFIG, reg);
292 ret = regmap_update_bits(data->regmap, MAX30100_REG_LED_CONFIG,
306 return regmap_update_bits(data->regmap, MAX30100_REG_LED_CONFIG,
310 static int max30100_chip_init(struct max30100_data *data)
315 ret = max30100_led_init(data);
320 ret = regmap_write(data->regmap, MAX30100_REG_SPO2_CONFIG,
327 ret = regmap_update_bits(data->regmap, MAX30100_REG_MODE_CONFIG,
335 return regmap_update_bits(data->regmap, MAX30100_REG_INT_ENABLE,
341 static int max30100_read_temp(struct max30100_data *data, int *val)
346 ret = regmap_read(data->regmap, MAX30100_REG_TEMP_INTEGER, &reg);
351 ret = regmap_read(data->regmap, MAX30100_REG_TEMP_FRACTION, &reg);
361 static int max30100_get_temp(struct max30100_data *data, int *val)
366 ret = regmap_update_bits(data->regmap, MAX30100_REG_MODE_CONFIG,
374 return max30100_read_temp(data, val);
381 struct max30100_data *data = iio_priv(indio_dev);
395 ret = max30100_get_temp(data, val);
420 struct max30100_data *data;
425 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data));
443 data = iio_priv(indio_dev);
444 data->indio_dev = indio_dev;
445 data->client = client;
447 mutex_init(&data->lock);
450 data->regmap = devm_regmap_init_i2c(client, &max30100_regmap_config);
451 if (IS_ERR(data->regmap)) {
453 return PTR_ERR(data->regmap);
455 max30100_set_powermode(data, false);
457 ret = max30100_chip_init(data);
480 struct max30100_data *data = iio_priv(indio_dev);
483 max30100_set_powermode(data, false);