|
@@ -415,6 +415,7 @@ static int adis16400_initial_setup(struct iio_dev *indio_dev)
|
|
|
{
|
|
|
int ret;
|
|
|
u16 prod_id, smp_prd;
|
|
|
+ unsigned int device_id;
|
|
|
struct adis16400_state *st = iio_priv(indio_dev);
|
|
|
|
|
|
/* use low spi speed for init if the device has a slow mode */
|
|
@@ -454,8 +455,11 @@ static int adis16400_initial_setup(struct iio_dev *indio_dev)
|
|
|
if (ret)
|
|
|
goto err_ret;
|
|
|
|
|
|
- if ((prod_id & 0xF000) != st->variant->product_id)
|
|
|
- dev_warn(&indio_dev->dev, "incorrect id");
|
|
|
+ sscanf(indio_dev->name, "adis%u\n", &device_id);
|
|
|
+
|
|
|
+ if (prod_id != device_id)
|
|
|
+ dev_warn(&indio_dev->dev, "Device ID(%u) and product ID(%u) do not match.",
|
|
|
+ device_id, prod_id);
|
|
|
|
|
|
dev_info(&indio_dev->dev, "%s: prod_id 0x%04x at CS%d (irq %d)\n",
|
|
|
indio_dev->name, prod_id,
|
|
@@ -1149,7 +1153,6 @@ static struct adis16400_chip_info adis16400_chips[] = {
|
|
|
.channels = adis16350_channels,
|
|
|
.num_channels = ARRAY_SIZE(adis16350_channels),
|
|
|
.flags = ADIS16400_HAS_PROD_ID | ADIS16400_HAS_SLOW_MODE,
|
|
|
- .product_id = 0x3FE8,
|
|
|
.gyro_scale_micro = IIO_DEGREE_TO_RAD(50000), /* 0.05 deg/s */
|
|
|
.accel_scale_micro = IIO_G_TO_M_S_2(3333), /* 3.333 mg */
|
|
|
.temp_scale_nano = 136000000, /* 0.136 C */
|
|
@@ -1162,7 +1165,6 @@ static struct adis16400_chip_info adis16400_chips[] = {
|
|
|
.channels = adis16350_channels,
|
|
|
.num_channels = ARRAY_SIZE(adis16350_channels),
|
|
|
.flags = ADIS16400_HAS_PROD_ID | ADIS16400_HAS_SLOW_MODE,
|
|
|
- .product_id = 0x3FEA,
|
|
|
.gyro_scale_micro = IIO_DEGREE_TO_RAD(50000), /* 0.05 deg/s */
|
|
|
.accel_scale_micro = IIO_G_TO_M_S_2(333), /* 0.333 mg */
|
|
|
.temp_scale_nano = 136000000, /* 0.136 C */
|
|
@@ -1175,7 +1177,6 @@ static struct adis16400_chip_info adis16400_chips[] = {
|
|
|
.channels = adis16350_channels,
|
|
|
.num_channels = ARRAY_SIZE(adis16350_channels),
|
|
|
.flags = ADIS16400_HAS_PROD_ID | ADIS16400_HAS_SLOW_MODE,
|
|
|
- .product_id = 0x3FEC,
|
|
|
.gyro_scale_micro = IIO_DEGREE_TO_RAD(50000), /* 0.05 deg/s */
|
|
|
.accel_scale_micro = IIO_G_TO_M_S_2(1000), /* 1 mg */
|
|
|
.temp_scale_nano = 136000000, /* 0.136 C */
|
|
@@ -1188,7 +1189,6 @@ static struct adis16400_chip_info adis16400_chips[] = {
|
|
|
.channels = adis16350_channels,
|
|
|
.num_channels = ARRAY_SIZE(adis16350_channels),
|
|
|
.flags = ADIS16400_HAS_PROD_ID | ADIS16400_HAS_SLOW_MODE,
|
|
|
- .product_id = 0x3FED,
|
|
|
.gyro_scale_micro = IIO_DEGREE_TO_RAD(50000), /* 0.05 deg/s */
|
|
|
.accel_scale_micro = IIO_G_TO_M_S_2(1000), /* 1 mg */
|
|
|
.temp_scale_nano = 136000000, /* 0.136 C */
|
|
@@ -1201,7 +1201,6 @@ static struct adis16400_chip_info adis16400_chips[] = {
|
|
|
.channels = adis16400_channels,
|
|
|
.num_channels = ARRAY_SIZE(adis16400_channels),
|
|
|
.flags = ADIS16400_HAS_PROD_ID | ADIS16400_HAS_SLOW_MODE,
|
|
|
- .product_id = 0x4015,
|
|
|
.gyro_scale_micro = IIO_DEGREE_TO_RAD(50000), /* 0.05 deg/s */
|
|
|
.accel_scale_micro = IIO_G_TO_M_S_2(3333), /* 3.333 mg */
|
|
|
.default_scan_mask = 0xFFF,
|