Thread (46 messages) 46 messages, 6 authors, 2015-07-30

RE: [PATCH 5/9] input: goodix: reset device at init

From: Tirdea, Irina <hidden>
Date: 2015-05-28 13:43:05
Also in: linux-devicetree, lkml

-----Original Message-----
From: Mark Rutland [mailto:mark.rutland@arm.com]
Sent: 28 May, 2015 16:20
To: Tirdea, Irina
Cc: Dmitry Torokhov; Bastien Nocera; linux-input@vger.kernel.org; devicetree@vger.kernel.org; linux-kernel@vger.kernel.org;
Purdila, Octavian
Subject: Re: [PATCH 5/9] input: goodix: reset device at init

Hi,
Hi Mark,

Thanks for your quick review!
On Thu, May 28, 2015 at 01:47:41PM +0100, Irina Tirdea wrote:
quoted
After power on, it is recommended that the driver resets the device.
For reset the driver needs to control the interrupt and
reset gpio pins (configured through ACPI/device tree).
Why is it necessary to mess with the GPIO the interrupts is wired up to?
What exactly does the device expect at reset w.r.t. the interrupt line?
The reset procedure is described in the Goodix documentation (https://drive.google.com/folderview?id=0BxCVOQS3ZymGfmJyY2RKbE5XbVlKNlktVTlwV0lxNEdxd2dzeWZER094cmJPVnMxN1F0Yzg&usp=sharing) and implemented in their reference driver.

It is used at device init (before writing device configuration) and for power management (as described in chapter 7.1 of the documentation, when entering suspend the device must output low on the interrupt pin and when resuming it must output high on the interrupt pin). 
quoted
Signed-off-by: Octavian Purdila <redacted>
Signed-off-by: Irina Tirdea <redacted>
---
 .../bindings/input/touchscreen/goodix.txt          |  5 ++
 drivers/input/touchscreen/goodix.c                 | 99 ++++++++++++++++++++++
 2 files changed, 104 insertions(+)
diff --git a/Documentation/devicetree/bindings/input/touchscreen/goodix.txt
b/Documentation/devicetree/bindings/input/touchscreen/goodix.txt
quoted
index 8ba98ee..7137881 100644
--- a/Documentation/devicetree/bindings/input/touchscreen/goodix.txt
+++ b/Documentation/devicetree/bindings/input/touchscreen/goodix.txt
@@ -12,6 +12,8 @@ Required properties:
  - reg			: I2C address of the chip. Should be 0x5d or 0x14
  - interrupt-parent	: Interrupt controller to which the chip is connected
  - interrupts		: Interrupt to which the chip is connected
+ - irq-gpio		: GPIO pin used for IRQ
+ - reset-gpio		: GPIO pin used for reset

 Example:
@@ -23,6 +25,9 @@ Example:
 			reg = <0x5d>;
 			interrupt-parent = <&gpio>;
 			interrupts = <0 0>;
+
+			irq-gpio = <&gpio1 0 0>;
+			reset-gpio = <&gpio1 1 0>;
 		};

 		/* ... */
diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c
index 9e7d215..4405c55 100644
--- a/drivers/input/touchscreen/goodix.c
+++ b/drivers/input/touchscreen/goodix.c
@@ -26,6 +26,7 @@
 #include <linux/acpi.h>
 #include <linux/of.h>
 #include <asm/unaligned.h>
+#include <linux/gpio.h>
Nit: weird include ordering.
Will fix this in v2.
Mark.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help