summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWengang Wu <wgw@motorola.com>2014-05-14 09:31:27 -0500
committerWengang Wu <wgw@motorola.com>2014-05-14 14:37:17 +0000
commit041954ae4b8e9a68fa24972f09b38d65f0381a8c (patch)
treee97eef79c6d05045a1eecff4cda1c2faa25483c0
parent55cb2562f4736adacd258e90fb727b540b5a4c58 (diff)
downloadolio-linux-3.10-041954ae4b8e9a68fa24972f09b38d65f0381a8c.tar.xz
olio-linux-3.10-041954ae4b8e9a68fa24972f09b38d65f0381a8c.zip
IKXCLOCK-1306 Touch: disable snowflake sensor detect for older hardware
Change-Id: I7b8cbcb1c6e072e6cdfc47da4f4fa36594c6234d
-rw-r--r--arch/arm/boot/dts/omap3-minnow-p0-p1a.dts7
-rw-r--r--arch/arm/boot/dts/omap3-minnow-p1b-p2.4.dts6
-rw-r--r--arch/arm/boot/dts/omap3-minnow.dtsi1
-rw-r--r--drivers/input/touchscreen/atmxt.c13
4 files changed, 25 insertions, 2 deletions
diff --git a/arch/arm/boot/dts/omap3-minnow-p0-p1a.dts b/arch/arm/boot/dts/omap3-minnow-p0-p1a.dts
index f5a9e3f1c8e..8b0b4214370 100644
--- a/arch/arm/boot/dts/omap3-minnow-p0-p1a.dts
+++ b/arch/arm/boot/dts/omap3-minnow-p0-p1a.dts
@@ -23,3 +23,10 @@
&spi_flash {
m25p,m4sensorhub_cb;
};
+
+&i2c1 {
+ atmxt@4a {
+ support-snowflake = <0>;
+ };
+};
+
diff --git a/arch/arm/boot/dts/omap3-minnow-p1b-p2.4.dts b/arch/arm/boot/dts/omap3-minnow-p1b-p2.4.dts
index 6d46b7ce37b..1a63bad571b 100644
--- a/arch/arm/boot/dts/omap3-minnow-p1b-p2.4.dts
+++ b/arch/arm/boot/dts/omap3-minnow-p1b-p2.4.dts
@@ -22,3 +22,9 @@
};
};
+
+&i2c1 {
+ atmxt@4a {
+ support-snowflake = <0>;
+ };
+};
diff --git a/arch/arm/boot/dts/omap3-minnow.dtsi b/arch/arm/boot/dts/omap3-minnow.dtsi
index a818a15cb5a..c75b875d377 100644
--- a/arch/arm/boot/dts/omap3-minnow.dtsi
+++ b/arch/arm/boot/dts/omap3-minnow.dtsi
@@ -265,6 +265,7 @@
pinctrl-names = "pullup", "pulldown";
pinctrl-0 = <&atmxt_int_pullup>;
pinctrl-1 = <&atmxt_int_pulldown>;
+ support-snowflake = <1>;
};
};
diff --git a/drivers/input/touchscreen/atmxt.c b/drivers/input/touchscreen/atmxt.c
index 80028f13b21..8ea5473850a 100644
--- a/drivers/input/touchscreen/atmxt.c
+++ b/drivers/input/touchscreen/atmxt.c
@@ -196,17 +196,24 @@ static int atmxt_pctrl_sel_state(struct device *dev, struct pinctrl *pctrl,
inline int atmxt_tdat_detect_snowflake(struct i2c_client *client,
struct touch_platform_data *pdata)
{
- int r;
+ int r, need = 0;
struct pinctrl *pctrl = devm_pinctrl_get(&client->dev);
if (IS_ERR(pctrl)) {
dev_err(&client->dev, "no pinctrl handle\n");
return PTR_ERR(pctrl);
}
+
+ r = of_property_read_u32(client->dev.of_node,
+ "support-snowflake", &need);
+ if (r || !need) {
+ dev_dbg(&client->dev, "do not support snowflake\n");
+ goto exit_pullup;
+ }
+
/* To detect new snowflake touch sensor, it needs set touch_irq
* to pull-down, then read it back, the low value means snowflake
* touch is connected
*/
-
r = atmxt_pctrl_sel_state(&client->dev, pctrl, "pulldown");
if (r)
goto exit;
@@ -225,6 +232,8 @@ inline int atmxt_tdat_detect_snowflake(struct i2c_client *client,
pdata->filename = (char *)fp;
}
+exit_pullup:
+ /* switch to pullup by default that allow touch interrupt */
r = atmxt_pctrl_sel_state(&client->dev, pctrl, "pullup");
dev_dbg(&client->dev, "tdat file is %s\n", pdata->filename);