diff mbox

[v3,3/8] Input: synaptics-rmi4: Add dribble and palm gesture parameters to device tree

Message ID 1468476522-8032-1-git-send-email-aduggan@synaptics.com (mailing list archive)
State New, archived
Headers show

Commit Message

Andrew Duggan July 14, 2016, 6:08 a.m. UTC
Signed-off-by: Andrew Duggan <aduggan@synaptics.com>
---
This version includes Nick's suggestion of adding force to the device tree
parameters so make it obvious that these parameters overwrite the
default values set in the firware config.

 .../devicetree/bindings/input/rmi4/rmi_2d_sensor.txt        | 10 ++++++++++
 drivers/input/rmi4/rmi_2d_sensor.c                          | 13 +++++++++++++
 2 files changed, 23 insertions(+)

Comments

Rob Herring (Arm) July 16, 2016, 10:49 p.m. UTC | #1
On Wed, Jul 13, 2016 at 11:08:42PM -0700, Andrew Duggan wrote:
> Signed-off-by: Andrew Duggan <aduggan@synaptics.com>
> ---
> This version includes Nick's suggestion of adding force to the device tree
> parameters so make it obvious that these parameters overwrite the
> default values set in the firware config.
> 
>  .../devicetree/bindings/input/rmi4/rmi_2d_sensor.txt        | 10 ++++++++++
>  drivers/input/rmi4/rmi_2d_sensor.c                          | 13 +++++++++++++
>  2 files changed, 23 insertions(+)

Acked-by: Rob Herring <robh@kernel.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Linus Walleij July 22, 2016, 3:08 p.m. UTC | #2
On Thu, Jul 14, 2016 at 8:08 AM, Andrew Duggan <aduggan@synaptics.com> wrote:

> Signed-off-by: Andrew Duggan <aduggan@synaptics.com>
> ---
> This version includes Nick's suggestion of adding force to the device tree
> parameters so make it obvious that these parameters overwrite the
> default values set in the firware config.

Looks neat.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Dmitry Torokhov July 22, 2016, 4:52 p.m. UTC | #3
On Wed, Jul 13, 2016 at 11:08:42PM -0700, Andrew Duggan wrote:
> Signed-off-by: Andrew Duggan <aduggan@synaptics.com>
> ---
> This version includes Nick's suggestion of adding force to the device tree
> parameters so make it obvious that these parameters overwrite the
> default values set in the firware config.

Why do we want to support overwriting firmware behavior in DT instead of
flashing new firmware as needed by the product?

Thanks.
Andrew Duggan July 22, 2016, 6:32 p.m. UTC | #4
On 07/22/2016 09:52 AM, Dmitry Torokhov wrote:
> On Wed, Jul 13, 2016 at 11:08:42PM -0700, Andrew Duggan wrote:
>> Signed-off-by: Andrew Duggan <aduggan@synaptics.com>
>> ---
>> This version includes Nick's suggestion of adding force to the device tree
>> parameters so make it obvious that these parameters overwrite the
>> default values set in the firware config.
> Why do we want to support overwriting firmware behavior in DT instead of
> flashing new firmware as needed by the product?

If the firmware was configured incorrectly it might just be easier to 
add a device tree entry. This would allow platform owners to make the 
change without having to get Synaptics involved or have access to our 
tools. Customers have also requested using the same module and firmware 
across multiple platforms. Tracking which firmware is on which part 
would create an additional support burden and not all platforms have an 
automated way of checking and updating firmware versions in the event 
that a system is build with a module which has the incorrect firmware.

It is possible that neither of these cases will ever happen and the 
bindings will never be used. I figured it was better to have the options 
available if needed. But, if we want to avoid having tons of device tree 
parameters which are never used then we can leave this patch out and I 
can resubmit it if there is a platform which ends up needing them.

Andrew

> Thanks.
>

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Linus Walleij July 24, 2016, 2:29 p.m. UTC | #5
On Fri, Jul 22, 2016 at 8:32 PM, Andrew Duggan <aduggan@synaptics.com> wrote:

> If the firmware was configured incorrectly it might just be easier to add a
> device tree entry. This would allow platform owners to make the change
> without having to get Synaptics involved or have access to our tools.
> Customers have also requested using the same module and firmware across
> multiple platforms. Tracking which firmware is on which part would create an
> additional support burden and not all platforms have an automated way of
> checking and updating firmware versions in the event that a system is build
> with a module which has the incorrect firmware.

I think it's a valid argument.

That said, the world needs more of
drivers/scsi/aic7xxx

That driver has the firmware generation, including an assembler, in the
kernel tree. Pretty cool eh?

(I know it is a thick thing to ask, just want to give you an idea of what
is possible...)

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/input/rmi4/rmi_2d_sensor.txt b/Documentation/devicetree/bindings/input/rmi4/rmi_2d_sensor.txt
index f2c30c8..c00665d 100644
--- a/Documentation/devicetree/bindings/input/rmi4/rmi_2d_sensor.txt
+++ b/Documentation/devicetree/bindings/input/rmi4/rmi_2d_sensor.txt
@@ -37,6 +37,16 @@  Optional Properties:
 				disable reporing absolute position data.
 - syna,rezero-wait-ms: Time in miliseconds to wait after issuing a rezero
 				command.
+- syna,dribble-force-enable: Enable reporting of dribble packets in the firmware
+				(overwrites default value in firmware config).
+- syna,dribble-force-disable: Disable reporting of dribble packets in the firmware.
+				(overwrites default value in firmware config).
+- syna,palm-detect-force-enable: Enable reporting the palm detect gesture in the
+				firmware.  (overwrites default value in firmware
+				config).
+- syna,palm-detect-force-disable: Disable reporting the palm detect gesture in
+				the firmware.  (overwrites default value in
+				firmware config).
 
 
 Example of a RMI4 I2C device with F11:
diff --git a/drivers/input/rmi4/rmi_2d_sensor.c b/drivers/input/rmi4/rmi_2d_sensor.c
index e97bd7f..a092f6a 100644
--- a/drivers/input/rmi4/rmi_2d_sensor.c
+++ b/drivers/input/rmi4/rmi_2d_sensor.c
@@ -317,6 +317,19 @@  int rmi_2d_sensor_of_probe(struct device *dev,
 
 	pdata->rezero_wait = val;
 
+	if (of_property_read_bool(dev->of_node, "syna,dribble-force-enable"))
+		pdata->dribble = RMI_REG_STATE_ON;
+	else if (of_property_read_bool(dev->of_node,
+	    "syna,dribble-force-disable"))
+		pdata->dribble = RMI_REG_STATE_OFF;
+
+	if (of_property_read_bool(dev->of_node,
+	    "syna,palm-detect-force-enable"))
+		pdata->palm_detect = RMI_REG_STATE_ON;
+	else if (of_property_read_bool(dev->of_node,
+				"syna,palm-detect-force-disable"))
+		pdata->palm_detect = RMI_REG_STATE_OFF;
+
 	return 0;
 }
 #else