summaryrefslogtreecommitdiff
path: root/drivers/staging/iio
diff options
context:
space:
mode:
authorMichael Hennerich <michael.hennerich@analog.com>2010-11-19 15:16:45 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2010-11-19 17:13:38 -0800
commitece30c15921f94c1d58c494507f528c9482db409 (patch)
tree844d5e63b58fe6758076785282745f7ad8ea1718 /drivers/staging/iio
parentdf9cd1052079e5d0f88ed230276a17a49cc41045 (diff)
staging: iio: dac: Use spi_device_id
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Acked-by: Jonathan Cameron <jic23@cam.ac.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/iio')
-rw-r--r--drivers/staging/iio/dac/ad5624r_spi.c25
1 files changed, 9 insertions, 16 deletions
diff --git a/drivers/staging/iio/dac/ad5624r_spi.c b/drivers/staging/iio/dac/ad5624r_spi.c
index 17588b4b055d..b7c1661f6872 100644
--- a/drivers/staging/iio/dac/ad5624r_spi.c
+++ b/drivers/staging/iio/dac/ad5624r_spi.c
@@ -209,13 +209,8 @@ static const struct attribute_group ad5624r_attribute_group = {
static int __devinit ad5624r_probe(struct spi_device *spi)
{
-
struct ad5624r_state *st;
int ret = 0;
- char *chip_name = spi->dev.platform_data;
-
- if (!chip_name)
- return -ENODEV;
st = kzalloc(sizeof(*st), GFP_KERNEL);
if (st == NULL) {
@@ -224,17 +219,7 @@ static int __devinit ad5624r_probe(struct spi_device *spi)
}
spi_set_drvdata(spi, st);
- if (strcmp(chip_name, "ad5624r") == 0)
- st->data_len = 12;
- else if (strcmp(chip_name, "ad5644r") == 0)
- st->data_len = 14;
- else if (strcmp(chip_name, "ad5664r") == 0)
- st->data_len = 16;
- else {
- dev_err(&spi->dev, "not supported chip type\n");
- ret = -EINVAL;
- goto error_ret;
- }
+ st->data_len = spi_get_device_id(spi)->driver_data;
st->us = spi;
st->indio_dev = iio_allocate_device();
@@ -278,6 +263,13 @@ static int __devexit ad5624r_remove(struct spi_device *spi)
return 0;
}
+static const struct spi_device_id ad5624r_id[] = {
+ {"ad5624r", 12},
+ {"ad5644r", 14},
+ {"ad5664r", 16},
+ {}
+};
+
static struct spi_driver ad5624r_driver = {
.driver = {
.name = "ad5624r",
@@ -285,6 +277,7 @@ static struct spi_driver ad5624r_driver = {
},
.probe = ad5624r_probe,
.remove = __devexit_p(ad5624r_remove),
+ .id_table = ad5624r_id,
};
static __init int ad5624r_spi_init(void)