mfd: wm8994: Inline register I/O functions
Since the register I/O functions are all simple wrappers for the regmap equivalents inline them to provide a small code size saving and an example of good practice. Signed-off-by: Mark Brown <broonie@linaro.org> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
parent
8a8320c2e7
commit
b5f90240e1
2 changed files with 36 additions and 87 deletions
|
@ -33,84 +33,6 @@
|
|||
|
||||
#include "wm8994.h"
|
||||
|
||||
/**
|
||||
* wm8994_reg_read: Read a single WM8994 register.
|
||||
*
|
||||
* @wm8994: Device to read from.
|
||||
* @reg: Register to read.
|
||||
*/
|
||||
int wm8994_reg_read(struct wm8994 *wm8994, unsigned short reg)
|
||||
{
|
||||
unsigned int val;
|
||||
int ret;
|
||||
|
||||
ret = regmap_read(wm8994->regmap, reg, &val);
|
||||
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
else
|
||||
return val;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wm8994_reg_read);
|
||||
|
||||
/**
|
||||
* wm8994_bulk_read: Read multiple WM8994 registers
|
||||
*
|
||||
* @wm8994: Device to read from
|
||||
* @reg: First register
|
||||
* @count: Number of registers
|
||||
* @buf: Buffer to fill. The data will be returned big endian.
|
||||
*/
|
||||
int wm8994_bulk_read(struct wm8994 *wm8994, unsigned short reg,
|
||||
int count, u16 *buf)
|
||||
{
|
||||
return regmap_bulk_read(wm8994->regmap, reg, buf, count);
|
||||
}
|
||||
|
||||
/**
|
||||
* wm8994_reg_write: Write a single WM8994 register.
|
||||
*
|
||||
* @wm8994: Device to write to.
|
||||
* @reg: Register to write to.
|
||||
* @val: Value to write.
|
||||
*/
|
||||
int wm8994_reg_write(struct wm8994 *wm8994, unsigned short reg,
|
||||
unsigned short val)
|
||||
{
|
||||
return regmap_write(wm8994->regmap, reg, val);
|
||||
}
|
||||
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. Data must be big-endian formatted.
|
||||
*/
|
||||
int wm8994_bulk_write(struct wm8994 *wm8994, unsigned short reg,
|
||||
int count, const u16 *buf)
|
||||
{
|
||||
return regmap_raw_write(wm8994->regmap, reg, buf, count * sizeof(u16));
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wm8994_bulk_write);
|
||||
|
||||
/**
|
||||
* wm8994_set_bits: Set the value of a bitfield in a WM8994 register
|
||||
*
|
||||
* @wm8994: Device to write to.
|
||||
* @reg: Register to write to.
|
||||
* @mask: Mask of bits to set.
|
||||
* @val: Value to set (unshifted)
|
||||
*/
|
||||
int wm8994_set_bits(struct wm8994 *wm8994, unsigned short reg,
|
||||
unsigned short mask, unsigned short val)
|
||||
{
|
||||
return regmap_update_bits(wm8994->regmap, reg, mask, val);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wm8994_set_bits);
|
||||
|
||||
static struct mfd_cell wm8994_regulator_devs[] = {
|
||||
{
|
||||
.name = "wm8994-ldo",
|
||||
|
|
|
@ -85,16 +85,43 @@ struct wm8994 {
|
|||
};
|
||||
|
||||
/* Device I/O API */
|
||||
int wm8994_reg_read(struct wm8994 *wm8994, unsigned short reg);
|
||||
int wm8994_reg_write(struct wm8994 *wm8994, unsigned short reg,
|
||||
unsigned short val);
|
||||
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, const u16 *buf);
|
||||
|
||||
static inline int wm8994_reg_read(struct wm8994 *wm8994, unsigned short reg)
|
||||
{
|
||||
unsigned int val;
|
||||
int ret;
|
||||
|
||||
ret = regmap_read(wm8994->regmap, reg, &val);
|
||||
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
else
|
||||
return val;
|
||||
}
|
||||
|
||||
static inline int wm8994_reg_write(struct wm8994 *wm8994, unsigned short reg,
|
||||
unsigned short val)
|
||||
{
|
||||
return regmap_write(wm8994->regmap, reg, val);
|
||||
}
|
||||
|
||||
static inline int wm8994_bulk_read(struct wm8994 *wm8994, unsigned short reg,
|
||||
int count, u16 *buf)
|
||||
{
|
||||
return regmap_bulk_read(wm8994->regmap, reg, buf, count);
|
||||
}
|
||||
|
||||
static inline int wm8994_bulk_write(struct wm8994 *wm8994, unsigned short reg,
|
||||
int count, const u16 *buf)
|
||||
{
|
||||
return regmap_raw_write(wm8994->regmap, reg, buf, count * sizeof(u16));
|
||||
}
|
||||
|
||||
static inline int wm8994_set_bits(struct wm8994 *wm8994, unsigned short reg,
|
||||
unsigned short mask, unsigned short val)
|
||||
{
|
||||
return regmap_update_bits(wm8994->regmap, reg, mask, val);
|
||||
}
|
||||
|
||||
/* Helper to save on boilerplate */
|
||||
static inline int wm8994_request_irq(struct wm8994 *wm8994, int irq,
|
||||
|
|
Loading…
Reference in a new issue