[Armadeus-commitlog] armadeus branch, master, updated. armadeus-5.2-162-geff2f2a
Brought to you by:
sszy
|
From: jorasse <jo...@us...> - 2013-02-15 15:34:43
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via eff2f2a1c536cd005381b2e8c0694cef63a1abda (commit)
from ed1cbc07c49904537e921c3faaf17c069704f724 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit eff2f2a1c536cd005381b2e8c0694cef63a1abda
Author: Eric Jarrige <eri...@ar...>
Date: Fri Feb 15 16:38:05 2013 +0100
[LINUX] 2.6.38: fix MCP49x2 DAC trigger conversion and add capabilites to select condition to start DAC conversion
-----------------------------------------------------------------------
Summary of changes:
...3-armadeus-adding_mcp4912_dac_chip_driver.patch | 78 ++++++++++++++++----
1 files changed, 62 insertions(+), 16 deletions(-)
diff --git a/patches/linux/2.6.38/423-armadeus-adding_mcp4912_dac_chip_driver.patch b/patches/linux/2.6.38/423-armadeus-adding_mcp4912_dac_chip_driver.patch
index a67aa73..a1b9f43 100644
--- a/patches/linux/2.6.38/423-armadeus-adding_mcp4912_dac_chip_driver.patch
+++ b/patches/linux/2.6.38/423-armadeus-adding_mcp4912_dac_chip_driver.patch
@@ -3,11 +3,12 @@ Adding Microchip MCP4912 DAC driver
Signed-off-by: Fabien Marteau <fab...@ar...>
Signed-off-by: Nicolas Colombain <nic...@ar...>
+Signed-off-by: Eric Jarrige <eri...@ar...>
---
Index: linux-2.6.38-rc3/drivers/staging/iio/dac/Kconfig
===================================================================
---- linux-2.6.38-rc3.orig/drivers/staging/iio/dac/Kconfig 2011-02-22 15:51:43.000000000 +0100
-+++ linux-2.6.38-rc3/drivers/staging/iio/dac/Kconfig 2011-02-22 15:51:43.000000000 +0100
+--- linux-2.6.38-rc3/drivers/staging/iio/dac/Kconfig
++++ linux-2.6.38-rc3/drivers/staging/iio/dac/Kconfig
@@ -20,6 +20,16 @@
To compile this driver as a module, choose M here: the
module will be called ad5446.
@@ -27,8 +28,8 @@ Index: linux-2.6.38-rc3/drivers/staging/iio/dac/Kconfig
depends on I2C && EXPERIMENTAL
Index: linux-2.6.38-rc3/drivers/staging/iio/dac/Makefile
===================================================================
---- linux-2.6.38-rc3.orig/drivers/staging/iio/dac/Makefile 2011-02-22 15:51:43.000000000 +0100
-+++ linux-2.6.38-rc3/drivers/staging/iio/dac/Makefile 2011-02-22 15:51:43.000000000 +0100
+--- linux-2.6.38-rc3/drivers/staging/iio/dac/Makefile
++++ linux-2.6.38-rc3/drivers/staging/iio/dac/Makefile
@@ -5,3 +5,4 @@
obj-$(CONFIG_AD5624R_SPI) += ad5624r_spi.o
obj-$(CONFIG_AD5446) += ad5446.o
@@ -36,9 +37,9 @@ Index: linux-2.6.38-rc3/drivers/staging/iio/dac/Makefile
+obj-$(CONFIG_MCP49x2) += mcp49x2.o
Index: linux-2.6.38-rc3/drivers/staging/iio/dac/mcp49x2.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.38-rc3/drivers/staging/iio/dac/mcp49x2.c 2011-02-22 17:48:06.000000000 +0100
-@@ -0,0 +1,319 @@
+--- /dev/null
++++ linux-2.6.38-rc3/drivers/staging/iio/dac/mcp49x2.c
+@@ -0,0 +1,364 @@
+/*
+ * mcp49x2.c
+ *
@@ -85,7 +86,7 @@ Index: linux-2.6.38-rc3/drivers/staging/iio/dac/mcp49x2.c
+#include "mcp49x2.h"
+
+#define DRIVER_NAME "mcp49x2"
-+#define DRIVER_VERSION "0.2"
++#define DRIVER_VERSION "1.0"
+
+enum mcp49x2_device_ids {
+ ID_MCP4902,
@@ -97,8 +98,9 @@ Index: linux-2.6.38-rc3/drivers/staging/iio/dac/mcp49x2.c
+ struct iio_dev *indio_dev;
+ struct spi_device *spi_dev;
+ struct mcp49x2_config *plat_dat;
-+ unsigned int value[2]; /* Value write on each channel */
++ unsigned int value[2]; /* Value writen on each channel */
+ unsigned int power_mode[2];
++ unsigned int trigger[2]; /* does write data launch the conversion */
+};
+
+static int mcp49x2_spi_write(struct spi_device *spi,
@@ -156,9 +158,11 @@ Index: linux-2.6.38-rc3/drivers/staging/iio/dac/mcp49x2.c
+ this_attr->address, 1, 1, 1,
+ mcp49x2->value[this_attr->address]);
+
-+ gpio_set_value( platform_info->ldac_pin, 1);
-+ udelay(1);
-+ gpio_set_value( platform_info->ldac_pin, 0);
++ if (mcp49x2->trigger[this_attr->address]) {
++ gpio_set_value( platform_info->ldac_pin, 0);
++ udelay(1);
++ gpio_set_value( platform_info->ldac_pin, 1);
++ }
+
+ return ret ? ret : len;
+}
@@ -200,6 +204,36 @@ Index: linux-2.6.38-rc3/drivers/staging/iio/dac/mcp49x2.c
+ return sprintf(buf, "%d\n", mcp49x2->power_mode[this_attr->address]);
+}
+
++static ssize_t mcp49x2_write_dac_trigger(struct device *dev,
++ struct device_attribute *attr,
++ const char *buf, size_t len)
++{
++ long readin;
++ int ret;
++ struct iio_dev *indio_dev = dev_get_drvdata(dev);
++ struct mcp49x2_device *mcp49x2 = indio_dev->dev_data;
++ struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
++
++ ret = strict_strtol(buf, 10, &readin);
++ if (ret)
++ return ret;
++
++ mcp49x2->trigger[this_attr->address] = readin;
++
++ return ret ? ret : len;
++}
++
++static ssize_t mcp49x2_read_dac_trigger(struct device *dev,
++ struct device_attribute *attr,
++ char *buf)
++{
++ struct iio_dev *indio_dev = dev_get_drvdata(dev);
++ struct mcp49x2_device *mcp49x2 = indio_dev->dev_data;
++ struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
++
++ return sprintf(buf, "%d\n", mcp49x2->trigger[this_attr->address]);
++}
++
+static IIO_DEV_ATTR_OUT_RAW(0, mcp49x2_write_dac_value, 0);
+static IIO_DEV_ATTR_OUT_RAW(1, mcp49x2_write_dac_value, 1);
+
@@ -211,11 +245,22 @@ Index: linux-2.6.38-rc3/drivers/staging/iio/dac/mcp49x2.c
+static IIO_DEV_ATTR_DAC_POWER_MODE(1, mcp49x2_read_dac_power_mode,
+ mcp49x2_write_dac_power_mode, 1);
+
++/* Define for each channel if it will trigger the LDAC# GPIO */
++#define IIO_DEV_ATTR_DAC_TRIGGER(_num, _show, _store, _addr) \
++ IIO_DEVICE_ATTR(dac_trigger_##_num, S_IRUGO | S_IWUSR, _show, _store, _addr)
++
++static IIO_DEV_ATTR_DAC_TRIGGER(0, mcp49x2_read_dac_trigger,
++ mcp49x2_write_dac_trigger, 0);
++static IIO_DEV_ATTR_DAC_TRIGGER(1, mcp49x2_read_dac_trigger,
++ mcp49x2_write_dac_trigger, 1);
++
+static struct attribute *mcp49x2_attributes[] = {
+ &iio_dev_attr_out0_raw.dev_attr.attr,
+ &iio_dev_attr_out1_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_trigger_0.dev_attr.attr,
++ &iio_dev_attr_dac_trigger_1.dev_attr.attr,
+ NULL,
+};
+
@@ -228,7 +273,6 @@ Index: linux-2.6.38-rc3/drivers/staging/iio/dac/mcp49x2.c
+ struct mcp49x2_device *mcp49x2;
+ struct mcp49x2_config *platform_info;
+ int result;
-+ int dev_id = spi_get_device_id(spi)->driver_data;
+
+ pr_debug("%s\n", __FUNCTION__);
+
@@ -245,7 +289,7 @@ Index: linux-2.6.38-rc3/drivers/staging/iio/dac/mcp49x2.c
+ "failed to allocate ldac gpio\n");
+ return result;
+ }
-+ gpio_direction_output(platform_info->ldac_pin, 0);
++ gpio_direction_output(platform_info->ldac_pin, 1);
+ }
+ else {
+ dev_err(&spi->dev,"ldac gpio not valid\n");
@@ -276,6 +320,8 @@ Index: linux-2.6.38-rc3/drivers/staging/iio/dac/mcp49x2.c
+ mcp49x2->value[1] = 0;
+ mcp49x2->power_mode[0] = 0;
+ mcp49x2->power_mode[1] = 0;
++ mcp49x2->trigger[0] = 1;
++ mcp49x2->trigger[1] = 1;
+
+ mcp49x2->indio_dev->attrs = &mcp49x2_attribute_group;
+ mcp49x2->indio_dev->dev_data = (void *)(mcp49x2);
@@ -360,8 +406,8 @@ Index: linux-2.6.38-rc3/drivers/staging/iio/dac/mcp49x2.c
+
Index: linux-2.6.38-rc3/drivers/staging/iio/dac/mcp49x2.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.38-rc3/drivers/staging/iio/dac/mcp49x2.h 2011-02-22 15:51:43.000000000 +0100
+--- /dev/null
++++ linux-2.6.38-rc3/drivers/staging/iio/dac/mcp49x2.h
@@ -0,0 +1,29 @@
+/*
+ * mcp4912.h
hooks/post-receive
--
armadeus
|