Lines Matching refs:data

146 static int mma8452_drdy(struct mma8452_data *data)  in mma8452_drdy()  argument
151 int ret = i2c_smbus_read_byte_data(data->client, in mma8452_drdy()
161 dev_err(&data->client->dev, "data not ready\n"); in mma8452_drdy()
166 static int mma8452_read(struct mma8452_data *data, __be16 buf[3]) in mma8452_read() argument
168 int ret = mma8452_drdy(data); in mma8452_read()
173 return i2c_smbus_read_i2c_block_data(data->client, MMA8452_OUT_X, in mma8452_read()
202 static int mma8452_get_odr_index(struct mma8452_data *data) in mma8452_get_odr_index() argument
204 return (data->ctrl_reg1 & MMA8452_CTRL_DR_MASK) >> in mma8452_get_odr_index()
249 struct mma8452_data *data = iio_priv(i2c_get_clientdata( in mma8452_show_scale_avail() local
252 return mma8452_show_int_plus_micros(buf, data->chip_info->mma_scales, in mma8452_show_scale_avail()
253 ARRAY_SIZE(data->chip_info->mma_scales)); in mma8452_show_scale_avail()
261 struct mma8452_data *data = iio_priv(indio_dev); in mma8452_show_hp_cutoff_avail() local
262 int i = mma8452_get_odr_index(data); in mma8452_show_hp_cutoff_avail()
274 static int mma8452_get_samp_freq_index(struct mma8452_data *data, in mma8452_get_samp_freq_index() argument
282 static int mma8452_get_scale_index(struct mma8452_data *data, int val, int val2) in mma8452_get_scale_index() argument
284 return mma8452_get_int_plus_micros_index(data->chip_info->mma_scales, in mma8452_get_scale_index()
285 ARRAY_SIZE(data->chip_info->mma_scales), val, val2); in mma8452_get_scale_index()
288 static int mma8452_get_hp_filter_index(struct mma8452_data *data, in mma8452_get_hp_filter_index() argument
291 int i = mma8452_get_odr_index(data); in mma8452_get_hp_filter_index()
297 static int mma8452_read_hp_filter(struct mma8452_data *data, int *hz, int *uHz) in mma8452_read_hp_filter() argument
301 ret = i2c_smbus_read_byte_data(data->client, MMA8452_HP_FILTER_CUTOFF); in mma8452_read_hp_filter()
305 i = mma8452_get_odr_index(data); in mma8452_read_hp_filter()
317 struct mma8452_data *data = iio_priv(indio_dev); in mma8452_read_raw() local
326 mutex_lock(&data->lock); in mma8452_read_raw()
327 ret = mma8452_read(data, buffer); in mma8452_read_raw()
328 mutex_unlock(&data->lock); in mma8452_read_raw()
338 i = data->data_cfg & MMA8452_DATA_CFG_FS_MASK; in mma8452_read_raw()
339 *val = data->chip_info->mma_scales[i][0]; in mma8452_read_raw()
340 *val2 = data->chip_info->mma_scales[i][1]; in mma8452_read_raw()
344 i = mma8452_get_odr_index(data); in mma8452_read_raw()
350 ret = i2c_smbus_read_byte_data(data->client, in mma8452_read_raw()
359 if (data->data_cfg & MMA8452_DATA_CFG_HPF_MASK) { in mma8452_read_raw()
360 ret = mma8452_read_hp_filter(data, val, val2); in mma8452_read_raw()
374 static int mma8452_standby(struct mma8452_data *data) in mma8452_standby() argument
376 return i2c_smbus_write_byte_data(data->client, MMA8452_CTRL_REG1, in mma8452_standby()
377 data->ctrl_reg1 & ~MMA8452_CTRL_ACTIVE); in mma8452_standby()
380 static int mma8452_active(struct mma8452_data *data) in mma8452_active() argument
382 return i2c_smbus_write_byte_data(data->client, MMA8452_CTRL_REG1, in mma8452_active()
383 data->ctrl_reg1); in mma8452_active()
386 static int mma8452_change_config(struct mma8452_data *data, u8 reg, u8 val) in mma8452_change_config() argument
390 mutex_lock(&data->lock); in mma8452_change_config()
393 ret = mma8452_standby(data); in mma8452_change_config()
397 ret = i2c_smbus_write_byte_data(data->client, reg, val); in mma8452_change_config()
401 ret = mma8452_active(data); in mma8452_change_config()
407 mutex_unlock(&data->lock); in mma8452_change_config()
412 static int mma8452_set_hp_filter_frequency(struct mma8452_data *data, in mma8452_set_hp_filter_frequency() argument
417 i = mma8452_get_hp_filter_index(data, val, val2); in mma8452_set_hp_filter_frequency()
421 reg = i2c_smbus_read_byte_data(data->client, in mma8452_set_hp_filter_frequency()
429 return mma8452_change_config(data, MMA8452_HP_FILTER_CUTOFF, reg); in mma8452_set_hp_filter_frequency()
436 struct mma8452_data *data = iio_priv(indio_dev); in mma8452_write_raw() local
444 i = mma8452_get_samp_freq_index(data, val, val2); in mma8452_write_raw()
448 data->ctrl_reg1 &= ~MMA8452_CTRL_DR_MASK; in mma8452_write_raw()
449 data->ctrl_reg1 |= i << MMA8452_CTRL_DR_SHIFT; in mma8452_write_raw()
451 return mma8452_change_config(data, MMA8452_CTRL_REG1, in mma8452_write_raw()
452 data->ctrl_reg1); in mma8452_write_raw()
454 i = mma8452_get_scale_index(data, val, val2); in mma8452_write_raw()
458 data->data_cfg &= ~MMA8452_DATA_CFG_FS_MASK; in mma8452_write_raw()
459 data->data_cfg |= i; in mma8452_write_raw()
461 return mma8452_change_config(data, MMA8452_DATA_CFG, in mma8452_write_raw()
462 data->data_cfg); in mma8452_write_raw()
467 return mma8452_change_config(data, in mma8452_write_raw()
473 data->data_cfg &= ~MMA8452_DATA_CFG_HPF_MASK; in mma8452_write_raw()
475 data->data_cfg |= MMA8452_DATA_CFG_HPF_MASK; in mma8452_write_raw()
476 ret = mma8452_set_hp_filter_frequency(data, val, val2); in mma8452_write_raw()
481 return mma8452_change_config(data, MMA8452_DATA_CFG, in mma8452_write_raw()
482 data->data_cfg); in mma8452_write_raw()
496 struct mma8452_data *data = iio_priv(indio_dev); in mma8452_read_thresh() local
501 ret = i2c_smbus_read_byte_data(data->client, in mma8452_read_thresh()
502 data->chip_info->ev_ths); in mma8452_read_thresh()
506 *val = ret & data->chip_info->ev_ths_mask; in mma8452_read_thresh()
511 ret = i2c_smbus_read_byte_data(data->client, in mma8452_read_thresh()
512 data->chip_info->ev_count); in mma8452_read_thresh()
517 mma8452_get_odr_index(data)]; in mma8452_read_thresh()
524 ret = i2c_smbus_read_byte_data(data->client, in mma8452_read_thresh()
533 ret = mma8452_read_hp_filter(data, val, val2); in mma8452_read_thresh()
552 struct mma8452_data *data = iio_priv(indio_dev); in mma8452_write_thresh() local
560 return mma8452_change_config(data, data->chip_info->ev_ths, in mma8452_write_thresh()
566 mma8452_get_odr_index(data)]; in mma8452_write_thresh()
571 return mma8452_change_config(data, data->chip_info->ev_count, in mma8452_write_thresh()
575 reg = i2c_smbus_read_byte_data(data->client, in mma8452_write_thresh()
584 ret = mma8452_set_hp_filter_frequency(data, val, val2); in mma8452_write_thresh()
589 return mma8452_change_config(data, MMA8452_TRANSIENT_CFG, reg); in mma8452_write_thresh()
601 struct mma8452_data *data = iio_priv(indio_dev); in mma8452_read_event_config() local
602 const struct mma_chip_info *chip = data->chip_info; in mma8452_read_event_config()
605 ret = i2c_smbus_read_byte_data(data->client, in mma8452_read_event_config()
606 data->chip_info->ev_cfg); in mma8452_read_event_config()
619 struct mma8452_data *data = iio_priv(indio_dev); in mma8452_write_event_config() local
620 const struct mma_chip_info *chip = data->chip_info; in mma8452_write_event_config()
623 val = i2c_smbus_read_byte_data(data->client, chip->ev_cfg); in mma8452_write_event_config()
635 return mma8452_change_config(data, chip->ev_cfg, val); in mma8452_write_event_config()
640 struct mma8452_data *data = iio_priv(indio_dev); in mma8452_transient_interrupt() local
644 src = i2c_smbus_read_byte_data(data->client, data->chip_info->ev_src); in mma8452_transient_interrupt()
648 if (src & data->chip_info->ev_src_xe) in mma8452_transient_interrupt()
655 if (src & data->chip_info->ev_src_ye) in mma8452_transient_interrupt()
662 if (src & data->chip_info->ev_src_ze) in mma8452_transient_interrupt()
673 struct mma8452_data *data = iio_priv(indio_dev); in mma8452_interrupt() local
674 const struct mma_chip_info *chip = data->chip_info; in mma8452_interrupt()
678 src = i2c_smbus_read_byte_data(data->client, MMA8452_INT_SRC); in mma8452_interrupt()
702 struct mma8452_data *data = iio_priv(indio_dev); in mma8452_trigger_handler() local
706 ret = mma8452_read(data, (__be16 *)buffer); in mma8452_trigger_handler()
724 struct mma8452_data *data = iio_priv(indio_dev); in mma8452_reg_access_dbg() local
730 return mma8452_change_config(data, reg, writeval); in mma8452_reg_access_dbg()
732 ret = i2c_smbus_read_byte_data(data->client, reg); in mma8452_reg_access_dbg()
957 struct mma8452_data *data = iio_priv(indio_dev); in mma8452_data_rdy_trigger_set_state() local
960 reg = i2c_smbus_read_byte_data(data->client, MMA8452_CTRL_REG4); in mma8452_data_rdy_trigger_set_state()
969 return mma8452_change_config(data, MMA8452_CTRL_REG4, reg); in mma8452_data_rdy_trigger_set_state()
991 struct mma8452_data *data = iio_priv(indio_dev); in mma8452_trigger_setup() local
995 trig = devm_iio_trigger_alloc(&data->client->dev, "%s-dev%d", in mma8452_trigger_setup()
1001 trig->dev.parent = &data->client->dev; in mma8452_trigger_setup()
1045 { .compatible = "fsl,mma8452", .data = &mma_chip_info_table[mma8452] },
1046 { .compatible = "fsl,mma8453", .data = &mma_chip_info_table[mma8453] },
1047 { .compatible = "fsl,mma8652", .data = &mma_chip_info_table[mma8652] },
1048 { .compatible = "fsl,mma8653", .data = &mma_chip_info_table[mma8653] },
1056 struct mma8452_data *data; in mma8452_probe() local
1067 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); in mma8452_probe()
1071 data = iio_priv(indio_dev); in mma8452_probe()
1072 data->client = client; in mma8452_probe()
1073 mutex_init(&data->lock); in mma8452_probe()
1074 data->chip_info = match->data; in mma8452_probe()
1085 if (ret == data->chip_info->chip_id) in mma8452_probe()
1092 match->compatible, data->chip_info->chip_id); in mma8452_probe()
1099 indio_dev->channels = data->chip_info->channels; in mma8452_probe()
1100 indio_dev->num_channels = data->chip_info->num_channels; in mma8452_probe()
1107 data->data_cfg = MMA8452_DATA_CFG_FS_2G; in mma8452_probe()
1109 data->data_cfg); in mma8452_probe()
1152 data->ctrl_reg1 = MMA8452_CTRL_ACTIVE | in mma8452_probe()
1155 data->ctrl_reg1); in mma8452_probe()