Lines Matching refs:data

51 /* Each client has this additional data */
67 static int mag3110_request(struct mag3110_data *data)
71 if ((data->ctrl_reg1 & MAG3110_CTRL_AC) == 0) {
73 ret = i2c_smbus_write_byte_data(data->client, MAG3110_CTRL_REG1,
74 data->ctrl_reg1 | MAG3110_CTRL_TM);
80 ret = i2c_smbus_read_byte_data(data->client, MAG3110_STATUS);
83 /* wait for data ready */
87 if (data->sleep_val <= 20)
88 usleep_range(data->sleep_val * 250, data->sleep_val * 500);
94 dev_err(&data->client->dev, "data not ready\n");
101 static int mag3110_read(struct mag3110_data *data, __be16 buf[3])
105 mutex_lock(&data->lock);
106 ret = mag3110_request(data);
108 mutex_unlock(&data->lock);
111 ret = i2c_smbus_read_i2c_block_data(data->client,
113 mutex_unlock(&data->lock);
156 static int mag3110_get_samp_freq_index(struct mag3110_data *data,
163 static int mag3110_calculate_sleep(struct mag3110_data *data)
165 int ret, i = data->ctrl_reg1 >> MAG3110_CTRL_DR_SHIFT;
175 static int mag3110_standby(struct mag3110_data *data)
177 return i2c_smbus_write_byte_data(data->client, MAG3110_CTRL_REG1,
178 data->ctrl_reg1 & ~MAG3110_CTRL_AC);
181 static int mag3110_wait_standby(struct mag3110_data *data)
191 ret = i2c_smbus_read_byte_data(data->client, MAG3110_SYSMOD);
193 dev_err(&data->client->dev, "i2c error\n");
204 dev_err(&data->client->dev, "device not entering standby mode\n");
211 static int mag3110_active(struct mag3110_data *data)
213 return i2c_smbus_write_byte_data(data->client, MAG3110_CTRL_REG1,
214 data->ctrl_reg1);
218 static int mag3110_is_active(struct mag3110_data *data)
222 reg = i2c_smbus_read_byte_data(data->client, MAG3110_CTRL_REG1);
229 static int mag3110_change_config(struct mag3110_data *data, u8 reg, u8 val)
234 mutex_lock(&data->lock);
236 is_active = mag3110_is_active(data);
244 ret = mag3110_standby(data);
253 ret = mag3110_wait_standby(data);
257 ret = i2c_smbus_write_byte_data(data->client, reg, val);
262 ret = mag3110_active(data);
269 mutex_unlock(&data->lock);
278 struct mag3110_data *data = iio_priv(indio_dev);
290 ret = mag3110_read(data, buffer);
298 mutex_lock(&data->lock);
299 ret = mag3110_request(data);
301 mutex_unlock(&data->lock);
304 ret = i2c_smbus_read_byte_data(data->client,
306 mutex_unlock(&data->lock);
332 i = data->ctrl_reg1 >> MAG3110_CTRL_DR_SHIFT;
337 ret = i2c_smbus_read_word_swapped(data->client,
351 struct mag3110_data *data = iio_priv(indio_dev);
360 rate = mag3110_get_samp_freq_index(data, val, val2);
365 data->ctrl_reg1 &= 0xff & ~MAG3110_CTRL_DR_MASK
367 data->ctrl_reg1 |= rate << MAG3110_CTRL_DR_SHIFT;
368 data->sleep_val = mag3110_calculate_sleep(data);
369 if (data->sleep_val < 40)
370 data->ctrl_reg1 |= MAG3110_CTRL_AC;
372 ret = mag3110_change_config(data, MAG3110_CTRL_REG1,
373 data->ctrl_reg1);
380 ret = i2c_smbus_write_word_swapped(data->client,
395 struct mag3110_data *data = iio_priv(indio_dev);
398 ret = mag3110_read(data, data->scan.channels);
403 ret = i2c_smbus_read_byte_data(data->client,
407 data->scan.temperature = ret;
410 iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
473 struct mag3110_data *data;
477 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data));
481 data = iio_priv(indio_dev);
483 data->vdd_reg = devm_regulator_get(&client->dev, "vdd");
484 if (IS_ERR(data->vdd_reg))
485 return dev_err_probe(&client->dev, PTR_ERR(data->vdd_reg),
488 data->vddio_reg = devm_regulator_get(&client->dev, "vddio");
489 if (IS_ERR(data->vddio_reg))
490 return dev_err_probe(&client->dev, PTR_ERR(data->vddio_reg),
493 ret = regulator_enable(data->vdd_reg);
499 ret = regulator_enable(data->vddio_reg);
513 data->client = client;
514 mutex_init(&data->lock);
524 data->ctrl_reg1 = MAG3110_CTRL_DR_DEFAULT << MAG3110_CTRL_DR_SHIFT;
525 data->sleep_val = mag3110_calculate_sleep(data);
526 if (data->sleep_val < 40)
527 data->ctrl_reg1 |= MAG3110_CTRL_AC;
529 ret = mag3110_change_config(data, MAG3110_CTRL_REG1, data->ctrl_reg1);
553 regulator_disable(data->vddio_reg);
555 regulator_disable(data->vdd_reg);
563 struct mag3110_data *data = iio_priv(indio_dev);
568 regulator_disable(data->vddio_reg);
569 regulator_disable(data->vdd_reg);
577 struct mag3110_data *data = iio_priv(i2c_get_clientdata(
586 ret = regulator_disable(data->vddio_reg);
592 ret = regulator_disable(data->vdd_reg);
603 struct mag3110_data *data = iio_priv(i2c_get_clientdata(
607 ret = regulator_enable(data->vdd_reg);
613 ret = regulator_enable(data->vddio_reg);
616 regulator_disable(data->vdd_reg);
620 return i2c_smbus_write_byte_data(data->client, MAG3110_CTRL_REG1,
621 data->ctrl_reg1);