Lines Matching refs:data

122  * struct mlx90632_data - private data for the MLX90632 device
212 * @data: pointer to mlx90632_data object containing regmap information
218 static int mlx90632_perform_measurement(struct mlx90632_data *data)
223 ret = regmap_update_bits(data->regmap, MLX90632_REG_STATUS,
228 ret = regmap_read_poll_timeout(data->regmap, MLX90632_REG_STATUS, reg_status,
233 dev_err(&data->client->dev, "data not ready");
343 static int mlx90632_read_all_channel(struct mlx90632_data *data,
349 mutex_lock(&data->lock);
350 measurement = mlx90632_perform_measurement(data);
355 ret = mlx90632_read_ambient_raw(data->regmap, ambient_new_raw,
360 ret = mlx90632_read_object_raw(data->regmap, measurement,
363 mutex_unlock(&data->lock);
430 static int mlx90632_read_all_channel_extended(struct mlx90632_data *data, s16 *object_new_raw,
435 mutex_lock(&data->lock);
436 ret = mlx90632_set_meas_type(data->regmap, MLX90632_MTYP_EXTENDED);
441 50000, 800000, false, data);
445 ret = mlx90632_read_object_raw_extended(data->regmap, object_new_raw);
449 ret = mlx90632_read_ambient_raw_extended(data->regmap, ambient_new_raw, ambient_old_raw);
452 (void) mlx90632_set_meas_type(data->regmap, MLX90632_MTYP_MEDICAL);
454 mutex_unlock(&data->lock);
625 static int mlx90632_calc_object_dsp105(struct mlx90632_data *data, int *val)
634 ret = mlx90632_read_ee_register(data->regmap, MLX90632_EE_Ea, &Ea);
637 ret = mlx90632_read_ee_register(data->regmap, MLX90632_EE_Eb, &Eb);
640 ret = mlx90632_read_ee_register(data->regmap, MLX90632_EE_Fa, &Fa);
643 ret = mlx90632_read_ee_register(data->regmap, MLX90632_EE_Fb, &Fb);
646 ret = mlx90632_read_ee_register(data->regmap, MLX90632_EE_Ga, &Ga);
649 ret = regmap_read(data->regmap, MLX90632_EE_Ha, &read_tmp);
653 ret = regmap_read(data->regmap, MLX90632_EE_Hb, &read_tmp);
657 ret = regmap_read(data->regmap, MLX90632_EE_Gb, &read_tmp);
661 ret = regmap_read(data->regmap, MLX90632_EE_Ka, &read_tmp);
666 ret = mlx90632_read_all_channel(data,
673 data->mtyp == MLX90632_MTYP_EXTENDED) {
674 ret = mlx90632_read_all_channel_extended(data, &object_new_raw,
686 data->object_ambient_temperature,
688 Ha, Hb, data->emissivity);
700 Ha, Hb, data->emissivity);
704 static int mlx90632_calc_ambient_dsp105(struct mlx90632_data *data, int *val)
712 ret = mlx90632_read_ee_register(data->regmap, MLX90632_EE_P_R, &PR);
715 ret = mlx90632_read_ee_register(data->regmap, MLX90632_EE_P_G, &PG);
718 ret = mlx90632_read_ee_register(data->regmap, MLX90632_EE_P_T, &PT);
721 ret = mlx90632_read_ee_register(data->regmap, MLX90632_EE_P_O, &PO);
724 ret = regmap_read(data->regmap, MLX90632_EE_Gb, &read_tmp);
729 ret = mlx90632_read_ambient_raw(data->regmap, &ambient_new_raw,
742 struct mlx90632_data *data = iio_priv(indio_dev);
749 ret = mlx90632_calc_ambient_dsp105(data, val);
754 ret = mlx90632_calc_object_dsp105(data, val);
762 if (data->emissivity == 1000) {
767 *val2 = data->emissivity * 1000;
771 *val = data->object_ambient_temperature;
782 struct mlx90632_data *data = iio_priv(indio_dev);
790 data->emissivity = val * 1000 + val2 / 1000;
793 data->object_ambient_temperature = val;
821 static int mlx90632_sleep(struct mlx90632_data *data)
823 regcache_mark_dirty(data->regmap);
825 dev_dbg(&data->client->dev, "Requesting sleep");
826 return mlx90632_pwr_set_sleep_step(data->regmap);
829 static int mlx90632_wakeup(struct mlx90632_data *data)
833 ret = regcache_sync(data->regmap);
835 dev_err(&data->client->dev,
840 dev_dbg(&data->client->dev, "Requesting wake-up\n");
841 return mlx90632_pwr_continuous(data->regmap);
930 struct mlx90632_data *data = iio_priv(indio_dev);
938 mlx90632_sleep(data);
958 struct mlx90632_data *data = iio_priv(indio_dev);
960 return mlx90632_sleep(data);
966 struct mlx90632_data *data = iio_priv(indio_dev);
968 return mlx90632_wakeup(data);