summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Riegel <damien.riegel@savoirfairelinux.com>2017-04-05 01:29:59 +0200
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2017-04-05 17:52:39 +0200
commit792ad66839b89802673ec1398161234674638255 (patch)
tree62d82f053c9f46af404b831ac0d30c36d3d4b7a1
parentInput: pm8xxx-vib - handle separate enable register (diff)
downloadlinux-792ad66839b89802673ec1398161234674638255.tar.xz
linux-792ad66839b89802673ec1398161234674638255.zip
Input: pm8xxx-vib - add support for pm8916's vibrator
Add pm8xxx_regs for this PMIC and the device tree match table entry. Signed-off-by: Damien Riegel <damien.riegel@savoirfairelinux.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
-rw-r--r--Documentation/devicetree/bindings/input/qcom,pm8xxx-vib.txt1
-rw-r--r--drivers/input/misc/Kconfig2
-rw-r--r--drivers/input/misc/pm8xxx-vibrator.c10
3 files changed, 12 insertions, 1 deletions
diff --git a/Documentation/devicetree/bindings/input/qcom,pm8xxx-vib.txt b/Documentation/devicetree/bindings/input/qcom,pm8xxx-vib.txt
index 4ed467b1e402..64bb990075c3 100644
--- a/Documentation/devicetree/bindings/input/qcom,pm8xxx-vib.txt
+++ b/Documentation/devicetree/bindings/input/qcom,pm8xxx-vib.txt
@@ -7,6 +7,7 @@ PROPERTIES
Value type: <string>
Definition: must be one of:
"qcom,pm8058-vib"
+ "qcom,pm8916-vib"
"qcom,pm8921-vib"
- reg:
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
index 5b6c52210d20..79d0be9885c5 100644
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -143,7 +143,7 @@ config INPUT_PM8941_PWRKEY
config INPUT_PM8XXX_VIBRATOR
tristate "Qualcomm PM8XXX vibrator support"
- depends on MFD_PM8XXX
+ depends on MFD_PM8XXX || MFD_SPMI_PMIC
select INPUT_FF_MEMLESS
help
This option enables device driver support for the vibrator
diff --git a/drivers/input/misc/pm8xxx-vibrator.c b/drivers/input/misc/pm8xxx-vibrator.c
index 3dc8ffbc6b9d..7dd1c1fbe42a 100644
--- a/drivers/input/misc/pm8xxx-vibrator.c
+++ b/drivers/input/misc/pm8xxx-vibrator.c
@@ -43,6 +43,15 @@ static const struct pm8xxx_regs pm8058_regs = {
.drv_en_manual_mask = 0xfc,
};
+static struct pm8xxx_regs pm8916_regs = {
+ .enable_addr = 0xc046,
+ .enable_mask = BIT(7),
+ .drv_addr = 0xc041,
+ .drv_mask = 0x1F,
+ .drv_shift = 0,
+ .drv_en_manual_mask = 0,
+};
+
/**
* struct pm8xxx_vib - structure to hold vibrator data
* @vib_input_dev: input device supporting force feedback
@@ -240,6 +249,7 @@ static SIMPLE_DEV_PM_OPS(pm8xxx_vib_pm_ops, pm8xxx_vib_suspend, NULL);
static const struct of_device_id pm8xxx_vib_id_table[] = {
{ .compatible = "qcom,pm8058-vib", .data = &pm8058_regs },
{ .compatible = "qcom,pm8921-vib", .data = &pm8058_regs },
+ { .compatible = "qcom,pm8916-vib", .data = &pm8916_regs },
{ }
};
MODULE_DEVICE_TABLE(of, pm8xxx_vib_id_table);