* [PATCH 2/3] staging: iio: dac: Use spi_write() and handle return value
2010-11-19 12:34 [PATCH 1/3] staging: iio: dac: Update drivers to use new attribute naming michael.hennerich
@ 2010-11-19 12:34 ` michael.hennerich
2010-11-19 14:11 ` Jonathan Cameron
2010-11-19 12:34 ` [PATCH 3/3] staging: iio: dac: Use spi_device_id michael.hennerich
2010-11-19 14:06 ` [PATCH 1/3] staging: iio: dac: Update drivers to use new attribute naming Jonathan Cameron
2 siblings, 1 reply; 6+ messages in thread
From: michael.hennerich @ 2010-11-19 12:34 UTC (permalink / raw)
To: jic23; +Cc: linux-iio, drivers, device-drivers-devel, Michael Hennerich
From: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
---
drivers/staging/iio/dac/ad5624r_spi.c | 23 +++++++----------------
1 files changed, 7 insertions(+), 16 deletions(-)
diff --git a/drivers/staging/iio/dac/ad5624r_spi.c b/drivers/staging/iio/dac/ad5624r_spi.c
index c0d7de9..17588b4 100644
--- a/drivers/staging/iio/dac/ad5624r_spi.c
+++ b/drivers/staging/iio/dac/ad5624r_spi.c
@@ -35,10 +35,9 @@ struct ad5624r_state {
int internal_ref;
};
-static int ad5624r_spi_write(struct spi_device *spi, u8 cmd, u8 addr, u16 val, u8 len)
+static int ad5624r_spi_write(struct spi_device *spi,
+ u8 cmd, u8 addr, u16 val, u8 len)
{
- struct spi_transfer t;
- struct spi_message m;
u32 data;
u8 msg[3];
@@ -54,15 +53,7 @@ static int ad5624r_spi_write(struct spi_device *spi, u8 cmd, u8 addr, u16 val, u
msg[1] = data >> 8;
msg[2] = data;
- spi_message_init(&m);
- memset(&t, 0, (sizeof t));
- t.tx_buf = &msg[0];
- t.len = 3;
-
- spi_message_add_tail(&t, &m);
- spi_sync(spi, &m);
-
- return len;
+ return spi_write(spi, msg, 3);
}
static ssize_t ad5624r_write_dac(struct device *dev,
@@ -80,7 +71,7 @@ static ssize_t ad5624r_write_dac(struct device *dev,
if (ret)
return ret;
- ad5624r_spi_write(st->us, AD5624R_CMD_WRITE_INPUT_N_UPDATE_N,
+ ret = ad5624r_spi_write(st->us, AD5624R_CMD_WRITE_INPUT_N_UPDATE_N,
this_attr->address, readin, st->data_len);
return ret ? ret : len;
}
@@ -109,7 +100,7 @@ static ssize_t ad5624r_write_ldac_mode(struct device *dev,
if (ret)
return ret;
- ad5624r_spi_write(st->us, AD5624R_CMD_LDAC_SETUP, 0, readin & 0xF, 16);
+ ret = ad5624r_spi_write(st->us, AD5624R_CMD_LDAC_SETUP, 0, readin & 0xF, 16);
st->ldac_mode = readin & 0xF;
return ret ? ret : len;
@@ -141,7 +132,7 @@ static ssize_t ad5624r_write_dac_power_mode(struct device *dev,
if (ret)
return ret;
- ad5624r_spi_write(st->us, AD5624R_CMD_POWERDOWN_DAC, 0,
+ ret = ad5624r_spi_write(st->us, AD5624R_CMD_POWERDOWN_DAC, 0,
((readin & 0x3) << 4) | (1 << this_attr->address), 16);
st->dac_power_mode[this_attr->address] = readin & 0x3;
@@ -173,7 +164,7 @@ static ssize_t ad5624r_write_internal_ref_mode(struct device *dev,
if (ret)
return ret;
- ad5624r_spi_write(st->us, AD5624R_CMD_INTERNAL_REFER_SETUP, 0, !!readin, 16);
+ ret = ad5624r_spi_write(st->us, AD5624R_CMD_INTERNAL_REFER_SETUP, 0, !!readin, 16);
st->internal_ref = !!readin;
--
1.6.0.2
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH 2/3] staging: iio: dac: Use spi_write() and handle return value
2010-11-19 12:34 ` [PATCH 2/3] staging: iio: dac: Use spi_write() and handle return value michael.hennerich
@ 2010-11-19 14:11 ` Jonathan Cameron
0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Cameron @ 2010-11-19 14:11 UTC (permalink / raw)
To: michael.hennerich; +Cc: linux-iio, drivers, device-drivers-devel
On 11/19/10 12:34, michael.hennerich@analog.com wrote:
> From: Michael Hennerich <michael.hennerich@analog.com>
>
>
> Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Acked-by: Jonathan Cameron <jic23@cam.ac.uk>
> ---
> drivers/staging/iio/dac/ad5624r_spi.c | 23 +++++++----------------
> 1 files changed, 7 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/staging/iio/dac/ad5624r_spi.c b/drivers/staging/iio/dac/ad5624r_spi.c
> index c0d7de9..17588b4 100644
> --- a/drivers/staging/iio/dac/ad5624r_spi.c
> +++ b/drivers/staging/iio/dac/ad5624r_spi.c
> @@ -35,10 +35,9 @@ struct ad5624r_state {
> int internal_ref;
> };
>
> -static int ad5624r_spi_write(struct spi_device *spi, u8 cmd, u8 addr, u16 val, u8 len)
> +static int ad5624r_spi_write(struct spi_device *spi,
> + u8 cmd, u8 addr, u16 val, u8 len)
> {
> - struct spi_transfer t;
> - struct spi_message m;
> u32 data;
> u8 msg[3];
>
> @@ -54,15 +53,7 @@ static int ad5624r_spi_write(struct spi_device *spi, u8 cmd, u8 addr, u16 val, u
> msg[1] = data >> 8;
> msg[2] = data;
>
> - spi_message_init(&m);
> - memset(&t, 0, (sizeof t));
> - t.tx_buf = &msg[0];
> - t.len = 3;
> -
> - spi_message_add_tail(&t, &m);
> - spi_sync(spi, &m);
> -
> - return len;
> + return spi_write(spi, msg, 3);
> }
>
> static ssize_t ad5624r_write_dac(struct device *dev,
> @@ -80,7 +71,7 @@ static ssize_t ad5624r_write_dac(struct device *dev,
> if (ret)
> return ret;
>
> - ad5624r_spi_write(st->us, AD5624R_CMD_WRITE_INPUT_N_UPDATE_N,
> + ret = ad5624r_spi_write(st->us, AD5624R_CMD_WRITE_INPUT_N_UPDATE_N,
> this_attr->address, readin, st->data_len);
> return ret ? ret : len;
> }
> @@ -109,7 +100,7 @@ static ssize_t ad5624r_write_ldac_mode(struct device *dev,
> if (ret)
> return ret;
>
> - ad5624r_spi_write(st->us, AD5624R_CMD_LDAC_SETUP, 0, readin & 0xF, 16);
> + ret = ad5624r_spi_write(st->us, AD5624R_CMD_LDAC_SETUP, 0, readin & 0xF, 16);
> st->ldac_mode = readin & 0xF;
>
> return ret ? ret : len;
> @@ -141,7 +132,7 @@ static ssize_t ad5624r_write_dac_power_mode(struct device *dev,
> if (ret)
> return ret;
>
> - ad5624r_spi_write(st->us, AD5624R_CMD_POWERDOWN_DAC, 0,
> + ret = ad5624r_spi_write(st->us, AD5624R_CMD_POWERDOWN_DAC, 0,
> ((readin & 0x3) << 4) | (1 << this_attr->address), 16);
>
> st->dac_power_mode[this_attr->address] = readin & 0x3;
> @@ -173,7 +164,7 @@ static ssize_t ad5624r_write_internal_ref_mode(struct device *dev,
> if (ret)
> return ret;
>
> - ad5624r_spi_write(st->us, AD5624R_CMD_INTERNAL_REFER_SETUP, 0, !!readin, 16);
> + ret = ad5624r_spi_write(st->us, AD5624R_CMD_INTERNAL_REFER_SETUP, 0, !!readin, 16);
>
> st->internal_ref = !!readin;
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 3/3] staging: iio: dac: Use spi_device_id
2010-11-19 12:34 [PATCH 1/3] staging: iio: dac: Update drivers to use new attribute naming michael.hennerich
2010-11-19 12:34 ` [PATCH 2/3] staging: iio: dac: Use spi_write() and handle return value michael.hennerich
@ 2010-11-19 12:34 ` michael.hennerich
2010-11-19 14:11 ` Jonathan Cameron
2010-11-19 14:06 ` [PATCH 1/3] staging: iio: dac: Update drivers to use new attribute naming Jonathan Cameron
2 siblings, 1 reply; 6+ messages in thread
From: michael.hennerich @ 2010-11-19 12:34 UTC (permalink / raw)
To: jic23; +Cc: linux-iio, drivers, device-drivers-devel, Michael Hennerich
From: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
---
drivers/staging/iio/dac/ad5624r_spi.c | 25 +++++++++----------------
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 17588b4..b7c1661 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)
--
1.6.0.2
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH 3/3] staging: iio: dac: Use spi_device_id
2010-11-19 12:34 ` [PATCH 3/3] staging: iio: dac: Use spi_device_id michael.hennerich
@ 2010-11-19 14:11 ` Jonathan Cameron
0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Cameron @ 2010-11-19 14:11 UTC (permalink / raw)
To: michael.hennerich; +Cc: linux-iio, drivers, device-drivers-devel
On 11/19/10 12:34, michael.hennerich@analog.com wrote:
> From: Michael Hennerich <michael.hennerich@analog.com>
>
>
Nice clean up.
> Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Acked-by: Jonathan Cameron <jic23@cam.ac.uk>
> ---
> drivers/staging/iio/dac/ad5624r_spi.c | 25 +++++++++----------------
> 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 17588b4..b7c1661 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)
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/3] staging: iio: dac: Update drivers to use new attribute naming
2010-11-19 12:34 [PATCH 1/3] staging: iio: dac: Update drivers to use new attribute naming michael.hennerich
2010-11-19 12:34 ` [PATCH 2/3] staging: iio: dac: Use spi_write() and handle return value michael.hennerich
2010-11-19 12:34 ` [PATCH 3/3] staging: iio: dac: Use spi_device_id michael.hennerich
@ 2010-11-19 14:06 ` Jonathan Cameron
2 siblings, 0 replies; 6+ messages in thread
From: Jonathan Cameron @ 2010-11-19 14:06 UTC (permalink / raw)
To: michael.hennerich; +Cc: linux-iio, drivers, device-drivers-devel
On 11/19/10 12:34, michael.hennerich@analog.com wrote:
> From: Michael Hennerich <michael.hennerich@analog.com>
>
> Remove depreciated macro from header
Might be slightly preferable to do this as two patches, one to move to the new
naming and a second to deprecate the header. Doesn't really matter though as there
is only the one user in tree.
>
> Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Acked-by: Jonathan Cameron <jic23@cam.ac.uk>
> ---
> drivers/staging/iio/dac/ad5624r_spi.c | 16 ++++++++--------
> drivers/staging/iio/dac/dac.h | 4 ----
> 2 files changed, 8 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/staging/iio/dac/ad5624r_spi.c b/drivers/staging/iio/dac/ad5624r_spi.c
> index 705ff50..c0d7de9 100644
> --- a/drivers/staging/iio/dac/ad5624r_spi.c
> +++ b/drivers/staging/iio/dac/ad5624r_spi.c
> @@ -180,10 +180,10 @@ static ssize_t ad5624r_write_internal_ref_mode(struct device *dev,
> return ret ? ret : len;
> }
>
> -static IIO_DEV_ATTR_DAC(0, ad5624r_write_dac, AD5624R_ADDR_DAC0);
> -static IIO_DEV_ATTR_DAC(1, ad5624r_write_dac, AD5624R_ADDR_DAC1);
> -static IIO_DEV_ATTR_DAC(2, ad5624r_write_dac, AD5624R_ADDR_DAC2);
> -static IIO_DEV_ATTR_DAC(3, ad5624r_write_dac, AD5624R_ADDR_DAC3);
> +static IIO_DEV_ATTR_OUT_RAW(0, ad5624r_write_dac, AD5624R_ADDR_DAC0);
> +static IIO_DEV_ATTR_OUT_RAW(1, ad5624r_write_dac, AD5624R_ADDR_DAC1);
> +static IIO_DEV_ATTR_OUT_RAW(2, ad5624r_write_dac, AD5624R_ADDR_DAC2);
> +static IIO_DEV_ATTR_OUT_RAW(3, ad5624r_write_dac, AD5624R_ADDR_DAC3);
>
> static IIO_DEVICE_ATTR(ldac_mode, S_IRUGO | S_IWUSR, ad5624r_read_ldac_mode,
> ad5624r_write_ldac_mode, 0);
> @@ -199,10 +199,10 @@ static IIO_DEV_ATTR_DAC_POWER_MODE(2, ad5624r_read_dac_power_mode, ad5624r_write
> static IIO_DEV_ATTR_DAC_POWER_MODE(3, ad5624r_read_dac_power_mode, ad5624r_write_dac_power_mode, 3);
>
> static struct attribute *ad5624r_attributes[] = {
> - &iio_dev_attr_dac_0.dev_attr.attr,
> - &iio_dev_attr_dac_1.dev_attr.attr,
> - &iio_dev_attr_dac_2.dev_attr.attr,
> - &iio_dev_attr_dac_3.dev_attr.attr,
> + &iio_dev_attr_out0_raw.dev_attr.attr,
> + &iio_dev_attr_out1_raw.dev_attr.attr,
> + &iio_dev_attr_out2_raw.dev_attr.attr,
> + &iio_dev_attr_out3_raw.dev_attr.attr,
> &iio_dev_attr_dac_power_mode_0.dev_attr.attr,
> &iio_dev_attr_dac_power_mode_1.dev_attr.attr,
> &iio_dev_attr_dac_power_mode_2.dev_attr.attr,
> diff --git a/drivers/staging/iio/dac/dac.h b/drivers/staging/iio/dac/dac.h
> index d9384c9..1d82f35 100644
> --- a/drivers/staging/iio/dac/dac.h
> +++ b/drivers/staging/iio/dac/dac.h
> @@ -2,9 +2,5 @@
> * dac.h - sysfs attributes associated with DACs
> */
>
> -/* Deprecated */
> -#define IIO_DEV_ATTR_DAC(_num, _store, _addr) \
> - IIO_DEVICE_ATTR(dac_##_num, S_IWUSR, NULL, _store, _addr)
> -
> #define IIO_DEV_ATTR_OUT_RAW(_num, _store, _addr) \
> IIO_DEVICE_ATTR(out##_num##_raw, S_IWUSR, NULL, _store, _addr)
^ permalink raw reply [flat|nested] 6+ messages in thread