staging:iio:dac:ad5446: Do not check for individual chip ids in probe
authorLars-Peter Clausen <lars@metafoo.de>
Wed, 25 Apr 2012 07:44:56 +0000 (09:44 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 25 Apr 2012 17:57:20 +0000 (10:57 -0700)
Use the chip_info's int_vref_mv field to decide whether a certain chip has a
internal reference or not. There is no need to check for individual chip ids.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/iio/dac/ad5446.c

index 2ce6b5be84e259750ca5619b0c6c5d570943577f..659d0834bb190a0d6c9b51ecd368977e9fd944dd 100644 (file)
@@ -344,22 +344,12 @@ static int __devinit ad5446_probe(struct spi_device *spi)
        indio_dev->channels = &st->chip_info->channel;
        indio_dev->num_channels = 1;
 
-       switch (spi_get_device_id(spi)->driver_data) {
-       case ID_AD5620_2500:
-       case ID_AD5620_1250:
-       case ID_AD5640_2500:
-       case ID_AD5640_1250:
-       case ID_AD5660_2500:
-       case ID_AD5660_1250:
+       if (st->chip_info->int_vref_mv)
                st->vref_mv = st->chip_info->int_vref_mv;
-               break;
-       default:
-               if (voltage_uv)
-                       st->vref_mv = voltage_uv / 1000;
-               else
-                       dev_warn(&spi->dev,
-                                "reference voltage unspecified\n");
-       }
+       else if (voltage_uv)
+               st->vref_mv = voltage_uv / 1000;
+       else
+               dev_warn(&spi->dev, "reference voltage unspecified\n");
 
        ret = iio_device_register(indio_dev);
        if (ret)