[PATCH] input: arizona-haptics - Add device property for HAP_ACT

From: Richard Fitzgerald
Date: Thu Feb 16 2017 - 12:36:48 EST


This adds a device property for setting the configuration for the
HAP_ACT register field so that the connected actuator type can be
configured on systems that are not using pdata.

Signed-off-by: Richard Fitzgerald <rf@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
---
Documentation/devicetree/bindings/input/arizona-haptics.txt | 10 ++++++++++
MAINTAINERS | 1 +
drivers/input/misc/arizona-haptics.c | 7 +++++++
3 files changed, 18 insertions(+)
create mode 100644 Documentation/devicetree/bindings/input/arizona-haptics.txt

diff --git a/Documentation/devicetree/bindings/input/arizona-haptics.txt b/Documentation/devicetree/bindings/input/arizona-haptics.txt
new file mode 100644
index 0000000..a3e767b
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/arizona-haptics.txt
@@ -0,0 +1,10 @@
+Cirrus Logic Arizona class audio SoCs
+
+This document lists haptics bindings for these codecs.
+Also see the primary binding document:
+ ../mfd/arizona.txt
+
+Optional properties:
+ - wlf,hap-act : Single value defining the actuator type, as per the HAP_ACT
+ register field. See the codec datasheet for the available HAP_ACT values
+ and their meaning.
diff --git a/MAINTAINERS b/MAINTAINERS
index 26edd83..be4ea3e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -13377,6 +13377,7 @@ W: https://github.com/CirrusLogic/linux-drivers/wiki
S: Supported
F: Documentation/hwmon/wm83??
F: Documentation/devicetree/bindings/extcon/extcon-arizona.txt
+F: Documentation/devicetree/bindings/input/arizona*.txt
F: Documentation/devicetree/bindings/regulator/arizona-regulator.txt
F: Documentation/devicetree/bindings/mfd/arizona.txt
F: arch/arm/mach-s3c64xx/mach-crag6410*
diff --git a/drivers/input/misc/arizona-haptics.c b/drivers/input/misc/arizona-haptics.c
index 21dc1b8..0264d95 100644
--- a/drivers/input/misc/arizona-haptics.c
+++ b/drivers/input/misc/arizona-haptics.c
@@ -14,6 +14,7 @@
#include <linux/platform_device.h>
#include <linux/input.h>
#include <linux/slab.h>
+#include <linux/property.h>

#include <sound/soc.h>
#include <sound/soc-dapm.h>
@@ -164,6 +165,12 @@ static int arizona_haptics_probe(struct platform_device *pdev)

haptics->arizona = arizona;

+ if (!dev_get_platdata(arizona->dev))
+ device_property_read_u32(arizona->dev, "wlf,hap-act",
+ &arizona->pdata.hap_act);
+
+ dev_dbg(arizona->dev, "hap_act=%u\n", arizona->pdata.hap_act);
+
ret = regmap_update_bits(arizona->regmap, ARIZONA_HAPTICS_CONTROL_1,
ARIZONA_HAP_ACT, arizona->pdata.hap_act);
if (ret != 0) {
--
1.9.1