• Home
  • Raw
  • Download

Lines Matching +full:diff +full:- +full:channels

104 		ADIS16480_REG((page) + 1, (x) - 60 + 8))
112 const struct iio_chan_spec *channels; member
130 struct adis16480 *adis16480 = file->private_data; in adis16480_show_firmware_revision()
136 ret = adis_read_reg_16(&adis16480->adis, ADIS16480_REG_FIRM_REV, &rev); in adis16480_show_firmware_revision()
155 struct adis16480 *adis16480 = file->private_data; in adis16480_show_firmware_date()
161 ret = adis_read_reg_16(&adis16480->adis, ADIS16480_REG_FIRM_Y, &year); in adis16480_show_firmware_date()
165 ret = adis_read_reg_16(&adis16480->adis, ADIS16480_REG_FIRM_DM, &md); in adis16480_show_firmware_date()
169 len = snprintf(buf, sizeof(buf), "%.2x-%.2x-%.4x\n", in adis16480_show_firmware_date()
188 ret = adis_read_reg_16(&adis16480->adis, ADIS16480_REG_SERIAL_NUM, in adis16480_show_serial_number()
206 ret = adis_read_reg_16(&adis16480->adis, ADIS16480_REG_PROD_ID, in adis16480_show_product_id()
224 ret = adis_read_reg_32(&adis16480->adis, ADIS16480_REG_FLASH_CNT, in adis16480_show_flash_count()
241 indio_dev->debugfs_dentry, adis16480, in adis16480_debugfs_init()
244 indio_dev->debugfs_dentry, adis16480, in adis16480_debugfs_init()
247 indio_dev->debugfs_dentry, adis16480, in adis16480_debugfs_init()
250 indio_dev->debugfs_dentry, adis16480, in adis16480_debugfs_init()
253 indio_dev->debugfs_dentry, adis16480, in adis16480_debugfs_init()
274 return -EINVAL; in adis16480_set_freq()
278 return -EINVAL; in adis16480_set_freq()
285 t--; in adis16480_set_freq()
287 return adis_write_reg_16(&st->adis, ADIS16480_REG_DEC_RATE, t); in adis16480_set_freq()
297 ret = adis_read_reg_16(&st->adis, ADIS16480_REG_DEC_RATE, &t); in adis16480_get_freq()
347 unsigned int reg = adis16480_calibbias_regs[chan->scan_index]; in adis16480_set_calibbias()
350 switch (chan->type) { in adis16480_set_calibbias()
353 if (bias < -0x8000 || bias >= 0x8000) in adis16480_set_calibbias()
354 return -EINVAL; in adis16480_set_calibbias()
355 return adis_write_reg_16(&st->adis, reg, bias); in adis16480_set_calibbias()
358 return adis_write_reg_32(&st->adis, reg, bias); in adis16480_set_calibbias()
363 return -EINVAL; in adis16480_set_calibbias()
369 unsigned int reg = adis16480_calibbias_regs[chan->scan_index]; in adis16480_get_calibbias()
375 switch (chan->type) { in adis16480_get_calibbias()
378 ret = adis_read_reg_16(&st->adis, reg, &val16); in adis16480_get_calibbias()
384 ret = adis_read_reg_32(&st->adis, reg, &val32); in adis16480_get_calibbias()
389 ret = -EINVAL; in adis16480_get_calibbias()
401 unsigned int reg = adis16480_calibscale_regs[chan->scan_index]; in adis16480_set_calibscale()
404 if (scale < -0x8000 || scale >= 0x8000) in adis16480_set_calibscale()
405 return -EINVAL; in adis16480_set_calibscale()
407 return adis_write_reg_16(&st->adis, reg, scale); in adis16480_set_calibscale()
413 unsigned int reg = adis16480_calibscale_regs[chan->scan_index]; in adis16480_get_calibscale()
418 ret = adis_read_reg_16(&st->adis, reg, &val16); in adis16480_get_calibscale()
453 reg = ad16480_filter_data[chan->scan_index][0]; in adis16480_get_filter_freq()
454 offset = ad16480_filter_data[chan->scan_index][1]; in adis16480_get_filter_freq()
457 ret = adis_read_reg_16(&st->adis, reg, &val); in adis16480_get_filter_freq()
474 unsigned int diff, best_diff; in adis16480_set_filter_freq() local
479 reg = ad16480_filter_data[chan->scan_index][0]; in adis16480_set_filter_freq()
480 offset = ad16480_filter_data[chan->scan_index][1]; in adis16480_set_filter_freq()
483 ret = adis_read_reg_16(&st->adis, reg, &val); in adis16480_set_filter_freq()
494 diff = adis16480_def_filter_freqs[i] - freq; in adis16480_set_filter_freq()
495 if (diff < best_diff) { in adis16480_set_filter_freq()
496 best_diff = diff; in adis16480_set_filter_freq()
507 return adis_write_reg_16(&st->adis, reg, val); in adis16480_set_filter_freq()
519 switch (chan->type) { in adis16480_read_raw()
521 *val = st->chip_info->gyro_max_scale; in adis16480_read_raw()
522 *val2 = st->chip_info->gyro_max_val; in adis16480_read_raw()
525 *val = st->chip_info->accel_max_scale; in adis16480_read_raw()
526 *val2 = st->chip_info->accel_max_val; in adis16480_read_raw()
541 return -EINVAL; in adis16480_read_raw()
556 return -EINVAL; in adis16480_read_raw()
574 return -EINVAL; in adis16480_write_raw()
690 .channels = adis16485_channels,
703 .channels = adis16480_channels,
711 .channels = adis16485_channels,
719 .channels = adis16480_channels,
740 ret = adis_write_reg_16(&st->adis, ADIS16480_REG_SLP_CNT, BIT(9)); in adis16480_stop_device()
742 dev_err(&indio_dev->dev, in adis16480_stop_device()
761 adis_reset(&st->adis); in adis16480_initial_setup()
764 ret = adis_write_reg_16(&st->adis, ADIS16480_REG_GLOB_CMD, BIT(1)); in adis16480_initial_setup()
769 ret = adis_check_status(&st->adis); in adis16480_initial_setup()
773 ret = adis_read_reg_16(&st->adis, ADIS16480_REG_PROD_ID, &prod_id); in adis16480_initial_setup()
777 ret = sscanf(indio_dev->name, "adis%u\n", &device_id); in adis16480_initial_setup()
779 return -EINVAL; in adis16480_initial_setup()
782 dev_warn(&indio_dev->dev, "Device ID(%u) and product ID(%u) do not match.", in adis16480_initial_setup()
800 [ADIS16480_DIAG_STAT_XGYRO_FAIL] = "X-axis gyroscope self-test failure",
801 [ADIS16480_DIAG_STAT_YGYRO_FAIL] = "Y-axis gyroscope self-test failure",
802 [ADIS16480_DIAG_STAT_ZGYRO_FAIL] = "Z-axis gyroscope self-test failure",
803 [ADIS16480_DIAG_STAT_XACCL_FAIL] = "X-axis accelerometer self-test failure",
804 [ADIS16480_DIAG_STAT_YACCL_FAIL] = "Y-axis accelerometer self-test failure",
805 [ADIS16480_DIAG_STAT_ZACCL_FAIL] = "Z-axis accelerometer self-test failure",
806 [ADIS16480_DIAG_STAT_XMAGN_FAIL] = "X-axis magnetometer self-test failure",
807 [ADIS16480_DIAG_STAT_YMAGN_FAIL] = "Y-axis magnetometer self-test failure",
808 [ADIS16480_DIAG_STAT_ZMAGN_FAIL] = "Z-axis magnetometer self-test failure",
809 [ADIS16480_DIAG_STAT_BARO_FAIL] = "Barometer self-test failure",
842 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); in adis16480_probe()
844 return -ENOMEM; in adis16480_probe()
850 st->chip_info = &adis16480_chip_info[id->driver_data]; in adis16480_probe()
851 indio_dev->dev.parent = &spi->dev; in adis16480_probe()
852 indio_dev->name = spi_get_device_id(spi)->name; in adis16480_probe()
853 indio_dev->channels = st->chip_info->channels; in adis16480_probe()
854 indio_dev->num_channels = st->chip_info->num_channels; in adis16480_probe()
855 indio_dev->info = &adis16480_info; in adis16480_probe()
856 indio_dev->modes = INDIO_DIRECT_MODE; in adis16480_probe()
858 ret = adis_init(&st->adis, indio_dev, spi, &adis16480_data); in adis16480_probe()
862 ret = adis_setup_buffer_and_trigger(&st->adis, indio_dev, NULL); in adis16480_probe()
881 adis_cleanup_buffer_and_trigger(&st->adis, indio_dev); in adis16480_probe()
893 adis_cleanup_buffer_and_trigger(&st->adis, indio_dev); in adis16480_remove()
917 MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");