|
102 | 102 | #define AD7795_CH_AIN1M_AIN1M 8 /* AIN1(-) - AIN1(-) */
|
103 | 103 |
|
104 | 104 | /* ID Register Bit Designations (AD7793_REG_ID) */
|
| 105 | +#define AD7785_ID 0xB |
105 | 106 | #define AD7792_ID 0xA
|
106 | 107 | #define AD7793_ID 0xB
|
| 108 | +#define AD7794_ID 0xF |
107 | 109 | #define AD7795_ID 0xF
|
108 | 110 | #define AD7793_ID_MASK 0xF
|
109 | 111 |
|
|
130 | 132 | */
|
131 | 133 |
|
132 | 134 | struct ad7793_chip_info {
|
| 135 | + unsigned int id; |
133 | 136 | const struct iio_chan_spec *channels;
|
134 | 137 | unsigned int num_channels;
|
135 | 138 | };
|
@@ -231,7 +234,7 @@ static int ad7793_setup(struct iio_dev *indio_dev,
|
231 | 234 |
|
232 | 235 | id &= AD7793_ID_MASK;
|
233 | 236 |
|
234 |
| - if (!((id == AD7792_ID) || (id == AD7793_ID) || (id == AD7795_ID))) { |
| 237 | + if (id != st->chip_info->id) { |
235 | 238 | dev_err(&st->sd.spi->dev, "device ID query failed\n");
|
236 | 239 | goto out;
|
237 | 240 | }
|
@@ -531,22 +534,27 @@ static DECLARE_AD7795_CHANNELS(ad7795, 24, 32);
|
531 | 534 |
|
532 | 535 | static const struct ad7793_chip_info ad7793_chip_info_tbl[] = {
|
533 | 536 | [ID_AD7785] = {
|
| 537 | + .id = AD7785_ID, |
534 | 538 | .channels = ad7785_channels,
|
535 | 539 | .num_channels = ARRAY_SIZE(ad7785_channels),
|
536 | 540 | },
|
537 | 541 | [ID_AD7792] = {
|
| 542 | + .id = AD7792_ID, |
538 | 543 | .channels = ad7792_channels,
|
539 | 544 | .num_channels = ARRAY_SIZE(ad7792_channels),
|
540 | 545 | },
|
541 | 546 | [ID_AD7793] = {
|
| 547 | + .id = AD7793_ID, |
542 | 548 | .channels = ad7793_channels,
|
543 | 549 | .num_channels = ARRAY_SIZE(ad7793_channels),
|
544 | 550 | },
|
545 | 551 | [ID_AD7794] = {
|
| 552 | + .id = AD7794_ID, |
546 | 553 | .channels = ad7794_channels,
|
547 | 554 | .num_channels = ARRAY_SIZE(ad7794_channels),
|
548 | 555 | },
|
549 | 556 | [ID_AD7795] = {
|
| 557 | + .id = AD7795_ID, |
550 | 558 | .channels = ad7795_channels,
|
551 | 559 | .num_channels = ARRAY_SIZE(ad7795_channels),
|
552 | 560 | },
|
|
0 commit comments