Lines Matching refs:data
142 static int mxc4005_read_xyz(struct mxc4005_data *data) in mxc4005_read_xyz() argument
146 ret = regmap_bulk_read(data->regmap, MXC4005_REG_XOUT_UPPER, in mxc4005_read_xyz()
147 (u8 *) data->buffer, sizeof(data->buffer)); in mxc4005_read_xyz()
149 dev_err(data->dev, "failed to read axes\n"); in mxc4005_read_xyz()
156 static int mxc4005_read_axis(struct mxc4005_data *data, in mxc4005_read_axis() argument
162 ret = regmap_bulk_read(data->regmap, addr, (u8 *) ®, sizeof(reg)); in mxc4005_read_axis()
164 dev_err(data->dev, "failed to read reg %02x\n", addr); in mxc4005_read_axis()
171 static int mxc4005_read_scale(struct mxc4005_data *data) in mxc4005_read_scale() argument
177 ret = regmap_read(data->regmap, MXC4005_REG_CONTROL, ®); in mxc4005_read_scale()
179 dev_err(data->dev, "failed to read reg_control\n"); in mxc4005_read_scale()
191 static int mxc4005_set_scale(struct mxc4005_data *data, int val) in mxc4005_set_scale() argument
200 ret = regmap_update_bits(data->regmap, in mxc4005_set_scale()
205 dev_err(data->dev, in mxc4005_set_scale()
218 struct mxc4005_data *data = iio_priv(indio_dev); in mxc4005_read_raw() local
228 ret = mxc4005_read_axis(data, chan->address); in mxc4005_read_raw()
238 ret = mxc4005_read_scale(data); in mxc4005_read_raw()
254 struct mxc4005_data *data = iio_priv(indio_dev); in mxc4005_write_raw() local
261 return mxc4005_set_scale(data, val2); in mxc4005_write_raw()
307 struct mxc4005_data *data = iio_priv(indio_dev); in mxc4005_trigger_handler() local
310 ret = mxc4005_read_xyz(data); in mxc4005_trigger_handler()
314 iio_push_to_buffers_with_timestamp(indio_dev, data->buffer, in mxc4005_trigger_handler()
323 static int mxc4005_clr_intr(struct mxc4005_data *data) in mxc4005_clr_intr() argument
328 ret = regmap_write(data->regmap, MXC4005_REG_INT_CLR1, in mxc4005_clr_intr()
331 dev_err(data->dev, "failed to write to reg_int_clr1\n"); in mxc4005_clr_intr()
342 struct mxc4005_data *data = iio_priv(indio_dev); in mxc4005_set_trigger_state() local
345 mutex_lock(&data->mutex); in mxc4005_set_trigger_state()
347 ret = regmap_write(data->regmap, MXC4005_REG_INT_MASK1, in mxc4005_set_trigger_state()
350 ret = regmap_write(data->regmap, MXC4005_REG_INT_MASK1, in mxc4005_set_trigger_state()
355 mutex_unlock(&data->mutex); in mxc4005_set_trigger_state()
356 dev_err(data->dev, "failed to update reg_int_mask1"); in mxc4005_set_trigger_state()
360 data->trigger_enabled = state; in mxc4005_set_trigger_state()
361 mutex_unlock(&data->mutex); in mxc4005_set_trigger_state()
369 struct mxc4005_data *data = iio_priv(indio_dev); in mxc4005_trigger_try_reen() local
371 if (!data->dready_trig) in mxc4005_trigger_try_reen()
374 return mxc4005_clr_intr(data); in mxc4005_trigger_try_reen()
384 struct mxc4005_data *data) in mxc4005_gpio_probe() argument
408 static int mxc4005_chip_init(struct mxc4005_data *data) in mxc4005_chip_init() argument
413 ret = regmap_read(data->regmap, MXC4005_REG_DEVICE_ID, ®); in mxc4005_chip_init()
415 dev_err(data->dev, "failed to read chip id\n"); in mxc4005_chip_init()
419 dev_dbg(data->dev, "MXC4005 chip id %02x\n", reg); in mxc4005_chip_init()
427 struct mxc4005_data *data; in mxc4005_probe() local
432 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); in mxc4005_probe()
442 data = iio_priv(indio_dev); in mxc4005_probe()
444 data->dev = &client->dev; in mxc4005_probe()
445 data->regmap = regmap; in mxc4005_probe()
447 ret = mxc4005_chip_init(data); in mxc4005_probe()
453 mutex_init(&data->mutex); in mxc4005_probe()
474 client->irq = mxc4005_gpio_probe(client, data); in mxc4005_probe()
477 data->dready_trig = devm_iio_trigger_alloc(&client->dev, in mxc4005_probe()
481 if (!data->dready_trig) in mxc4005_probe()
490 data->dready_trig); in mxc4005_probe()
497 data->dready_trig->dev.parent = &client->dev; in mxc4005_probe()
498 data->dready_trig->ops = &mxc4005_trigger_ops; in mxc4005_probe()
499 iio_trigger_set_drvdata(data->dready_trig, indio_dev); in mxc4005_probe()
500 indio_dev->trig = data->dready_trig; in mxc4005_probe()
502 ret = iio_trigger_register(data->dready_trig); in mxc4005_probe()
520 iio_trigger_unregister(data->dready_trig); in mxc4005_probe()
530 struct mxc4005_data *data = iio_priv(indio_dev); in mxc4005_remove() local
535 if (data->dready_trig) in mxc4005_remove()
536 iio_trigger_unregister(data->dready_trig); in mxc4005_remove()