mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-27 06:34:11 +08:00
Input: pm8xxx-vib - handle separate enable register
Some PMIC vibrator IPs use a separate enable register to turn the vibrator on and off. To detect if a vibrator uses this feature, rely on the enable_mask being non-zero. Signed-off-by: Damien Riegel <damien.riegel@savoirfairelinux.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
2de3b7048d
commit
d4c7c5c96c
@ -14,6 +14,7 @@
|
||||
#include <linux/input.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
@ -26,6 +27,9 @@
|
||||
#define MAX_FF_SPEED 0xff
|
||||
|
||||
struct pm8xxx_regs {
|
||||
unsigned int enable_addr;
|
||||
unsigned int enable_mask;
|
||||
|
||||
unsigned int drv_addr;
|
||||
unsigned int drv_mask;
|
||||
unsigned int drv_shift;
|
||||
@ -82,7 +86,12 @@ static int pm8xxx_vib_set(struct pm8xxx_vib *vib, bool on)
|
||||
return rc;
|
||||
|
||||
vib->reg_vib_drv = val;
|
||||
return 0;
|
||||
|
||||
if (regs->enable_mask)
|
||||
rc = regmap_update_bits(vib->regmap, regs->enable_addr,
|
||||
on ? regs->enable_mask : 0, val);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user