ad714x.c (31a6296333b94964e9a073649840bb34d4603369) | ad714x.c (6c04d7b3cf50a393f07f22a661d05d15db5dc6f6) |
---|---|
1/* | 1/* |
2 * AD714X CapTouch Programmable Controller driver | 2 * AD714X CapTouch Programmable Controller driver supporting AD7142/3/7/8/7A |
3 * 4 * Copyright 2009 Analog Devices Inc. 5 * 6 * Licensed under the GPL-2 or later. 7 */ 8 9#include <linux/device.h> 10#include <linux/init.h> 11#include <linux/input.h> 12#include <linux/interrupt.h> 13#include <linux/slab.h> 14#include <linux/input/ad714x.h> 15#include "ad714x.h" 16 17#define AD714X_PWR_CTRL 0x0 18#define AD714X_STG_CAL_EN_REG 0x1 19#define AD714X_AMB_COMP_CTRL0_REG 0x2 20#define AD714X_PARTID_REG 0x17 | 3 * 4 * Copyright 2009 Analog Devices Inc. 5 * 6 * Licensed under the GPL-2 or later. 7 */ 8 9#include <linux/device.h> 10#include <linux/init.h> 11#include <linux/input.h> 12#include <linux/interrupt.h> 13#include <linux/slab.h> 14#include <linux/input/ad714x.h> 15#include "ad714x.h" 16 17#define AD714X_PWR_CTRL 0x0 18#define AD714X_STG_CAL_EN_REG 0x1 19#define AD714X_AMB_COMP_CTRL0_REG 0x2 20#define AD714X_PARTID_REG 0x17 |
21#define AD7147_PARTID 0x1470 | |
22#define AD7142_PARTID 0xE620 | 21#define AD7142_PARTID 0xE620 |
22#define AD7143_PARTID 0xE630 23#define AD7147_PARTID 0x1470 24#define AD7148_PARTID 0x1480 |
|
23#define AD714X_STAGECFG_REG 0x80 24#define AD714X_SYSCFG_REG 0x0 25 26#define STG_LOW_INT_EN_REG 0x5 27#define STG_HIGH_INT_EN_REG 0x6 28#define STG_COM_INT_EN_REG 0x7 29#define STG_LOW_INT_STA_REG 0x8 30#define STG_HIGH_INT_STA_REG 0x9 --- 926 unchanged lines hidden (view full) --- 957} 958 959static int ad714x_hw_detect(struct ad714x_chip *ad714x) 960{ 961 unsigned short data; 962 963 ad714x->read(ad714x->dev, AD714X_PARTID_REG, &data); 964 switch (data & 0xFFF0) { | 25#define AD714X_STAGECFG_REG 0x80 26#define AD714X_SYSCFG_REG 0x0 27 28#define STG_LOW_INT_EN_REG 0x5 29#define STG_HIGH_INT_EN_REG 0x6 30#define STG_COM_INT_EN_REG 0x7 31#define STG_LOW_INT_STA_REG 0x8 32#define STG_HIGH_INT_STA_REG 0x9 --- 926 unchanged lines hidden (view full) --- 959} 960 961static int ad714x_hw_detect(struct ad714x_chip *ad714x) 962{ 963 unsigned short data; 964 965 ad714x->read(ad714x->dev, AD714X_PARTID_REG, &data); 966 switch (data & 0xFFF0) { |
967 case AD7142_PARTID: 968 ad714x->product = 0x7142; 969 ad714x->version = data & 0xF; 970 dev_info(ad714x->dev, "found AD7142 captouch, rev:%d\n", 971 ad714x->version); 972 return 0; 973 974 case AD7143_PARTID: 975 ad714x->product = 0x7143; 976 ad714x->version = data & 0xF; 977 dev_info(ad714x->dev, "found AD7143 captouch, rev:%d\n", 978 ad714x->version); 979 return 0; 980 |
|
965 case AD7147_PARTID: 966 ad714x->product = 0x7147; 967 ad714x->version = data & 0xF; | 981 case AD7147_PARTID: 982 ad714x->product = 0x7147; 983 ad714x->version = data & 0xF; |
968 dev_info(ad714x->dev, "found AD7147 captouch, rev:%d\n", | 984 dev_info(ad714x->dev, "found AD7147(A) captouch, rev:%d\n", |
969 ad714x->version); 970 return 0; 971 | 985 ad714x->version); 986 return 0; 987 |
972 case AD7142_PARTID: 973 ad714x->product = 0x7142; | 988 case AD7148_PARTID: 989 ad714x->product = 0x7148; |
974 ad714x->version = data & 0xF; | 990 ad714x->version = data & 0xF; |
975 dev_info(ad714x->dev, "found AD7142 captouch, rev:%d\n", | 991 dev_info(ad714x->dev, "found AD7148 captouch, rev:%d\n", |
976 ad714x->version); 977 return 0; 978 979 default: 980 dev_err(ad714x->dev, 981 "fail to detect AD714X captouch, read ID is %04x\n", 982 data); 983 return -ENODEV; --- 348 unchanged lines hidden --- | 992 ad714x->version); 993 return 0; 994 995 default: 996 dev_err(ad714x->dev, 997 "fail to detect AD714X captouch, read ID is %04x\n", 998 data); 999 return -ENODEV; --- 348 unchanged lines hidden --- |