Lines Matching refs:data
94 /* 96-bit data + 32-bit pad + 64-bit timestamp */
241 static int atlas_check_ph_calibration(struct atlas_data *data)
243 struct device *dev = &data->client->dev;
247 ret = regmap_read(data->regmap, ATLAS_REG_PH_CALIB_STATUS, &val);
268 static int atlas_check_ec_calibration(struct atlas_data *data)
270 struct device *dev = &data->client->dev;
275 ret = regmap_bulk_read(data->regmap, ATLAS_REG_EC_PROBE, &rval, 2);
282 ret = regmap_read(data->regmap, ATLAS_REG_EC_CALIB_STATUS, &val);
307 static int atlas_check_orp_calibration(struct atlas_data *data)
309 struct device *dev = &data->client->dev;
313 ret = regmap_read(data->regmap, ATLAS_REG_ORP_CALIB_STATUS, &val);
323 static int atlas_check_do_calibration(struct atlas_data *data)
325 struct device *dev = &data->client->dev;
329 ret = regmap_read(data->regmap, ATLAS_REG_DO_CALIB_STATUS, &val);
352 int (*calibration)(struct atlas_data *data);
393 static int atlas_set_powermode(struct atlas_data *data, int on)
395 return regmap_write(data->regmap, ATLAS_REG_PWR_CONTROL, on);
398 static int atlas_set_interrupt(struct atlas_data *data, bool state)
400 if (!data->interrupt_enabled)
403 return regmap_update_bits(data->regmap, ATLAS_REG_INT_CONTROL,
410 struct atlas_data *data = iio_priv(indio_dev);
413 ret = pm_runtime_resume_and_get(&data->client->dev);
417 return atlas_set_interrupt(data, true);
422 struct atlas_data *data = iio_priv(indio_dev);
425 ret = atlas_set_interrupt(data, false);
429 pm_runtime_mark_last_busy(&data->client->dev);
430 ret = pm_runtime_put_autosuspend(&data->client->dev);
444 struct atlas_data *data = container_of(work, struct atlas_data, work);
446 iio_trigger_poll(data->trig);
453 struct atlas_data *data = iio_priv(indio_dev);
454 int channels = atlas_buffer_num_channels(data->chip->channels);
457 ret = regmap_bulk_read(data->regmap, data->chip->data_reg,
458 &data->buffer, sizeof(__be32) * channels);
461 iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
472 struct atlas_data *data = iio_priv(indio_dev);
474 irq_work_queue(&data->work);
479 static int atlas_read_measurement(struct atlas_data *data, int reg, __be32 *val)
481 struct device *dev = &data->client->dev;
490 msleep(data->chip->delay);
492 ret = regmap_bulk_read(data->regmap, reg, val, sizeof(*val));
504 struct atlas_data *data = iio_priv(indio_dev);
514 ret = regmap_bulk_read(data->regmap, chan->address,
525 ret = atlas_read_measurement(data, chan->address, ®);
573 struct atlas_data *data = iio_priv(indio_dev);
582 return regmap_bulk_write(data->regmap, chan->address,
602 { .compatible = "atlas,ph-sm", .data = (void *)ATLAS_PH_SM, },
603 { .compatible = "atlas,ec-sm", .data = (void *)ATLAS_EC_SM, },
604 { .compatible = "atlas,orp-sm", .data = (void *)ATLAS_ORP_SM, },
605 { .compatible = "atlas,do-sm", .data = (void *)ATLAS_DO_SM, },
606 { .compatible = "atlas,rtd-sm", .data = (void *)ATLAS_RTD_SM, },
614 struct atlas_data *data;
620 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data));
641 data = iio_priv(indio_dev);
642 data->client = client;
643 data->trig = trig;
644 data->chip = chip;
649 data->regmap = devm_regmap_init_i2c(client, &atlas_regmap_config);
650 if (IS_ERR(data->regmap)) {
652 return PTR_ERR(data->regmap);
659 ret = chip->calibration(data);
676 init_irq_work(&data->work, atlas_work_handler);
691 data->interrupt_enabled = 1;
694 ret = atlas_set_powermode(data, 1);
714 atlas_set_powermode(data, 0);
720 iio_trigger_unregister(data->trig);
728 struct atlas_data *data = iio_priv(indio_dev);
733 iio_trigger_unregister(data->trig);
738 ret = atlas_set_powermode(data, 0);
746 struct atlas_data *data =
749 return atlas_set_powermode(data, 0);
754 struct atlas_data *data =
757 return atlas_set_powermode(data, 1);