[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <d868be0fc14f8a9cd2230fb449ec9a8f21138d96.1477423581.git.hns@goldelico.com>
Date: Tue, 25 Oct 2016 21:26:17 +0200
From: "H. Nikolaus Schaller" <hns@...delico.com>
To: Dmitry Torokhov <dmitry.torokhov@...il.com>,
Rob Herring <robh+dt@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Benoît Cousson <bcousson@...libre.com>,
Tony Lindgren <tony@...mide.com>,
Russell King <linux@...linux.org.uk>,
Arnd Bergmann <arnd@...db.de>,
Michael Welling <mwelling@...e.org>,
Mika Penttilä <mika.penttila@...tfour.com>,
Javier Martinez Canillas <javier@....samsung.com>,
Igor Grinberg <grinberg@...pulab.co.il>,
Sebastian Reichel <sre@...nel.org>,
"Andrew F. Davis" <afd@...com>,
"H. Nikolaus Schaller" <hns@...delico.com>,
Mark Brown <broonie@...nel.org>,
Jonathan Cameron <jic23@...nel.org>,
Hans de Goede <hdegoede@...hat.com>,
Sangwon Jee <jeesw@...fas.com>
Cc: linux-input@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-omap@...r.kernel.org,
letux-kernel@...nphoenux.org, linux-iio@...r.kernel.org,
kernel@...a-handheld.com
Subject: [PATCH v5 3/8] drivers:input:tsc2007: check for presence and power down tsc2007 during probe
1. check if chip is really present and don't succeed if it isn't.
2. if it succeeds, power down the chip until accessed
Signed-off-by: H. Nikolaus Schaller <hns@...delico.com>
---
drivers/input/touchscreen/tsc2007.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/input/touchscreen/tsc2007.c b/drivers/input/touchscreen/tsc2007.c
index e9d5086..5e3c4bf 100644
--- a/drivers/input/touchscreen/tsc2007.c
+++ b/drivers/input/touchscreen/tsc2007.c
@@ -538,6 +538,14 @@ static int tsc2007_probe(struct i2c_client *client,
tsc2007_stop(ts);
+ /* power down the chip (TSC2007_SETUP does not ACK on I2C) */
+ err = tsc2007_xfer(ts, PWRDOWN);
+ if (err < 0) {
+ dev_err(&client->dev,
+ "Failed to setup chip: %d\n", err);
+ return err; /* usually, chip does not respond */
+ }
+
err = input_register_device(input_dev);
if (err) {
dev_err(&client->dev,
--
2.7.3
Powered by blists - more mailing lists