2011-03-10 13:54:14

by Mark Brown

[permalink] [raw]
Subject: [PATCH] mfd: Add WM8994 bulk register write operation

Signed-off-by: Mark Brown <[email protected]>
---
drivers/mfd/wm8994-core.c | 23 +++++++++++++++++++++++
include/linux/mfd/wm8994/core.h | 2 ++
2 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/drivers/mfd/wm8994-core.c b/drivers/mfd/wm8994-core.c
index e673bda2..5220af2 100644
--- a/drivers/mfd/wm8994-core.c
+++ b/drivers/mfd/wm8994-core.c
@@ -138,6 +138,29 @@ int wm8994_reg_write(struct wm8994 *wm8994, unsigned short reg,
EXPORT_SYMBOL_GPL(wm8994_reg_write);

/**
+ * wm8994_bulk_write: Write multiple WM8994 registers
+ *
+ * @wm8994: Device to write to
+ * @reg: First register
+ * @count: Number of registers
+ * @buf: Buffer to write from.
+ */
+int wm8994_bulk_write(struct wm8994 *wm8994, unsigned short reg,
+ int count, u16 *buf)
+{
+ int ret;
+
+ mutex_lock(&wm8994->io_lock);
+
+ ret = wm8994_write(wm8994, reg, count * 2, buf);
+
+ mutex_unlock(&wm8994->io_lock);
+
+ return ret;
+}
+EXPORT_SYMBOL_GPL(wm8994_bulk_write);
+
+/**
* wm8994_set_bits: Set the value of a bitfield in a WM8994 register
*
* @wm8994: Device to write to.
diff --git a/include/linux/mfd/wm8994/core.h b/include/linux/mfd/wm8994/core.h
index ef4f0b6..cb7d3ae 100644
--- a/include/linux/mfd/wm8994/core.h
+++ b/include/linux/mfd/wm8994/core.h
@@ -88,6 +88,8 @@ int wm8994_set_bits(struct wm8994 *wm8994, unsigned short reg,
unsigned short mask, unsigned short val);
int wm8994_bulk_read(struct wm8994 *wm8994, unsigned short reg,
int count, u16 *buf);
+int wm8994_bulk_write(struct wm8994 *wm8994, unsigned short reg,
+ int count, u16 *buf);


/* Helper to save on boilerplate */
--
1.7.2.3


2011-03-14 11:35:47

by Samuel Ortiz

[permalink] [raw]
Subject: Re: [PATCH] mfd: Add WM8994 bulk register write operation

Hi Mark,

On Thu, Mar 10, 2011 at 01:54:07PM +0000, Mark Brown wrote:
> Signed-off-by: Mark Brown <[email protected]>
Patch applied, many thanks.

Cheers,
Samuel.

--
Intel Open Source Technology Centre
http://oss.intel.com/