Lines Matching refs:regmap

20 #include <linux/regmap.h>
125 * @regmap: Regmap of the device
135 struct regmap *regmap;
196 static s32 mlx90632_pwr_set_sleep_step(struct regmap *regmap)
198 return regmap_update_bits(regmap, MLX90632_REG_CONTROL,
203 static s32 mlx90632_pwr_continuous(struct regmap *regmap)
205 return regmap_update_bits(regmap, MLX90632_REG_CONTROL,
212 * @data: pointer to mlx90632_data object containing regmap information
223 ret = regmap_update_bits(data->regmap, MLX90632_REG_STATUS,
228 ret = regmap_read_poll_timeout(data->regmap, MLX90632_REG_STATUS, reg_status,
240 static int mlx90632_set_meas_type(struct regmap *regmap, u8 type)
247 ret = regmap_write(regmap, MLX90632_REG_I2C_CMD, MLX90632_RESET_CMD);
257 ret = regmap_write_bits(regmap, MLX90632_REG_CONTROL,
263 return mlx90632_pwr_continuous(regmap);
285 static int mlx90632_read_ambient_raw(struct regmap *regmap,
291 ret = regmap_read(regmap, MLX90632_RAM_3(1), &read_tmp);
296 ret = regmap_read(regmap, MLX90632_RAM_3(2), &read_tmp);
304 static int mlx90632_read_object_raw(struct regmap *regmap,
319 ret = regmap_read(regmap, MLX90632_RAM_2(channel), &read_tmp);
325 ret = regmap_read(regmap, MLX90632_RAM_1(channel), &read_tmp);
330 ret = regmap_read(regmap, MLX90632_RAM_2(channel_old), &read_tmp);
335 ret = regmap_read(regmap, MLX90632_RAM_1(channel_old), &read_tmp);
355 ret = mlx90632_read_ambient_raw(data->regmap, ambient_new_raw,
360 ret = mlx90632_read_object_raw(data->regmap, measurement,
367 static int mlx90632_read_ambient_raw_extended(struct regmap *regmap,
373 ret = regmap_read(regmap, MLX90632_RAM_DSP5_EXTENDED_AMBIENT_1, &read_tmp);
378 ret = regmap_read(regmap, MLX90632_RAM_DSP5_EXTENDED_AMBIENT_2, &read_tmp);
386 static int mlx90632_read_object_raw_extended(struct regmap *regmap, s16 *object_new_raw)
392 ret = regmap_read(regmap, MLX90632_RAM_DSP5_EXTENDED_OBJECT_1, &read_tmp);
397 ret = regmap_read(regmap, MLX90632_RAM_DSP5_EXTENDED_OBJECT_2, &read_tmp);
402 ret = regmap_read(regmap, MLX90632_RAM_DSP5_EXTENDED_OBJECT_3, &read_tmp);
407 ret = regmap_read(regmap, MLX90632_RAM_DSP5_EXTENDED_OBJECT_4, &read_tmp);
412 ret = regmap_read(regmap, MLX90632_RAM_DSP5_EXTENDED_OBJECT_5, &read_tmp);
417 ret = regmap_read(regmap, MLX90632_RAM_DSP5_EXTENDED_OBJECT_6, &read_tmp);
436 ret = mlx90632_set_meas_type(data->regmap, MLX90632_MTYP_EXTENDED);
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);
458 static int mlx90632_read_ee_register(struct regmap *regmap, u16 reg_lsb,
465 ret = regmap_read(regmap, reg_lsb, &read);
471 ret = regmap_read(regmap, reg_lsb + 1, &read);
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);
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,
823 regcache_mark_dirty(data->regmap);
826 return mlx90632_pwr_set_sleep_step(data->regmap);
833 ret = regcache_sync(data->regmap);
836 "Failed to sync regmap registers: %d\n", ret);
841 return mlx90632_pwr_continuous(data->regmap);
849 struct regmap *regmap;
859 regmap = devm_regmap_init_i2c(client, &mlx90632_regmap);
860 if (IS_ERR(regmap)) {
861 ret = PTR_ERR(regmap);
862 dev_err(&client->dev, "Failed to allocate regmap: %d\n", ret);
869 mlx90632->regmap = regmap;
885 ret = regmap_read(mlx90632->regmap, MLX90632_EE_VERSION, &read);