Lines Matching refs:data

6  * Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/AD5272_5274.pdf
63 static int ad5272_write(struct ad5272_data *data, int reg, int val)
67 data->buf[0] = (reg << 2) | ((val >> 8) & 0x3);
68 data->buf[1] = (u8)val;
70 mutex_lock(&data->lock);
71 ret = i2c_master_send(data->client, data->buf, sizeof(data->buf));
72 mutex_unlock(&data->lock);
76 static int ad5272_read(struct ad5272_data *data, int reg, int *val)
80 data->buf[0] = reg << 2;
81 data->buf[1] = 0;
83 mutex_lock(&data->lock);
84 ret = i2c_master_send(data->client, data->buf, sizeof(data->buf));
88 ret = i2c_master_recv(data->client, data->buf, sizeof(data->buf));
92 *val = ((data->buf[0] & 0x3) << 8) | data->buf[1];
95 mutex_unlock(&data->lock);
103 struct ad5272_data *data = iio_priv(indio_dev);
108 ret = ad5272_read(data, AD5272_RDAC_RD, val);
109 *val = *val >> data->cfg->shift;
113 *val = 1000 * data->cfg->kohms;
114 *val2 = data->cfg->max_pos;
125 struct ad5272_data *data = iio_priv(indio_dev);
130 if (val >= data->cfg->max_pos || val < 0 || val2)
133 return ad5272_write(data, AD5272_RDAC_WR, val << data->cfg->shift);
141 static int ad5272_reset(struct ad5272_data *data)
145 reset_gpio = devm_gpiod_get_optional(&data->client->dev, "reset",
154 ad5272_write(data, AD5272_RESET, 0);
166 struct ad5272_data *data;
169 indio_dev = devm_iio_device_alloc(dev, sizeof(*data));
175 data = iio_priv(indio_dev);
176 data->client = client;
177 mutex_init(&data->lock);
178 data->cfg = &ad5272_cfg[id->driver_data];
180 ret = ad5272_reset(data);
184 ret = ad5272_write(data, AD5272_CTL, AD5272_RDAC_WR_EN);
197 { .compatible = "adi,ad5272-020", .data = (void *)AD5272_020 },
198 { .compatible = "adi,ad5272-050", .data = (void *)AD5272_050 },
199 { .compatible = "adi,ad5272-100", .data = (void *)AD5272_100 },
200 { .compatible = "adi,ad5274-020", .data = (void *)AD5274_020 },
201 { .compatible = "adi,ad5274-100", .data = (void *)AD5274_100 },