Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6c04d7b3 authored by Barry Song's avatar Barry Song Committed by Dmitry Torokhov
Browse files

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

parent 31a62963
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ config INPUT_88PM860X_ONKEY
config INPUT_AD714X
	tristate "Analog Devices AD714x Capacitance Touch Sensor"
	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.

+3 −0
Original line number Diff line number Diff line
@@ -104,7 +104,10 @@ static int __devexit ad714x_i2c_remove(struct i2c_client *client)

static const struct i2c_device_id ad714x_id[] = {
	{ "ad7142_captouch", 0 },
	{ "ad7143_captouch", 0 },
	{ "ad7147_captouch", 0 },
	{ "ad7147a_captouch", 0 },
	{ "ad7148_captouch", 0 },
	{ }
};
MODULE_DEVICE_TABLE(i2c, ad714x_id);
+22 −6
Original line number Diff line number Diff line
/*
 * AD714X CapTouch Programmable Controller driver
 * AD714X CapTouch Programmable Controller driver supporting AD7142/3/7/8/7A
 *
 * Copyright 2009 Analog Devices Inc.
 *
@@ -18,8 +18,10 @@
#define AD714X_STG_CAL_EN_REG     0x1
#define AD714X_AMB_COMP_CTRL0_REG 0x2
#define AD714X_PARTID_REG         0x17
#define AD7147_PARTID             0x1470
#define AD7142_PARTID             0xE620
#define AD7143_PARTID             0xE630
#define AD7147_PARTID             0x1470
#define AD7148_PARTID             0x1480
#define AD714X_STAGECFG_REG       0x80
#define AD714X_SYSCFG_REG         0x0

@@ -962,17 +964,31 @@ static int ad714x_hw_detect(struct ad714x_chip *ad714x)

	ad714x->read(ad714x->dev, AD714X_PARTID_REG, &data);
	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:
		ad714x->product = 0x7147;
		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);
		return 0;

	case AD7142_PARTID:
		ad714x->product = 0x7142;
	case AD7148_PARTID:
		ad714x->product = 0x7148;
		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);
		return 0;