Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e93c5387 authored by Mark Brown's avatar Mark Brown Committed by Samuel Ortiz
Browse files

mfd: Add WM8994 bulk register write operation

parent 09b03419
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -137,6 +137,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
 *
+2 −0
Original line number Diff line number Diff line
@@ -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 */