Lines Matching +full:sync +full:- +full:2
1 // SPDX-License-Identifier: GPL-2.0
48 #define ADIS16475_FILT_CTRL_MASK GENMASK(2, 0)
54 #define ADIS16475_SYNC_MODE_MASK GENMASK(4, 2)
88 #define ADIS16575_WM_EN_MASK BIT(2)
113 const struct adis16475_sync *sync; member
118 #define ADIS16475_HAS_TIMESTAMP32 BIT(2)
171 struct adis16475 *st = file->private_data; in adis16475_show_firmware_revision()
177 ret = adis_read_reg_16(&st->adis, ADIS16475_REG_FIRM_REV, &rev); in adis16475_show_firmware_revision()
197 struct adis16475 *st = file->private_data; in adis16475_show_firmware_date()
203 ret = adis_read_reg_16(&st->adis, ADIS16475_REG_FIRM_Y, &year); in adis16475_show_firmware_date()
207 ret = adis_read_reg_16(&st->adis, ADIS16475_REG_FIRM_DM, &md); in adis16475_show_firmware_date()
211 len = snprintf(buf, sizeof(buf), "%.2x-%.2x-%.4x\n", md >> 8, md & 0xff, in adis16475_show_firmware_date()
230 ret = adis_read_reg_16(&st->adis, ADIS16475_REG_SERIAL_NUM, &serial); in adis16475_show_serial_number()
247 ret = adis_read_reg_16(&st->adis, ADIS16475_REG_PROD_ID, &prod_id); in adis16475_show_product_id()
264 ret = adis_read_reg_32(&st->adis, ADIS16475_REG_FLASH_CNT, in adis16475_show_flash_count()
300 u32 sample_rate = st->clk_freq; in adis16475_get_freq()
302 adis_dev_auto_lock(&st->adis); in adis16475_get_freq()
304 if (st->sync_mode == ADIS16475_SYNC_SCALED) { in adis16475_get_freq()
307 ret = __adis_read_reg_16(&st->adis, ADIS16475_REG_UP_SCALE, &sync_scale); in adis16475_get_freq()
311 sample_rate = st->clk_freq * sync_scale; in adis16475_get_freq()
314 ret = __adis_read_reg_16(&st->adis, ADIS16475_REG_DEC_RATE, &dec); in adis16475_get_freq()
327 u32 sample_rate = st->clk_freq; in adis16475_set_freq()
328 /* The optimal sample rate for the supported IMUs is between int_clk - 100 and int_clk + 100. */ in adis16475_set_freq()
329 u32 max_sample_rate = st->info->int_clk * 1000 + 100000; in adis16475_set_freq()
330 u32 min_sample_rate = st->info->int_clk * 1000 - 100000; in adis16475_set_freq()
333 return -EINVAL; in adis16475_set_freq()
335 adis_dev_auto_lock(&st->adis); in adis16475_set_freq()
337 * When using sync scaled mode, the input clock needs to be scaled so that we have in adis16475_set_freq()
338 * an IMU sample rate between (optimally) int_clk - 100 and int_clk + 100. in adis16475_set_freq()
345 * 2. get the highest multiple of the previous result lower than the adis max rate. in adis16475_set_freq()
349 if (st->sync_mode == ADIS16475_SYNC_SCALED) { in adis16475_set_freq()
350 unsigned long scaled_rate = lcm(st->clk_freq, freq); in adis16475_set_freq()
359 scaled_rate = max_sample_rate / st->clk_freq * st->clk_freq; in adis16475_set_freq()
375 scaled_rate = roundup(min_sample_rate, st->clk_freq); in adis16475_set_freq()
377 sync_scale = scaled_rate / st->clk_freq; in adis16475_set_freq()
378 ret = __adis_write_reg_16(&st->adis, ADIS16475_REG_UP_SCALE, sync_scale); in adis16475_set_freq()
388 dec--; in adis16475_set_freq()
390 if (dec > st->info->max_dec) in adis16475_set_freq()
391 dec = st->info->max_dec; in adis16475_set_freq()
393 ret = __adis_write_reg_16(&st->adis, ADIS16475_REG_DEC_RATE, dec); in adis16475_set_freq()
401 assign_bit(ADIS16475_LSB_DEC_MASK, &st->lsb_flag, dec); in adis16475_set_freq()
410 [2] = 164,
423 ret = adis_read_reg_16(&st->adis, ADIS16475_REG_FILT_CTRL, &filter_sz); in adis16475_get_filter()
437 while (--i) { in adis16475_set_filter()
442 ret = adis_write_reg_16(&st->adis, ADIS16475_REG_FILT_CTRL, in adis16475_set_filter()
451 assign_bit(ADIS16475_LSB_FIR_MASK, &st->lsb_flag, i); in adis16475_set_filter()
465 ret = adis_read_reg_16(&st->adis, ADIS16475_REG_FIFO_CTRL, &val); in adis16475_get_fifo_enabled()
481 ret = adis_read_reg_16(&st->adis, ADIS16475_REG_FIFO_CTRL, &val); in adis16475_get_fifo_watermark()
520 struct adis *adis = &st->adis; in adis16475_buffer_postenable()
529 struct adis *adis = &st->adis; in adis16475_buffer_postdisable()
532 adis_dev_auto_lock(&st->adis); in adis16475_buffer_postdisable()
554 adis_dev_auto_lock(&st->adis); in adis16475_set_watermark()
558 wm_lvl = ADIS16575_WM_LVL(val - 1); in adis16475_set_watermark()
559 ret = __adis_update_bits(&st->adis, ADIS16475_REG_FIFO_CTRL, ADIS16575_WM_LVL_MASK, wm_lvl); in adis16475_set_watermark()
563 st->fifo_watermark = val; in adis16475_set_watermark()
589 switch (chan->type) { in adis16475_read_raw()
591 *val = st->info->gyro_max_val; in adis16475_read_raw()
592 *val2 = st->info->gyro_max_scale; in adis16475_read_raw()
595 *val = st->info->accel_max_val; in adis16475_read_raw()
596 *val2 = st->info->accel_max_scale; in adis16475_read_raw()
599 *val = st->info->temp_scale; in adis16475_read_raw()
602 *val = st->info->deltang_max_val; in adis16475_read_raw()
606 *val = st->info->deltvel_max_val; in adis16475_read_raw()
610 return -EINVAL; in adis16475_read_raw()
613 ret = adis_read_reg_32(&st->adis, in adis16475_read_raw()
614 adis16475_calib_regs[chan->scan_index], in adis16475_read_raw()
635 return -EINVAL; in adis16475_read_raw()
653 return adis_write_reg_32(&st->adis, in adis16475_write_raw()
654 adis16475_calib_regs[chan->scan_index], in adis16475_write_raw()
657 return -EINVAL; in adis16475_write_raw()
737 ADIS16475_REG_ ## _mod ## _DELTANG_L, -1, 32, 32)
741 ADIS16475_REG_ ## _mod ## _DELTVEL_L, -1, 32, 32)
850 .self_test_mask = BIT(2), \
911 .sync = adis16475_sync_mode,
918 .name = "adis16475-1",
930 .sync = adis16475_sync_mode,
937 .name = "adis16475-2",
949 .sync = adis16475_sync_mode,
956 .name = "adis16475-3",
968 .sync = adis16475_sync_mode,
975 .name = "adis16477-1",
987 .sync = adis16475_sync_mode,
995 .name = "adis16477-2",
1007 .sync = adis16475_sync_mode,
1015 .name = "adis16477-3",
1027 .sync = adis16475_sync_mode,
1035 .name = "adis16465-1",
1047 .sync = adis16475_sync_mode,
1054 .name = "adis16465-2",
1066 .sync = adis16475_sync_mode,
1073 .name = "adis16465-3",
1085 .sync = adis16475_sync_mode,
1092 .name = "adis16467-1",
1104 .sync = adis16475_sync_mode,
1111 .name = "adis16467-2",
1123 .sync = adis16475_sync_mode,
1130 .name = "adis16467-3",
1142 .sync = adis16475_sync_mode,
1161 .sync = adis16475_sync_mode,
1162 /* pulse sync not supported */
1163 .num_sync = ARRAY_SIZE(adis16475_sync_mode) - 1,
1182 .sync = adis16475_sync_mode,
1183 /* pulse sync not supported */
1184 .num_sync = ARRAY_SIZE(adis16475_sync_mode) - 1,
1191 .name = "adis16505-1",
1203 .sync = adis16475_sync_mode,
1204 /* pulse sync not supported */
1205 .num_sync = ARRAY_SIZE(adis16475_sync_mode) - 1,
1212 .name = "adis16505-2",
1224 .sync = adis16475_sync_mode,
1225 /* pulse sync not supported */
1226 .num_sync = ARRAY_SIZE(adis16475_sync_mode) - 1,
1233 .name = "adis16505-3",
1245 .sync = adis16475_sync_mode,
1246 /* pulse sync not supported */
1247 .num_sync = ARRAY_SIZE(adis16475_sync_mode) - 1,
1254 .name = "adis16507-1",
1266 .sync = adis16475_sync_mode,
1267 /* pulse sync not supported */
1268 .num_sync = ARRAY_SIZE(adis16475_sync_mode) - 1,
1275 .name = "adis16507-2",
1287 .sync = adis16475_sync_mode,
1288 /* pulse sync not supported */
1289 .num_sync = ARRAY_SIZE(adis16475_sync_mode) - 1,
1296 .name = "adis16507-3",
1308 .sync = adis16475_sync_mode,
1309 /* pulse sync not supported */
1310 .num_sync = ARRAY_SIZE(adis16475_sync_mode) - 1,
1317 .name = "adis16575-2",
1329 .sync = adis16575_sync_mode,
1340 .name = "adis16575-3",
1352 .sync = adis16575_sync_mode,
1363 .name = "adis16576-2",
1375 .sync = adis16575_sync_mode,
1386 .name = "adis16576-3",
1398 .sync = adis16575_sync_mode,
1409 .name = "adis16577-2",
1421 .sync = adis16575_sync_mode,
1432 .name = "adis16577-3",
1444 .sync = adis16575_sync_mode,
1463 if (st->info->flags & ADIS16475_HAS_BURST_DELTA_DATA) { in adis16475_update_scan_mode()
1466 return -EINVAL; in adis16475_update_scan_mode()
1472 ret = __adis_update_bits(&st->adis, ADIS16475_REG_MSG_CTRL, in adis16475_update_scan_mode()
1501 for (i = start_idx; i < burst_size - 2; i++) in adis16475_validate_crc()
1502 crc -= buffer[i]; in adis16475_validate_crc()
1510 struct adis *adis = &st->adis; in adis16475_burst32_check()
1513 if (!(st->info->flags & ADIS16475_HAS_BURST32)) in adis16475_burst32_check()
1516 if (st->info->flags & ADIS16475_HAS_TIMESTAMP32) in adis16475_burst32_check()
1519 if (st->lsb_flag && !st->burst32) { in adis16475_burst32_check()
1522 ret = __adis_update_bits(&st->adis, ADIS16475_REG_MSG_CTRL, in adis16475_burst32_check()
1527 st->burst32 = true; in adis16475_burst32_check()
1530 * In 32-bit mode we need extra 2 bytes for all gyro in adis16475_burst32_check()
1532 * If the device has 32-bit timestamp value we need 2 extra in adis16475_burst32_check()
1535 adis->burst_extra_len = (6 + timestamp32) * sizeof(u16); in adis16475_burst32_check()
1536 adis->xfer[1].len += (6 + timestamp32) * sizeof(u16); in adis16475_burst32_check()
1538 dev_dbg(&adis->spi->dev, "Enable burst32 mode, xfer:%d", in adis16475_burst32_check()
1539 adis->xfer[1].len); in adis16475_burst32_check()
1541 } else if (!st->lsb_flag && st->burst32) { in adis16475_burst32_check()
1544 ret = __adis_update_bits(&st->adis, ADIS16475_REG_MSG_CTRL, in adis16475_burst32_check()
1549 st->burst32 = false; in adis16475_burst32_check()
1552 adis->burst_extra_len = 0; in adis16475_burst32_check()
1553 adis->xfer[1].len -= (6 + timestamp32) * sizeof(u16); in adis16475_burst32_check()
1554 dev_dbg(&adis->spi->dev, "Disable burst32 mode, xfer:%d\n", in adis16475_burst32_check()
1555 adis->xfer[1].len); in adis16475_burst32_check()
1561 struct iio_dev *indio_dev = pf->indio_dev; in adis16475_push_single_sample()
1563 struct adis *adis = &st->adis; in adis16475_push_single_sample()
1570 u16 start_idx = (st->info->flags & ADIS16475_HAS_TIMESTAMP32) ? 2 : 0; in adis16475_push_single_sample()
1573 const u8 offset = st->burst32 ? 13 : 7; in adis16475_push_single_sample()
1575 if (st->burst32) { in adis16475_push_single_sample()
1576 crc_offset = (st->info->flags & ADIS16475_HAS_TIMESTAMP32) ? 16 : 15; in adis16475_push_single_sample()
1577 burst_size = adis->data->burst_max_len; in adis16475_push_single_sample()
1580 ret = spi_sync(adis->spi, &adis->msg); in adis16475_push_single_sample()
1584 buffer = adis->buffer; in adis16475_push_single_sample()
1587 valid = adis16475_validate_crc(adis->buffer, crc, burst_size, start_idx); in adis16475_push_single_sample()
1589 dev_err(&adis->spi->dev, "Invalid crc\n"); in adis16475_push_single_sample()
1590 return -EINVAL; in adis16475_push_single_sample()
1600 st->data[i++] = buffer[offset]; in adis16475_push_single_sample()
1602 * The temperature channel has 16-bit storage size. in adis16475_push_single_sample()
1605 * 32-bit storage size channels enabled which have a in adis16475_push_single_sample()
1609 if (*indio_dev->active_scan_mask & GENMASK(ADIS16475_SCAN_DELTVEL_Z, ADIS16475_SCAN_DELTANG_X)) in adis16475_push_single_sample()
1610 st->data[i++] = 0; in adis16475_push_single_sample()
1617 * The first 2 bytes on the received data are the in adis16475_push_single_sample()
1620 if (st->burst32) { in adis16475_push_single_sample()
1622 st->data[i++] = buffer[(bit - buff_offset) * 2 + 2]; in adis16475_push_single_sample()
1624 st->data[i++] = buffer[(bit - buff_offset) * 2 + 1]; in adis16475_push_single_sample()
1626 st->data[i++] = buffer[(bit - buff_offset) + 1]; in adis16475_push_single_sample()
1633 if (st->lsb_flag && !(st->info->flags & ADIS16475_HAS_BURST32)) { in adis16475_push_single_sample()
1639 st->data[i++] = cpu_to_be16(val); in adis16475_push_single_sample()
1642 st->data[i++] = 0; in adis16475_push_single_sample()
1650 iio_push_to_buffers_with_timestamp(indio_dev, st->data, pf->timestamp); in adis16475_push_single_sample()
1658 struct iio_dev *indio_dev = pf->indio_dev; in adis16475_trigger_handler()
1669 iio_trigger_notify_done(indio_dev->trig); in adis16475_trigger_handler()
1683 if (adis->data->burst_max_len) in adis16575_update_msg_for_burst()
1684 burst_max_length = adis->data->burst_max_len; in adis16575_update_msg_for_burst()
1686 burst_max_length = adis->data->burst_len + adis->burst_extra_len; in adis16575_update_msg_for_burst()
1688 tx = adis->buffer + burst_max_length; in adis16575_update_msg_for_burst()
1694 struct iio_dev *indio_dev = pf->indio_dev; in adis16575_custom_burst_read()
1696 struct adis *adis = &st->adis; in adis16575_custom_burst_read()
1701 return spi_sync(adis->spi, &adis->msg); in adis16575_custom_burst_read()
1713 * with the (n-1)th consecutive burst request.
1723 struct iio_dev *indio_dev = pf->indio_dev; in adis16475_trigger_handler_with_fifo()
1725 struct adis *adis = &st->adis; in adis16475_trigger_handler_with_fifo()
1729 adis_dev_auto_lock(&st->adis); in adis16475_trigger_handler_with_fifo()
1743 * First burst request - FIFO pop: popped data will be returned in the in adis16475_trigger_handler_with_fifo()
1746 ret = adis16575_custom_burst_read(pf, adis->data->burst_reg_cmd); in adis16475_trigger_handler_with_fifo()
1750 for (i = 0; i < fifo_cnt - 1; i++) { in adis16475_trigger_handler_with_fifo()
1765 iio_trigger_notify_done(indio_dev->trig); in adis16475_trigger_handler_with_fifo()
1773 struct device *dev = &st->adis.spi->dev; in adis16475_config_sync_mode()
1774 const struct adis16475_sync *sync; in adis16475_config_sync_mode() local
1776 u16 max_sample_rate = st->info->int_clk + 100; in adis16475_config_sync_mode()
1780 if (st->info->int_clk == 4000) { in adis16475_config_sync_mode()
1781 ret = __adis_update_bits(&st->adis, ADIS16475_REG_MSG_CTRL, in adis16475_config_sync_mode()
1789 st->clk_freq = st->info->int_clk * 1000; in adis16475_config_sync_mode()
1791 ret = device_property_read_u32(dev, "adi,sync-mode", &sync_mode); in adis16475_config_sync_mode()
1795 if (sync_mode >= st->info->num_sync) { in adis16475_config_sync_mode()
1796 dev_err(dev, "Invalid sync mode: %u for %s\n", sync_mode, in adis16475_config_sync_mode()
1797 st->info->name); in adis16475_config_sync_mode()
1798 return -EINVAL; in adis16475_config_sync_mode()
1801 sync = &st->info->sync[sync_mode]; in adis16475_config_sync_mode()
1802 st->sync_mode = sync->sync_mode; in adis16475_config_sync_mode()
1805 if (sync->sync_mode != ADIS16475_SYNC_OUTPUT) { in adis16475_config_sync_mode()
1811 st->clk_freq = clk_get_rate(clk); in adis16475_config_sync_mode()
1812 if (st->clk_freq < sync->min_rate || in adis16475_config_sync_mode()
1813 st->clk_freq > sync->max_rate) { in adis16475_config_sync_mode()
1816 st->clk_freq, sync->min_rate, sync->max_rate); in adis16475_config_sync_mode()
1817 return -EINVAL; in adis16475_config_sync_mode()
1820 if (sync->sync_mode == ADIS16475_SYNC_SCALED) { in adis16475_config_sync_mode()
1824 * In sync scaled mode, the IMU sample rate is the clk_freq * sync_scale. in adis16475_config_sync_mode()
1828 up_scale = max_sample_rate / st->clk_freq; in adis16475_config_sync_mode()
1830 ret = __adis_write_reg_16(&st->adis, in adis16475_config_sync_mode()
1837 st->clk_freq *= 1000; in adis16475_config_sync_mode()
1847 val = ADIS16475_SYNC_MODE(sync->sync_mode); in adis16475_config_sync_mode()
1848 ret = __adis_update_bits(&st->adis, ADIS16475_REG_MSG_CTRL, in adis16475_config_sync_mode()
1864 struct spi_device *spi = st->adis.spi; in adis16475_config_irq_pin()
1866 irq_type = irq_get_trigger_type(spi->irq); in adis16475_config_irq_pin()
1868 if (st->adis.data->has_fifo) { in adis16475_config_irq_pin()
1876 st->adis.irq_flag = IRQF_TRIGGER_HIGH; in adis16475_config_irq_pin()
1879 st->adis.irq_flag = IRQF_TRIGGER_LOW; in adis16475_config_irq_pin()
1881 dev_err(&spi->dev, "Invalid interrupt type 0x%x specified\n", in adis16475_config_irq_pin()
1883 return -EINVAL; in adis16475_config_irq_pin()
1888 ret = adis_update_bits(&st->adis, ADIS16475_REG_FIFO_CTRL, in adis16475_config_irq_pin()
1894 ret = adis_update_bits(&st->adis, ADIS16475_REG_FIFO_CTRL, in adis16475_config_irq_pin()
1907 st->adis.irq_flag = IRQF_TRIGGER_RISING; in adis16475_config_irq_pin()
1910 st->adis.irq_flag = IRQF_TRIGGER_FALLING; in adis16475_config_irq_pin()
1912 dev_err(&spi->dev, "Invalid interrupt type 0x%x specified\n", in adis16475_config_irq_pin()
1914 return -EINVAL; in adis16475_config_irq_pin()
1918 ret = __adis_update_bits(&st->adis, ADIS16475_REG_MSG_CTRL, in adis16475_config_irq_pin()
1941 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); in adis16475_probe()
1943 return -ENOMEM; in adis16475_probe()
1947 st->info = spi_get_device_match_data(spi); in adis16475_probe()
1948 if (!st->info) in adis16475_probe()
1949 return -EINVAL; in adis16475_probe()
1951 ret = adis_init(&st->adis, indio_dev, spi, &st->info->adis_data); in adis16475_probe()
1955 indio_dev->name = st->info->name; in adis16475_probe()
1956 indio_dev->channels = st->info->channels; in adis16475_probe()
1957 indio_dev->num_channels = st->info->num_channels; in adis16475_probe()
1958 if (st->adis.data->has_fifo) in adis16475_probe()
1959 indio_dev->info = &adis16575_info; in adis16475_probe()
1961 indio_dev->info = &adis16475_info; in adis16475_probe()
1962 indio_dev->modes = INDIO_DIRECT_MODE; in adis16475_probe()
1964 ret = __adis_initial_startup(&st->adis); in adis16475_probe()
1976 if (st->adis.data->has_fifo) { in adis16475_probe()
1977 ret = devm_adis_setup_buffer_and_trigger_with_attrs(&st->adis, indio_dev, in adis16475_probe()
1986 ret = adis_update_bits(&st->adis, ADIS16475_REG_FIFO_CTRL, in adis16475_probe()
1991 ret = devm_adis_setup_buffer_and_trigger(&st->adis, indio_dev, in adis16475_probe()
1997 ret = devm_iio_device_register(&spi->dev, indio_dev); in adis16475_probe()
2009 { .compatible = "adi,adis16475-1",
2011 { .compatible = "adi,adis16475-2",
2013 { .compatible = "adi,adis16475-3",
2015 { .compatible = "adi,adis16477-1",
2017 { .compatible = "adi,adis16477-2",
2019 { .compatible = "adi,adis16477-3",
2021 { .compatible = "adi,adis16465-1",
2023 { .compatible = "adi,adis16465-2",
2025 { .compatible = "adi,adis16465-3",
2027 { .compatible = "adi,adis16467-1",
2029 { .compatible = "adi,adis16467-2",
2031 { .compatible = "adi,adis16467-3",
2037 { .compatible = "adi,adis16505-1",
2039 { .compatible = "adi,adis16505-2",
2041 { .compatible = "adi,adis16505-3",
2043 { .compatible = "adi,adis16507-1",
2045 { .compatible = "adi,adis16507-2",
2047 { .compatible = "adi,adis16507-3",
2049 { .compatible = "adi,adis16575-2",
2051 { .compatible = "adi,adis16575-3",
2053 { .compatible = "adi,adis16576-2",
2055 { .compatible = "adi,adis16576-3",
2057 { .compatible = "adi,adis16577-2",
2059 { .compatible = "adi,adis16577-3",
2067 { "adis16475-1", (kernel_ulong_t)&adis16475_chip_info[ADIS16475_1] },
2068 { "adis16475-2", (kernel_ulong_t)&adis16475_chip_info[ADIS16475_2] },
2069 { "adis16475-3", (kernel_ulong_t)&adis16475_chip_info[ADIS16475_3] },
2070 { "adis16477-1", (kernel_ulong_t)&adis16475_chip_info[ADIS16477_1] },
2071 { "adis16477-2", (kernel_ulong_t)&adis16475_chip_info[ADIS16477_2] },
2072 { "adis16477-3", (kernel_ulong_t)&adis16475_chip_info[ADIS16477_3] },
2073 { "adis16465-1", (kernel_ulong_t)&adis16475_chip_info[ADIS16465_1] },
2074 { "adis16465-2", (kernel_ulong_t)&adis16475_chip_info[ADIS16465_2] },
2075 { "adis16465-3", (kernel_ulong_t)&adis16475_chip_info[ADIS16465_3] },
2076 { "adis16467-1", (kernel_ulong_t)&adis16475_chip_info[ADIS16467_1] },
2077 { "adis16467-2", (kernel_ulong_t)&adis16475_chip_info[ADIS16467_2] },
2078 { "adis16467-3", (kernel_ulong_t)&adis16475_chip_info[ADIS16467_3] },
2081 { "adis16505-1", (kernel_ulong_t)&adis16475_chip_info[ADIS16505_1] },
2082 { "adis16505-2", (kernel_ulong_t)&adis16475_chip_info[ADIS16505_2] },
2083 { "adis16505-3", (kernel_ulong_t)&adis16475_chip_info[ADIS16505_3] },
2084 { "adis16507-1", (kernel_ulong_t)&adis16475_chip_info[ADIS16507_1] },
2085 { "adis16507-2", (kernel_ulong_t)&adis16475_chip_info[ADIS16507_2] },
2086 { "adis16507-3", (kernel_ulong_t)&adis16475_chip_info[ADIS16507_3] },
2087 { "adis16575-2", (kernel_ulong_t)&adis16475_chip_info[ADIS16575_2] },
2088 { "adis16575-3", (kernel_ulong_t)&adis16475_chip_info[ADIS16575_3] },
2089 { "adis16576-2", (kernel_ulong_t)&adis16475_chip_info[ADIS16576_2] },
2090 { "adis16576-3", (kernel_ulong_t)&adis16475_chip_info[ADIS16576_3] },
2091 { "adis16577-2", (kernel_ulong_t)&adis16475_chip_info[ADIS16577_2] },
2092 { "adis16577-3", (kernel_ulong_t)&adis16475_chip_info[ADIS16577_3] },