Lines Matching refs:data

112 	struct mcp4728_data *data = iio_priv(indio_dev);
130 struct mcp4728_channel_data *ch = &data->chdata[i];
135 if (data->powerdown) {
149 ret = i2c_master_send(data->client, outbuf, MCP4728_WRITE_EEPROM_LEN);
158 ret = i2c_master_recv(data->client, inbuf, 3);
169 dev_err(&data->client->dev, "%s failed, incomplete\n",
189 struct mcp4728_data *data = iio_priv(indio_dev);
190 struct mcp4728_channel_data *ch = &data->chdata[channel];
200 if (data->powerdown)
207 ret = i2c_master_send(data->client, outbuf, 3);
223 struct mcp4728_data *data = iio_priv(indio_dev);
225 return data->chdata[chan->channel].pd_mode;
232 struct mcp4728_data *data = iio_priv(indio_dev);
234 data->chdata[chan->channel].pd_mode = mode;
244 struct mcp4728_data *data = iio_priv(indio_dev);
246 return sysfs_emit(buf, "%d\n", data->powerdown);
254 struct mcp4728_data *data = iio_priv(indio_dev);
263 ret = mcp4728_suspend(&data->client->dev);
265 ret = mcp4728_resume(&data->client->dev);
301 struct mcp4728_data *data, int *val,
304 *val = data->scales_avail[scale * 2];
305 *val2 = data->scales_avail[scale * 2 + 1];
308 static void mcp4728_get_scale(int channel, struct mcp4728_data *data, int *val,
311 int ref_mode = data->chdata[channel].ref_mode;
312 int g_mode = data->chdata[channel].g_mode;
315 mcp4728_get_scale_avail(MCP4728_SCALE_VDD, data, val, val2);
319 data, val, val2);
322 data, val, val2);
327 static int mcp4728_find_matching_scale(struct mcp4728_data *data, int val,
331 if (data->scales_avail[i * 2] == val &&
332 data->scales_avail[i * 2 + 1] == val2)
338 static int mcp4728_set_scale(int channel, struct mcp4728_data *data, int val,
341 int scale = mcp4728_find_matching_scale(data, val, val2);
348 data->chdata[channel].ref_mode = MCP4728_VREF_EXTERNAL_VDD;
351 data->chdata[channel].ref_mode = MCP4728_VREF_INTERNAL_2048mV;
352 data->chdata[channel].g_mode = MCP4728_GAIN_X1;
355 data->chdata[channel].ref_mode = MCP4728_VREF_INTERNAL_2048mV;
356 data->chdata[channel].g_mode = MCP4728_GAIN_X2;
367 struct mcp4728_data *data = iio_priv(indio_dev);
371 *val = data->chdata[chan->channel].dac_value;
374 mcp4728_get_scale(chan->channel, data, val, val2);
384 struct mcp4728_data *data = iio_priv(indio_dev);
391 data->chdata[chan->channel].dac_value = val;
394 ret = mcp4728_set_scale(chan->channel, data, val, val2);
405 struct mcp4728_data *data)
414 data->scales_avail[scale * 2] = value_int;
415 data->scales_avail[scale * 2 + 1] = value_micro;
418 static int mcp4728_init_scales_avail(struct mcp4728_data *data)
422 ret = regulator_get_voltage(data->vdd_reg);
426 mcp4728_init_scale_avail(MCP4728_SCALE_VDD, ret / 1000, data);
427 mcp4728_init_scale_avail(MCP4728_SCALE_VINT_NO_GAIN, 2048, data);
428 mcp4728_init_scale_avail(MCP4728_SCALE_VINT_GAIN_X2, 4096, data);
438 struct mcp4728_data *data = iio_priv(indio_dev);
446 *vals = data->scales_avail;
467 struct mcp4728_data *data = iio_priv(indio_dev);
470 data->powerdown = true;
484 struct mcp4728_data *data = iio_priv(indio_dev);
488 data->powerdown = false;
502 static int mcp4728_init_channels_data(struct mcp4728_data *data)
508 ret = i2c_master_recv(data->client, inbuf, MCP4728_READ_RESPONSE_LEN);
510 return dev_err_probe(&data->client->dev, ret,
513 return dev_err_probe(&data->client->dev, -EIO,
519 struct mcp4728_channel_data *ch = &data->chdata[i];
541 struct mcp4728_data *data;
545 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data));
549 data = iio_priv(indio_dev);
551 data->client = client;
553 data->vdd_reg = devm_regulator_get(&client->dev, "vdd");
554 if (IS_ERR(data->vdd_reg))
555 return PTR_ERR(data->vdd_reg);
557 err = regulator_enable(data->vdd_reg);
562 data->vdd_reg);
570 * settings and stores them in data structure.
572 err = mcp4728_init_channels_data(data);
578 err = mcp4728_init_scales_avail(data);