提交 6c04d7b3 编写于 作者: B Barry Song 提交者: Dmitry Torokhov

Input: ad714x - add support for the AD7143/8/7A parts

Signed-off-by: NBarry Song <barry.song@analog.com>
Signed-off-by: NMike Frysinger <vapier@gentoo.org>
Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
上级 31a62963
...@@ -25,7 +25,7 @@ config INPUT_88PM860X_ONKEY ...@@ -25,7 +25,7 @@ config INPUT_88PM860X_ONKEY
config INPUT_AD714X config INPUT_AD714X
tristate "Analog Devices AD714x Capacitance Touch Sensor" tristate "Analog Devices AD714x Capacitance Touch Sensor"
help help
Say Y here if you want to support an AD7142/AD7147 touch sensor. Say Y here if you want to support an AD7142/3/7/8/7A touch sensor.
You should select a bus connection too. You should select a bus connection too.
......
...@@ -104,7 +104,10 @@ static int __devexit ad714x_i2c_remove(struct i2c_client *client) ...@@ -104,7 +104,10 @@ static int __devexit ad714x_i2c_remove(struct i2c_client *client)
static const struct i2c_device_id ad714x_id[] = { static const struct i2c_device_id ad714x_id[] = {
{ "ad7142_captouch", 0 }, { "ad7142_captouch", 0 },
{ "ad7143_captouch", 0 },
{ "ad7147_captouch", 0 }, { "ad7147_captouch", 0 },
{ "ad7147a_captouch", 0 },
{ "ad7148_captouch", 0 },
{ } { }
}; };
MODULE_DEVICE_TABLE(i2c, ad714x_id); MODULE_DEVICE_TABLE(i2c, ad714x_id);
......
/* /*
* AD714X CapTouch Programmable Controller driver * AD714X CapTouch Programmable Controller driver supporting AD7142/3/7/8/7A
* *
* Copyright 2009 Analog Devices Inc. * Copyright 2009 Analog Devices Inc.
* *
...@@ -18,8 +18,10 @@ ...@@ -18,8 +18,10 @@
#define AD714X_STG_CAL_EN_REG 0x1 #define AD714X_STG_CAL_EN_REG 0x1
#define AD714X_AMB_COMP_CTRL0_REG 0x2 #define AD714X_AMB_COMP_CTRL0_REG 0x2
#define AD714X_PARTID_REG 0x17 #define AD714X_PARTID_REG 0x17
#define AD7147_PARTID 0x1470
#define AD7142_PARTID 0xE620 #define AD7142_PARTID 0xE620
#define AD7143_PARTID 0xE630
#define AD7147_PARTID 0x1470
#define AD7148_PARTID 0x1480
#define AD714X_STAGECFG_REG 0x80 #define AD714X_STAGECFG_REG 0x80
#define AD714X_SYSCFG_REG 0x0 #define AD714X_SYSCFG_REG 0x0
...@@ -962,17 +964,31 @@ static int ad714x_hw_detect(struct ad714x_chip *ad714x) ...@@ -962,17 +964,31 @@ static int ad714x_hw_detect(struct ad714x_chip *ad714x)
ad714x->read(ad714x->dev, AD714X_PARTID_REG, &data); ad714x->read(ad714x->dev, AD714X_PARTID_REG, &data);
switch (data & 0xFFF0) { switch (data & 0xFFF0) {
case AD7142_PARTID:
ad714x->product = 0x7142;
ad714x->version = data & 0xF;
dev_info(ad714x->dev, "found AD7142 captouch, rev:%d\n",
ad714x->version);
return 0;
case AD7143_PARTID:
ad714x->product = 0x7143;
ad714x->version = data & 0xF;
dev_info(ad714x->dev, "found AD7143 captouch, rev:%d\n",
ad714x->version);
return 0;
case AD7147_PARTID: case AD7147_PARTID:
ad714x->product = 0x7147; ad714x->product = 0x7147;
ad714x->version = data & 0xF; ad714x->version = data & 0xF;
dev_info(ad714x->dev, "found AD7147 captouch, rev:%d\n", dev_info(ad714x->dev, "found AD7147(A) captouch, rev:%d\n",
ad714x->version); ad714x->version);
return 0; return 0;
case AD7142_PARTID: case AD7148_PARTID:
ad714x->product = 0x7142; ad714x->product = 0x7148;
ad714x->version = data & 0xF; ad714x->version = data & 0xF;
dev_info(ad714x->dev, "found AD7142 captouch, rev:%d\n", dev_info(ad714x->dev, "found AD7148 captouch, rev:%d\n",
ad714x->version); ad714x->version);
return 0; return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册