Lines Matching defs:data

44 	int (*xfer)(struct lidar_data *data, u8 reg, u8 *val, int len);
69 static int lidar_i2c_xfer(struct lidar_data *data, u8 reg, u8 *val, int len)
71 struct i2c_client *client = data->client;
90 static int lidar_smbus_xfer(struct lidar_data *data, u8 reg, u8 *val, int len)
92 struct i2c_client *client = data->client;
96 * Device needs a STOP condition between address write, and data read
109 dev_err(&client->dev, "cannot read data value");
119 static int lidar_read_byte(struct lidar_data *data, u8 reg)
124 ret = data->xfer(data, reg, &val, 1);
131 static inline int lidar_write_control(struct lidar_data *data, int val)
133 return i2c_smbus_write_byte_data(data->client, LIDAR_REG_CONTROL, val);
136 static inline int lidar_write_power(struct lidar_data *data, int val)
138 return i2c_smbus_write_byte_data(data->client,
142 static int lidar_read_measurement(struct lidar_data *data, u16 *reg)
145 int ret = data->xfer(data, LIDAR_REG_DATA_HBYTE |
146 (data->i2c_enabled ? LIDAR_REG_DATA_WORD_READ : 0),
155 static int lidar_get_measurement(struct lidar_data *data, u16 *reg)
157 struct i2c_client *client = data->client;
164 ret = lidar_write_control(data, LIDAR_REG_CONTROL_ACQUIRE);
174 ret = lidar_read_byte(data, LIDAR_REG_STATUS);
187 ret = lidar_read_measurement(data, reg);
202 struct lidar_data *data = iio_priv(indio_dev);
212 ret = lidar_get_measurement(data, &reg);
234 struct lidar_data *data = iio_priv(indio_dev);
237 ret = lidar_get_measurement(data, &data->scan.chan);
239 iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
242 dev_err(&data->client->dev, "cannot read LIDAR measurement");
257 struct lidar_data *data;
261 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data));
264 data = iio_priv(indio_dev);
267 data->xfer = lidar_i2c_xfer;
268 data->i2c_enabled = 1;
271 data->xfer = lidar_smbus_xfer;
283 data->client = client;
284 data->indio_dev = indio_dev;
343 struct lidar_data *data = iio_priv(indio_dev);
345 return lidar_write_power(data, 0x0f);
351 struct lidar_data *data = iio_priv(indio_dev);
352 int ret = lidar_write_power(data, 0);