mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-30 08:02:30 +00:00
Input: ad714x - add support for the AD7143/8/7A parts
Signed-off-by: Barry Song <barry.song@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
parent
31a6296333
commit
6c04d7b3cf
3 changed files with 29 additions and 10 deletions
|
@ -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)
|
||||||
|
|
||||||
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);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* 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 @@
|
||||||
#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,13 +964,6 @@ 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 AD7147_PARTID:
|
|
||||||
ad714x->product = 0x7147;
|
|
||||||
ad714x->version = data & 0xF;
|
|
||||||
dev_info(ad714x->dev, "found AD7147 captouch, rev:%d\n",
|
|
||||||
ad714x->version);
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
case AD7142_PARTID:
|
case AD7142_PARTID:
|
||||||
ad714x->product = 0x7142;
|
ad714x->product = 0x7142;
|
||||||
ad714x->version = data & 0xF;
|
ad714x->version = data & 0xF;
|
||||||
|
@ -976,6 +971,27 @@ static int ad714x_hw_detect(struct ad714x_chip *ad714x)
|
||||||
ad714x->version);
|
ad714x->version);
|
||||||
return 0;
|
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:
|
||||||
|
ad714x->product = 0x7147;
|
||||||
|
ad714x->version = data & 0xF;
|
||||||
|
dev_info(ad714x->dev, "found AD7147(A) captouch, rev:%d\n",
|
||||||
|
ad714x->version);
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
case AD7148_PARTID:
|
||||||
|
ad714x->product = 0x7148;
|
||||||
|
ad714x->version = data & 0xF;
|
||||||
|
dev_info(ad714x->dev, "found AD7148 captouch, rev:%d\n",
|
||||||
|
ad714x->version);
|
||||||
|
return 0;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
dev_err(ad714x->dev,
|
dev_err(ad714x->dev,
|
||||||
"fail to detect AD714X captouch, read ID is %04x\n",
|
"fail to detect AD714X captouch, read ID is %04x\n",
|
||||||
|
|
Loading…
Reference in a new issue