diff options
| author | Michael Welling <mwelling@ieee.org> | 2015-11-02 20:51:49 -0500 |
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2015-11-03 17:54:01 -0500 |
| commit | ef3b98c2c3fc6a73ec1e98a463c38329e66c6b95 (patch) | |
| tree | fb7ad70f24fe1a1ac8efe277226e21766cdcc76d | |
| parent | 6ac2438132ae1f8b12285f9d97a4c8d6aa6f89f0 (diff) | |
Input: tsc200x-core - rename functions and variables
The functions, variables, and defines of the new tsc200x-core.c are
renamed to tsc200x instead of tsc2005 avoid possible confusion.
Signed-off-by: Michael Welling <mwelling@ieee.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
| -rw-r--r-- | drivers/input/touchscreen/tsc2005.c | 2 | ||||
| -rw-r--r-- | drivers/input/touchscreen/tsc200x-core.c | 200 | ||||
| -rw-r--r-- | drivers/input/touchscreen/tsc200x-core.h | 102 |
3 files changed, 152 insertions, 152 deletions
diff --git a/drivers/input/touchscreen/tsc2005.c b/drivers/input/touchscreen/tsc2005.c index b853f826ce9b..1bbe64c89a10 100644 --- a/drivers/input/touchscreen/tsc2005.c +++ b/drivers/input/touchscreen/tsc2005.c | |||
| @@ -26,7 +26,7 @@ | |||
| 26 | 26 | ||
| 27 | static int tsc2005_cmd(struct device *dev, u8 cmd) | 27 | static int tsc2005_cmd(struct device *dev, u8 cmd) |
| 28 | { | 28 | { |
| 29 | u8 tx = TSC2005_CMD | TSC2005_CMD_12BIT | cmd; | 29 | u8 tx = TSC200X_CMD | TSC200X_CMD_12BIT | cmd; |
| 30 | struct spi_transfer xfer = { | 30 | struct spi_transfer xfer = { |
| 31 | .tx_buf = &tx, | 31 | .tx_buf = &tx, |
| 32 | .len = 1, | 32 | .len = 1, |
diff --git a/drivers/input/touchscreen/tsc200x-core.c b/drivers/input/touchscreen/tsc200x-core.c index f2f3bc77a300..15240c1ee850 100644 --- a/drivers/input/touchscreen/tsc200x-core.c +++ b/drivers/input/touchscreen/tsc200x-core.c | |||
| @@ -37,28 +37,28 @@ | |||
| 37 | * The touchscreen interface operates as follows: | 37 | * The touchscreen interface operates as follows: |
| 38 | * | 38 | * |
| 39 | * 1) Pen is pressed against the touchscreen. | 39 | * 1) Pen is pressed against the touchscreen. |
| 40 | * 2) TSC2005 performs AD conversion. | 40 | * 2) TSC200X performs AD conversion. |
| 41 | * 3) After the conversion is done TSC2005 drives DAV line down. | 41 | * 3) After the conversion is done TSC200X drives DAV line down. |
| 42 | * 4) GPIO IRQ is received and tsc2005_irq_thread() is scheduled. | 42 | * 4) GPIO IRQ is received and tsc200x_irq_thread() is scheduled. |
| 43 | * 5) tsc2005_irq_thread() queues up a transfer to fetch the x, y, z1, z2 | 43 | * 5) tsc200x_irq_thread() queues up a transfer to fetch the x, y, z1, z2 |
| 44 | * values. | 44 | * values. |
| 45 | * 6) tsc2005_irq_thread() reports coordinates to input layer and sets up | 45 | * 6) tsc200x_irq_thread() reports coordinates to input layer and sets up |
| 46 | * tsc2005_penup_timer() to be called after TSC2005_PENUP_TIME_MS (40ms). | 46 | * tsc200x_penup_timer() to be called after TSC200X_PENUP_TIME_MS (40ms). |
| 47 | * 7) When the penup timer expires, there have not been touch or DAV interrupts | 47 | * 7) When the penup timer expires, there have not been touch or DAV interrupts |
| 48 | * during the last 40ms which means the pen has been lifted. | 48 | * during the last 40ms which means the pen has been lifted. |
| 49 | * | 49 | * |
| 50 | * ESD recovery via a hardware reset is done if the TSC2005 doesn't respond | 50 | * ESD recovery via a hardware reset is done if the TSC200X doesn't respond |
| 51 | * after a configurable period (in ms) of activity. If esd_timeout is 0, the | 51 | * after a configurable period (in ms) of activity. If esd_timeout is 0, the |
| 52 | * watchdog is disabled. | 52 | * watchdog is disabled. |
| 53 | */ | 53 | */ |
| 54 | 54 | ||
| 55 | static const struct regmap_range tsc2005_writable_ranges[] = { | 55 | static const struct regmap_range tsc200x_writable_ranges[] = { |
| 56 | regmap_reg_range(TSC2005_REG_AUX_HIGH, TSC2005_REG_CFR2), | 56 | regmap_reg_range(TSC200X_REG_AUX_HIGH, TSC200X_REG_CFR2), |
| 57 | }; | 57 | }; |
| 58 | 58 | ||
| 59 | static const struct regmap_access_table tsc2005_writable_table = { | 59 | static const struct regmap_access_table tsc200x_writable_table = { |
| 60 | .yes_ranges = tsc2005_writable_ranges, | 60 | .yes_ranges = tsc200x_writable_ranges, |
| 61 | .n_yes_ranges = ARRAY_SIZE(tsc2005_writable_ranges), | 61 | .n_yes_ranges = ARRAY_SIZE(tsc200x_writable_ranges), |
| 62 | }; | 62 | }; |
| 63 | 63 | ||
| 64 | const struct regmap_config tsc200x_regmap_config = { | 64 | const struct regmap_config tsc200x_regmap_config = { |
| @@ -66,22 +66,22 @@ const struct regmap_config tsc200x_regmap_config = { | |||
| 66 | .val_bits = 16, | 66 | .val_bits = 16, |
| 67 | .reg_stride = 0x08, | 67 | .reg_stride = 0x08, |
| 68 | .max_register = 0x78, | 68 | .max_register = 0x78, |
| 69 | .read_flag_mask = TSC2005_REG_READ, | 69 | .read_flag_mask = TSC200X_REG_READ, |
| 70 | .write_flag_mask = TSC2005_REG_PND0, | 70 | .write_flag_mask = TSC200X_REG_PND0, |
| 71 | .wr_table = &tsc2005_writable_table, | 71 | .wr_table = &tsc200x_writable_table, |
| 72 | .use_single_rw = true, | 72 | .use_single_rw = true, |
| 73 | }; | 73 | }; |
| 74 | EXPORT_SYMBOL_GPL(tsc200x_regmap_config); | 74 | EXPORT_SYMBOL_GPL(tsc200x_regmap_config); |
| 75 | 75 | ||
| 76 | struct tsc2005_data { | 76 | struct tsc200x_data { |
| 77 | u16 x; | 77 | u16 x; |
| 78 | u16 y; | 78 | u16 y; |
| 79 | u16 z1; | 79 | u16 z1; |
| 80 | u16 z2; | 80 | u16 z2; |
| 81 | } __packed; | 81 | } __packed; |
| 82 | #define TSC2005_DATA_REGS 4 | 82 | #define TSC200X_DATA_REGS 4 |
| 83 | 83 | ||
| 84 | struct tsc2005 { | 84 | struct tsc200x { |
| 85 | struct device *dev; | 85 | struct device *dev; |
| 86 | struct regmap *regmap; | 86 | struct regmap *regmap; |
| 87 | __u16 bustype; | 87 | __u16 bustype; |
| @@ -119,7 +119,7 @@ struct tsc2005 { | |||
| 119 | int irq; | 119 | int irq; |
| 120 | }; | 120 | }; |
| 121 | 121 | ||
| 122 | static void tsc2005_update_pen_state(struct tsc2005 *ts, | 122 | static void tsc200x_update_pen_state(struct tsc200x *ts, |
| 123 | int x, int y, int pressure) | 123 | int x, int y, int pressure) |
| 124 | { | 124 | { |
| 125 | if (pressure) { | 125 | if (pressure) { |
| @@ -142,17 +142,17 @@ static void tsc2005_update_pen_state(struct tsc2005 *ts, | |||
| 142 | pressure); | 142 | pressure); |
| 143 | } | 143 | } |
| 144 | 144 | ||
| 145 | static irqreturn_t tsc2005_irq_thread(int irq, void *_ts) | 145 | static irqreturn_t tsc200x_irq_thread(int irq, void *_ts) |
| 146 | { | 146 | { |
| 147 | struct tsc2005 *ts = _ts; | 147 | struct tsc200x *ts = _ts; |
| 148 | unsigned long flags; | 148 | unsigned long flags; |
| 149 | unsigned int pressure; | 149 | unsigned int pressure; |
| 150 | struct tsc2005_data tsdata; | 150 | struct tsc200x_data tsdata; |
| 151 | int error; | 151 | int error; |
| 152 | 152 | ||
| 153 | /* read the coordinates */ | 153 | /* read the coordinates */ |
| 154 | error = regmap_bulk_read(ts->regmap, TSC2005_REG_X, &tsdata, | 154 | error = regmap_bulk_read(ts->regmap, TSC200X_REG_X, &tsdata, |
| 155 | TSC2005_DATA_REGS); | 155 | TSC200X_DATA_REGS); |
| 156 | if (unlikely(error)) | 156 | if (unlikely(error)) |
| 157 | goto out; | 157 | goto out; |
| 158 | 158 | ||
| @@ -193,9 +193,9 @@ static irqreturn_t tsc2005_irq_thread(int irq, void *_ts) | |||
| 193 | 193 | ||
| 194 | spin_lock_irqsave(&ts->lock, flags); | 194 | spin_lock_irqsave(&ts->lock, flags); |
| 195 | 195 | ||
| 196 | tsc2005_update_pen_state(ts, tsdata.x, tsdata.y, pressure); | 196 | tsc200x_update_pen_state(ts, tsdata.x, tsdata.y, pressure); |
| 197 | mod_timer(&ts->penup_timer, | 197 | mod_timer(&ts->penup_timer, |
| 198 | jiffies + msecs_to_jiffies(TSC2005_PENUP_TIME_MS)); | 198 | jiffies + msecs_to_jiffies(TSC200X_PENUP_TIME_MS)); |
| 199 | 199 | ||
| 200 | spin_unlock_irqrestore(&ts->lock, flags); | 200 | spin_unlock_irqrestore(&ts->lock, flags); |
| 201 | 201 | ||
| @@ -204,30 +204,30 @@ out: | |||
| 204 | return IRQ_HANDLED; | 204 | return IRQ_HANDLED; |
| 205 | } | 205 | } |
| 206 | 206 | ||
| 207 | static void tsc2005_penup_timer(unsigned long data) | 207 | static void tsc200x_penup_timer(unsigned long data) |
| 208 | { | 208 | { |
| 209 | struct tsc2005 *ts = (struct tsc2005 *)data; | 209 | struct tsc200x *ts = (struct tsc200x *)data; |
| 210 | unsigned long flags; | 210 | unsigned long flags; |
| 211 | 211 | ||
| 212 | spin_lock_irqsave(&ts->lock, flags); | 212 | spin_lock_irqsave(&ts->lock, flags); |
| 213 | tsc2005_update_pen_state(ts, 0, 0, 0); | 213 | tsc200x_update_pen_state(ts, 0, 0, 0); |
| 214 | spin_unlock_irqrestore(&ts->lock, flags); | 214 | spin_unlock_irqrestore(&ts->lock, flags); |
| 215 | } | 215 | } |
| 216 | 216 | ||
| 217 | static void tsc2005_start_scan(struct tsc2005 *ts) | 217 | static void tsc200x_start_scan(struct tsc200x *ts) |
| 218 | { | 218 | { |
| 219 | regmap_write(ts->regmap, TSC2005_REG_CFR0, TSC2005_CFR0_INITVALUE); | 219 | regmap_write(ts->regmap, TSC200X_REG_CFR0, TSC200X_CFR0_INITVALUE); |
| 220 | regmap_write(ts->regmap, TSC2005_REG_CFR1, TSC2005_CFR1_INITVALUE); | 220 | regmap_write(ts->regmap, TSC200X_REG_CFR1, TSC200X_CFR1_INITVALUE); |
| 221 | regmap_write(ts->regmap, TSC2005_REG_CFR2, TSC2005_CFR2_INITVALUE); | 221 | regmap_write(ts->regmap, TSC200X_REG_CFR2, TSC200X_CFR2_INITVALUE); |
| 222 | ts->tsc200x_cmd(ts->dev, TSC2005_CMD_NORMAL); | 222 | ts->tsc200x_cmd(ts->dev, TSC200X_CMD_NORMAL); |
| 223 | } | 223 | } |
| 224 | 224 | ||
| 225 | static void tsc2005_stop_scan(struct tsc2005 *ts) | 225 | static void tsc200x_stop_scan(struct tsc200x *ts) |
| 226 | { | 226 | { |
| 227 | ts->tsc200x_cmd(ts->dev, TSC2005_CMD_STOP); | 227 | ts->tsc200x_cmd(ts->dev, TSC200X_CMD_STOP); |
| 228 | } | 228 | } |
| 229 | 229 | ||
| 230 | static void tsc2005_set_reset(struct tsc2005 *ts, bool enable) | 230 | static void tsc200x_set_reset(struct tsc200x *ts, bool enable) |
| 231 | { | 231 | { |
| 232 | if (ts->reset_gpio) | 232 | if (ts->reset_gpio) |
| 233 | gpiod_set_value_cansleep(ts->reset_gpio, enable); | 233 | gpiod_set_value_cansleep(ts->reset_gpio, enable); |
| @@ -236,9 +236,9 @@ static void tsc2005_set_reset(struct tsc2005 *ts, bool enable) | |||
| 236 | } | 236 | } |
| 237 | 237 | ||
| 238 | /* must be called with ts->mutex held */ | 238 | /* must be called with ts->mutex held */ |
| 239 | static void __tsc2005_disable(struct tsc2005 *ts) | 239 | static void __tsc200x_disable(struct tsc200x *ts) |
| 240 | { | 240 | { |
| 241 | tsc2005_stop_scan(ts); | 241 | tsc200x_stop_scan(ts); |
| 242 | 242 | ||
| 243 | disable_irq(ts->irq); | 243 | disable_irq(ts->irq); |
| 244 | del_timer_sync(&ts->penup_timer); | 244 | del_timer_sync(&ts->penup_timer); |
| @@ -249,9 +249,9 @@ static void __tsc2005_disable(struct tsc2005 *ts) | |||
| 249 | } | 249 | } |
| 250 | 250 | ||
| 251 | /* must be called with ts->mutex held */ | 251 | /* must be called with ts->mutex held */ |
| 252 | static void __tsc2005_enable(struct tsc2005 *ts) | 252 | static void __tsc200x_enable(struct tsc200x *ts) |
| 253 | { | 253 | { |
| 254 | tsc2005_start_scan(ts); | 254 | tsc200x_start_scan(ts); |
| 255 | 255 | ||
| 256 | if (ts->esd_timeout && (ts->set_reset || ts->reset_gpio)) { | 256 | if (ts->esd_timeout && (ts->set_reset || ts->reset_gpio)) { |
| 257 | ts->last_valid_interrupt = jiffies; | 257 | ts->last_valid_interrupt = jiffies; |
| @@ -261,11 +261,11 @@ static void __tsc2005_enable(struct tsc2005 *ts) | |||
| 261 | } | 261 | } |
| 262 | } | 262 | } |
| 263 | 263 | ||
| 264 | static ssize_t tsc2005_selftest_show(struct device *dev, | 264 | static ssize_t tsc200x_selftest_show(struct device *dev, |
| 265 | struct device_attribute *attr, | 265 | struct device_attribute *attr, |
| 266 | char *buf) | 266 | char *buf) |
| 267 | { | 267 | { |
| 268 | struct tsc2005 *ts = dev_get_drvdata(dev); | 268 | struct tsc200x *ts = dev_get_drvdata(dev); |
| 269 | unsigned int temp_high; | 269 | unsigned int temp_high; |
| 270 | unsigned int temp_high_orig; | 270 | unsigned int temp_high_orig; |
| 271 | unsigned int temp_high_test; | 271 | unsigned int temp_high_test; |
| @@ -275,11 +275,11 @@ static ssize_t tsc2005_selftest_show(struct device *dev, | |||
| 275 | mutex_lock(&ts->mutex); | 275 | mutex_lock(&ts->mutex); |
| 276 | 276 | ||
| 277 | /* | 277 | /* |
| 278 | * Test TSC2005 communications via temp high register. | 278 | * Test TSC200X communications via temp high register. |
| 279 | */ | 279 | */ |
| 280 | __tsc2005_disable(ts); | 280 | __tsc200x_disable(ts); |
| 281 | 281 | ||
| 282 | error = regmap_read(ts->regmap, TSC2005_REG_TEMP_HIGH, &temp_high_orig); | 282 | error = regmap_read(ts->regmap, TSC200X_REG_TEMP_HIGH, &temp_high_orig); |
| 283 | if (error) { | 283 | if (error) { |
| 284 | dev_warn(dev, "selftest failed: read error %d\n", error); | 284 | dev_warn(dev, "selftest failed: read error %d\n", error); |
| 285 | success = false; | 285 | success = false; |
| @@ -288,14 +288,14 @@ static ssize_t tsc2005_selftest_show(struct device *dev, | |||
| 288 | 288 | ||
| 289 | temp_high_test = (temp_high_orig - 1) & MAX_12BIT; | 289 | temp_high_test = (temp_high_orig - 1) & MAX_12BIT; |
| 290 | 290 | ||
| 291 | error = regmap_write(ts->regmap, TSC2005_REG_TEMP_HIGH, temp_high_test); | 291 | error = regmap_write(ts->regmap, TSC200X_REG_TEMP_HIGH, temp_high_test); |
| 292 | if (error) { | 292 | if (error) { |
| 293 | dev_warn(dev, "selftest failed: write error %d\n", error); | 293 | dev_warn(dev, "selftest failed: write error %d\n", error); |
| 294 | success = false; | 294 | success = false; |
| 295 | goto out; | 295 | goto out; |
| 296 | } | 296 | } |
| 297 | 297 | ||
| 298 | error = regmap_read(ts->regmap, TSC2005_REG_TEMP_HIGH, &temp_high); | 298 | error = regmap_read(ts->regmap, TSC200X_REG_TEMP_HIGH, &temp_high); |
| 299 | if (error) { | 299 | if (error) { |
| 300 | dev_warn(dev, "selftest failed: read error %d after write\n", | 300 | dev_warn(dev, "selftest failed: read error %d after write\n", |
| 301 | error); | 301 | error); |
| @@ -310,15 +310,15 @@ static ssize_t tsc2005_selftest_show(struct device *dev, | |||
| 310 | } | 310 | } |
| 311 | 311 | ||
| 312 | /* hardware reset */ | 312 | /* hardware reset */ |
| 313 | tsc2005_set_reset(ts, false); | 313 | tsc200x_set_reset(ts, false); |
| 314 | usleep_range(100, 500); /* only 10us required */ | 314 | usleep_range(100, 500); /* only 10us required */ |
| 315 | tsc2005_set_reset(ts, true); | 315 | tsc200x_set_reset(ts, true); |
| 316 | 316 | ||
| 317 | if (!success) | 317 | if (!success) |
| 318 | goto out; | 318 | goto out; |
| 319 | 319 | ||
| 320 | /* test that the reset really happened */ | 320 | /* test that the reset really happened */ |
| 321 | error = regmap_read(ts->regmap, TSC2005_REG_TEMP_HIGH, &temp_high); | 321 | error = regmap_read(ts->regmap, TSC200X_REG_TEMP_HIGH, &temp_high); |
| 322 | if (error) { | 322 | if (error) { |
| 323 | dev_warn(dev, "selftest failed: read error %d after reset\n", | 323 | dev_warn(dev, "selftest failed: read error %d after reset\n", |
| 324 | error); | 324 | error); |
| @@ -333,24 +333,24 @@ static ssize_t tsc2005_selftest_show(struct device *dev, | |||
| 333 | } | 333 | } |
| 334 | 334 | ||
| 335 | out: | 335 | out: |
| 336 | __tsc2005_enable(ts); | 336 | __tsc200x_enable(ts); |
| 337 | mutex_unlock(&ts->mutex); | 337 | mutex_unlock(&ts->mutex); |
| 338 | 338 | ||
| 339 | return sprintf(buf, "%d\n", success); | 339 | return sprintf(buf, "%d\n", success); |
| 340 | } | 340 | } |
| 341 | 341 | ||
| 342 | static DEVICE_ATTR(selftest, S_IRUGO, tsc2005_selftest_show, NULL); | 342 | static DEVICE_ATTR(selftest, S_IRUGO, tsc200x_selftest_show, NULL); |
| 343 | 343 | ||
| 344 | static struct attribute *tsc2005_attrs[] = { | 344 | static struct attribute *tsc200x_attrs[] = { |
| 345 | &dev_attr_selftest.attr, | 345 | &dev_attr_selftest.attr, |
| 346 | NULL | 346 | NULL |
| 347 | }; | 347 | }; |
| 348 | 348 | ||
| 349 | static umode_t tsc2005_attr_is_visible(struct kobject *kobj, | 349 | static umode_t tsc200x_attr_is_visible(struct kobject *kobj, |
| 350 | struct attribute *attr, int n) | 350 | struct attribute *attr, int n) |
| 351 | { | 351 | { |
| 352 | struct device *dev = container_of(kobj, struct device, kobj); | 352 | struct device *dev = container_of(kobj, struct device, kobj); |
| 353 | struct tsc2005 *ts = dev_get_drvdata(dev); | 353 | struct tsc200x *ts = dev_get_drvdata(dev); |
| 354 | umode_t mode = attr->mode; | 354 | umode_t mode = attr->mode; |
| 355 | 355 | ||
| 356 | if (attr == &dev_attr_selftest.attr) { | 356 | if (attr == &dev_attr_selftest.attr) { |
| @@ -361,14 +361,14 @@ static umode_t tsc2005_attr_is_visible(struct kobject *kobj, | |||
| 361 | return mode; | 361 | return mode; |
| 362 | } | 362 | } |
| 363 | 363 | ||
| 364 | static const struct attribute_group tsc2005_attr_group = { | 364 | static const struct attribute_group tsc200x_attr_group = { |
| 365 | .is_visible = tsc2005_attr_is_visible, | 365 | .is_visible = tsc200x_attr_is_visible, |
| 366 | .attrs = tsc2005_attrs, | 366 | .attrs = tsc200x_attrs, |
| 367 | }; | 367 | }; |
| 368 | 368 | ||
| 369 | static void tsc2005_esd_work(struct work_struct *work) | 369 | static void tsc200x_esd_work(struct work_struct *work) |
| 370 | { | 370 | { |
| 371 | struct tsc2005 *ts = container_of(work, struct tsc2005, esd_work.work); | 371 | struct tsc200x *ts = container_of(work, struct tsc200x, esd_work.work); |
| 372 | int error; | 372 | int error; |
| 373 | unsigned int r; | 373 | unsigned int r; |
| 374 | 374 | ||
| @@ -386,9 +386,9 @@ static void tsc2005_esd_work(struct work_struct *work) | |||
| 386 | goto out; | 386 | goto out; |
| 387 | 387 | ||
| 388 | /* We should be able to read register without disabling interrupts. */ | 388 | /* We should be able to read register without disabling interrupts. */ |
| 389 | error = regmap_read(ts->regmap, TSC2005_REG_CFR0, &r); | 389 | error = regmap_read(ts->regmap, TSC200X_REG_CFR0, &r); |
| 390 | if (!error && | 390 | if (!error && |
| 391 | !((r ^ TSC2005_CFR0_INITVALUE) & TSC2005_CFR0_RW_MASK)) { | 391 | !((r ^ TSC200X_CFR0_INITVALUE) & TSC200X_CFR0_RW_MASK)) { |
| 392 | goto out; | 392 | goto out; |
| 393 | } | 393 | } |
| 394 | 394 | ||
| @@ -397,19 +397,19 @@ static void tsc2005_esd_work(struct work_struct *work) | |||
| 397 | * then we should reset the controller as if from power-up and start | 397 | * then we should reset the controller as if from power-up and start |
| 398 | * scanning again. | 398 | * scanning again. |
| 399 | */ | 399 | */ |
| 400 | dev_info(ts->dev, "TSC2005 not responding - resetting\n"); | 400 | dev_info(ts->dev, "TSC200X not responding - resetting\n"); |
| 401 | 401 | ||
| 402 | disable_irq(ts->irq); | 402 | disable_irq(ts->irq); |
| 403 | del_timer_sync(&ts->penup_timer); | 403 | del_timer_sync(&ts->penup_timer); |
| 404 | 404 | ||
| 405 | tsc2005_update_pen_state(ts, 0, 0, 0); | 405 | tsc200x_update_pen_state(ts, 0, 0, 0); |
| 406 | 406 | ||
| 407 | tsc2005_set_reset(ts, false); | 407 | tsc200x_set_reset(ts, false); |
| 408 | usleep_range(100, 500); /* only 10us required */ | 408 | usleep_range(100, 500); /* only 10us required */ |
| 409 | tsc2005_set_reset(ts, true); | 409 | tsc200x_set_reset(ts, true); |
| 410 | 410 | ||
| 411 | enable_irq(ts->irq); | 411 | enable_irq(ts->irq); |
| 412 | tsc2005_start_scan(ts); | 412 | tsc200x_start_scan(ts); |
| 413 | 413 | ||
| 414 | out: | 414 | out: |
| 415 | mutex_unlock(&ts->mutex); | 415 | mutex_unlock(&ts->mutex); |
| @@ -420,14 +420,14 @@ reschedule: | |||
| 420 | msecs_to_jiffies(ts->esd_timeout))); | 420 | msecs_to_jiffies(ts->esd_timeout))); |
| 421 | } | 421 | } |
| 422 | 422 | ||
| 423 | static int tsc2005_open(struct input_dev *input) | 423 | static int tsc200x_open(struct input_dev *input) |
| 424 | { | 424 | { |
| 425 | struct tsc2005 *ts = input_get_drvdata(input); | 425 | struct tsc200x *ts = input_get_drvdata(input); |
| 426 | 426 | ||
| 427 | mutex_lock(&ts->mutex); | 427 | mutex_lock(&ts->mutex); |
| 428 | 428 | ||
| 429 | if (!ts->suspended) | 429 | if (!ts->suspended) |
| 430 | __tsc2005_enable(ts); | 430 | __tsc200x_enable(ts); |
| 431 | 431 | ||
| 432 | ts->opened = true; | 432 | ts->opened = true; |
| 433 | 433 | ||
| @@ -436,14 +436,14 @@ static int tsc2005_open(struct input_dev *input) | |||
| 436 | return 0; | 436 | return 0; |
| 437 | } | 437 | } |
| 438 | 438 | ||
| 439 | static void tsc2005_close(struct input_dev *input) | 439 | static void tsc200x_close(struct input_dev *input) |
| 440 | { | 440 | { |
| 441 | struct tsc2005 *ts = input_get_drvdata(input); | 441 | struct tsc200x *ts = input_get_drvdata(input); |
| 442 | 442 | ||
| 443 | mutex_lock(&ts->mutex); | 443 | mutex_lock(&ts->mutex); |
| 444 | 444 | ||
| 445 | if (!ts->suspended) | 445 | if (!ts->suspended) |
| 446 | __tsc2005_disable(ts); | 446 | __tsc200x_disable(ts); |
| 447 | 447 | ||
| 448 | ts->opened = false; | 448 | ts->opened = false; |
| 449 | 449 | ||
| @@ -457,15 +457,15 @@ int tsc200x_probe(struct device *dev, int irq, __u16 bustype, | |||
| 457 | const struct tsc2005_platform_data *pdata = dev_get_platdata(dev); | 457 | const struct tsc2005_platform_data *pdata = dev_get_platdata(dev); |
| 458 | struct device_node *np = dev->of_node; | 458 | struct device_node *np = dev->of_node; |
| 459 | 459 | ||
| 460 | struct tsc2005 *ts; | 460 | struct tsc200x *ts; |
| 461 | struct input_dev *input_dev; | 461 | struct input_dev *input_dev; |
| 462 | unsigned int max_x = MAX_12BIT; | 462 | unsigned int max_x = MAX_12BIT; |
| 463 | unsigned int max_y = MAX_12BIT; | 463 | unsigned int max_y = MAX_12BIT; |
| 464 | unsigned int max_p = MAX_12BIT; | 464 | unsigned int max_p = MAX_12BIT; |
| 465 | unsigned int fudge_x = TSC2005_DEF_X_FUZZ; | 465 | unsigned int fudge_x = TSC200X_DEF_X_FUZZ; |
| 466 | unsigned int fudge_y = TSC2005_DEF_Y_FUZZ; | 466 | unsigned int fudge_y = TSC200X_DEF_Y_FUZZ; |
| 467 | unsigned int fudge_p = TSC2005_DEF_P_FUZZ; | 467 | unsigned int fudge_p = TSC200X_DEF_P_FUZZ; |
| 468 | unsigned int x_plate_ohm = TSC2005_DEF_RESISTOR; | 468 | unsigned int x_plate_ohm = TSC200X_DEF_RESISTOR; |
| 469 | unsigned int esd_timeout; | 469 | unsigned int esd_timeout; |
| 470 | int error; | 470 | int error; |
| 471 | 471 | ||
| @@ -497,7 +497,7 @@ int tsc200x_probe(struct device *dev, int irq, __u16 bustype, | |||
| 497 | x_plate_ohm = pdata->ts_x_plate_ohm; | 497 | x_plate_ohm = pdata->ts_x_plate_ohm; |
| 498 | esd_timeout = pdata->esd_timeout_ms; | 498 | esd_timeout = pdata->esd_timeout_ms; |
| 499 | } else { | 499 | } else { |
| 500 | x_plate_ohm = TSC2005_DEF_RESISTOR; | 500 | x_plate_ohm = TSC200X_DEF_RESISTOR; |
| 501 | of_property_read_u32(np, "ti,x-plate-ohms", &x_plate_ohm); | 501 | of_property_read_u32(np, "ti,x-plate-ohms", &x_plate_ohm); |
| 502 | esd_timeout = 0; | 502 | esd_timeout = 0; |
| 503 | of_property_read_u32(np, "ti,esd-recovery-timeout-ms", | 503 | of_property_read_u32(np, "ti,esd-recovery-timeout-ms", |
| @@ -540,14 +540,14 @@ int tsc200x_probe(struct device *dev, int irq, __u16 bustype, | |||
| 540 | mutex_init(&ts->mutex); | 540 | mutex_init(&ts->mutex); |
| 541 | 541 | ||
| 542 | spin_lock_init(&ts->lock); | 542 | spin_lock_init(&ts->lock); |
| 543 | setup_timer(&ts->penup_timer, tsc2005_penup_timer, (unsigned long)ts); | 543 | setup_timer(&ts->penup_timer, tsc200x_penup_timer, (unsigned long)ts); |
| 544 | 544 | ||
| 545 | INIT_DELAYED_WORK(&ts->esd_work, tsc2005_esd_work); | 545 | INIT_DELAYED_WORK(&ts->esd_work, tsc200x_esd_work); |
| 546 | 546 | ||
| 547 | snprintf(ts->phys, sizeof(ts->phys), | 547 | snprintf(ts->phys, sizeof(ts->phys), |
| 548 | "%s/input-ts", dev_name(dev)); | 548 | "%s/input-ts", dev_name(dev)); |
| 549 | 549 | ||
| 550 | input_dev->name = "TSC2005 touchscreen"; | 550 | input_dev->name = "TSC200X touchscreen"; |
| 551 | input_dev->phys = ts->phys; | 551 | input_dev->phys = ts->phys; |
| 552 | input_dev->id.bustype = bustype; | 552 | input_dev->id.bustype = bustype; |
| 553 | input_dev->dev.parent = dev; | 553 | input_dev->dev.parent = dev; |
| @@ -561,18 +561,18 @@ int tsc200x_probe(struct device *dev, int irq, __u16 bustype, | |||
| 561 | if (np) | 561 | if (np) |
| 562 | touchscreen_parse_properties(input_dev, false); | 562 | touchscreen_parse_properties(input_dev, false); |
| 563 | 563 | ||
| 564 | input_dev->open = tsc2005_open; | 564 | input_dev->open = tsc200x_open; |
| 565 | input_dev->close = tsc2005_close; | 565 | input_dev->close = tsc200x_close; |
| 566 | 566 | ||
| 567 | input_set_drvdata(input_dev, ts); | 567 | input_set_drvdata(input_dev, ts); |
| 568 | 568 | ||
| 569 | /* Ensure the touchscreen is off */ | 569 | /* Ensure the touchscreen is off */ |
| 570 | tsc2005_stop_scan(ts); | 570 | tsc200x_stop_scan(ts); |
| 571 | 571 | ||
| 572 | error = devm_request_threaded_irq(dev, irq, NULL, | 572 | error = devm_request_threaded_irq(dev, irq, NULL, |
| 573 | tsc2005_irq_thread, | 573 | tsc200x_irq_thread, |
| 574 | IRQF_TRIGGER_RISING | IRQF_ONESHOT, | 574 | IRQF_TRIGGER_RISING | IRQF_ONESHOT, |
| 575 | "tsc2005", ts); | 575 | "tsc200x", ts); |
| 576 | if (error) { | 576 | if (error) { |
| 577 | dev_err(dev, "Failed to request irq, err: %d\n", error); | 577 | dev_err(dev, "Failed to request irq, err: %d\n", error); |
| 578 | return error; | 578 | return error; |
| @@ -586,7 +586,7 @@ int tsc200x_probe(struct device *dev, int irq, __u16 bustype, | |||
| 586 | } | 586 | } |
| 587 | 587 | ||
| 588 | dev_set_drvdata(dev, ts); | 588 | dev_set_drvdata(dev, ts); |
| 589 | error = sysfs_create_group(&dev->kobj, &tsc2005_attr_group); | 589 | error = sysfs_create_group(&dev->kobj, &tsc200x_attr_group); |
| 590 | if (error) { | 590 | if (error) { |
| 591 | dev_err(dev, | 591 | dev_err(dev, |
| 592 | "Failed to create sysfs attributes, err: %d\n", error); | 592 | "Failed to create sysfs attributes, err: %d\n", error); |
| @@ -604,7 +604,7 @@ int tsc200x_probe(struct device *dev, int irq, __u16 bustype, | |||
| 604 | return 0; | 604 | return 0; |
| 605 | 605 | ||
| 606 | err_remove_sysfs: | 606 | err_remove_sysfs: |
| 607 | sysfs_remove_group(&dev->kobj, &tsc2005_attr_group); | 607 | sysfs_remove_group(&dev->kobj, &tsc200x_attr_group); |
| 608 | disable_regulator: | 608 | disable_regulator: |
| 609 | if (ts->vio) | 609 | if (ts->vio) |
| 610 | regulator_disable(ts->vio); | 610 | regulator_disable(ts->vio); |
| @@ -614,9 +614,9 @@ EXPORT_SYMBOL_GPL(tsc200x_probe); | |||
| 614 | 614 | ||
| 615 | int tsc200x_remove(struct device *dev) | 615 | int tsc200x_remove(struct device *dev) |
| 616 | { | 616 | { |
| 617 | struct tsc2005 *ts = dev_get_drvdata(dev); | 617 | struct tsc200x *ts = dev_get_drvdata(dev); |
| 618 | 618 | ||
| 619 | sysfs_remove_group(&dev->kobj, &tsc2005_attr_group); | 619 | sysfs_remove_group(&dev->kobj, &tsc200x_attr_group); |
| 620 | 620 | ||
| 621 | if (ts->vio) | 621 | if (ts->vio) |
| 622 | regulator_disable(ts->vio); | 622 | regulator_disable(ts->vio); |
| @@ -625,14 +625,14 @@ int tsc200x_remove(struct device *dev) | |||
| 625 | } | 625 | } |
| 626 | EXPORT_SYMBOL_GPL(tsc200x_remove); | 626 | EXPORT_SYMBOL_GPL(tsc200x_remove); |
| 627 | 627 | ||
| 628 | static int __maybe_unused tsc2005_suspend(struct device *dev) | 628 | static int __maybe_unused tsc200x_suspend(struct device *dev) |
| 629 | { | 629 | { |
| 630 | struct tsc2005 *ts = dev_get_drvdata(dev); | 630 | struct tsc200x *ts = dev_get_drvdata(dev); |
| 631 | 631 | ||
| 632 | mutex_lock(&ts->mutex); | 632 | mutex_lock(&ts->mutex); |
| 633 | 633 | ||
| 634 | if (!ts->suspended && ts->opened) | 634 | if (!ts->suspended && ts->opened) |
| 635 | __tsc2005_disable(ts); | 635 | __tsc200x_disable(ts); |
| 636 | 636 | ||
| 637 | ts->suspended = true; | 637 | ts->suspended = true; |
| 638 | 638 | ||
| @@ -641,14 +641,14 @@ static int __maybe_unused tsc2005_suspend(struct device *dev) | |||
| 641 | return 0; | 641 | return 0; |
| 642 | } | 642 | } |
| 643 | 643 | ||
| 644 | static int __maybe_unused tsc2005_resume(struct device *dev) | 644 | static int __maybe_unused tsc200x_resume(struct device *dev) |
| 645 | { | 645 | { |
| 646 | struct tsc2005 *ts = dev_get_drvdata(dev); | 646 | struct tsc200x *ts = dev_get_drvdata(dev); |
| 647 | 647 | ||
| 648 | mutex_lock(&ts->mutex); | 648 | mutex_lock(&ts->mutex); |
| 649 | 649 | ||
| 650 | if (ts->suspended && ts->opened) | 650 | if (ts->suspended && ts->opened) |
| 651 | __tsc2005_enable(ts); | 651 | __tsc200x_enable(ts); |
| 652 | 652 | ||
| 653 | ts->suspended = false; | 653 | ts->suspended = false; |
| 654 | 654 | ||
| @@ -657,9 +657,9 @@ static int __maybe_unused tsc2005_resume(struct device *dev) | |||
| 657 | return 0; | 657 | return 0; |
| 658 | } | 658 | } |
| 659 | 659 | ||
| 660 | SIMPLE_DEV_PM_OPS(tsc200x_pm_ops, tsc2005_suspend, tsc2005_resume); | 660 | SIMPLE_DEV_PM_OPS(tsc200x_pm_ops, tsc200x_suspend, tsc200x_resume); |
| 661 | EXPORT_SYMBOL_GPL(tsc200x_pm_ops); | 661 | EXPORT_SYMBOL_GPL(tsc200x_pm_ops); |
| 662 | 662 | ||
| 663 | MODULE_AUTHOR("Lauri Leukkunen <lauri.leukkunen@nokia.com>"); | 663 | MODULE_AUTHOR("Lauri Leukkunen <lauri.leukkunen@nokia.com>"); |
| 664 | MODULE_DESCRIPTION("TSC2005 Touchscreen Driver"); | 664 | MODULE_DESCRIPTION("TSC200x Touchscreen Driver Core"); |
| 665 | MODULE_LICENSE("GPL"); | 665 | MODULE_LICENSE("GPL"); |
diff --git a/drivers/input/touchscreen/tsc200x-core.h b/drivers/input/touchscreen/tsc200x-core.h index 3169078298aa..7a482d102614 100644 --- a/drivers/input/touchscreen/tsc200x-core.h +++ b/drivers/input/touchscreen/tsc200x-core.h | |||
| @@ -2,70 +2,70 @@ | |||
| 2 | #define _TSC200X_CORE_H | 2 | #define _TSC200X_CORE_H |
| 3 | 3 | ||
| 4 | /* control byte 1 */ | 4 | /* control byte 1 */ |
| 5 | #define TSC2005_CMD 0x80 | 5 | #define TSC200X_CMD 0x80 |
| 6 | #define TSC2005_CMD_NORMAL 0x00 | 6 | #define TSC200X_CMD_NORMAL 0x00 |
| 7 | #define TSC2005_CMD_STOP 0x01 | 7 | #define TSC200X_CMD_STOP 0x01 |
| 8 | #define TSC2005_CMD_12BIT 0x04 | 8 | #define TSC200X_CMD_12BIT 0x04 |
| 9 | 9 | ||
| 10 | /* control byte 0 */ | 10 | /* control byte 0 */ |
| 11 | #define TSC2005_REG_READ 0x01 /* R/W access */ | 11 | #define TSC200X_REG_READ 0x01 /* R/W access */ |
| 12 | #define TSC2005_REG_PND0 0x02 /* Power Not Down Control */ | 12 | #define TSC200X_REG_PND0 0x02 /* Power Not Down Control */ |
| 13 | #define TSC2005_REG_X (0x0 << 3) | 13 | #define TSC200X_REG_X (0x0 << 3) |
| 14 | #define TSC2005_REG_Y (0x1 << 3) | 14 | #define TSC200X_REG_Y (0x1 << 3) |
| 15 | #define TSC2005_REG_Z1 (0x2 << 3) | 15 | #define TSC200X_REG_Z1 (0x2 << 3) |
| 16 | #define TSC2005_REG_Z2 (0x3 << 3) | 16 | #define TSC200X_REG_Z2 (0x3 << 3) |
| 17 | #define TSC2005_REG_AUX (0x4 << 3) | 17 | #define TSC200X_REG_AUX (0x4 << 3) |
| 18 | #define TSC2005_REG_TEMP1 (0x5 << 3) | 18 | #define TSC200X_REG_TEMP1 (0x5 << 3) |
| 19 | #define TSC2005_REG_TEMP2 (0x6 << 3) | 19 | #define TSC200X_REG_TEMP2 (0x6 << 3) |
| 20 | #define TSC2005_REG_STATUS (0x7 << 3) | 20 | #define TSC200X_REG_STATUS (0x7 << 3) |
| 21 | #define TSC2005_REG_AUX_HIGH (0x8 << 3) | 21 | #define TSC200X_REG_AUX_HIGH (0x8 << 3) |
| 22 | #define TSC2005_REG_AUX_LOW (0x9 << 3) | 22 | #define TSC200X_REG_AUX_LOW (0x9 << 3) |
| 23 | #define TSC2005_REG_TEMP_HIGH (0xA << 3) | 23 | #define TSC200X_REG_TEMP_HIGH (0xA << 3) |
| 24 | #define TSC2005_REG_TEMP_LOW (0xB << 3) | 24 | #define TSC200X_REG_TEMP_LOW (0xB << 3) |
| 25 | #define TSC2005_REG_CFR0 (0xC << 3) | 25 | #define TSC200X_REG_CFR0 (0xC << 3) |
| 26 | #define TSC2005_REG_CFR1 (0xD << 3) | 26 | #define TSC200X_REG_CFR1 (0xD << 3) |
| 27 | #define TSC2005_REG_CFR2 (0xE << 3) | 27 | #define TSC200X_REG_CFR2 (0xE << 3) |
| 28 | #define TSC2005_REG_CONV_FUNC (0xF << 3) | 28 | #define TSC200X_REG_CONV_FUNC (0xF << 3) |
| 29 | 29 | ||
| 30 | /* configuration register 0 */ | 30 | /* configuration register 0 */ |
| 31 | #define TSC2005_CFR0_PRECHARGE_276US 0x0040 | 31 | #define TSC200X_CFR0_PRECHARGE_276US 0x0040 |
| 32 | #define TSC2005_CFR0_STABTIME_1MS 0x0300 | 32 | #define TSC200X_CFR0_STABTIME_1MS 0x0300 |
| 33 | #define TSC2005_CFR0_CLOCK_1MHZ 0x1000 | 33 | #define TSC200X_CFR0_CLOCK_1MHZ 0x1000 |
| 34 | #define TSC2005_CFR0_RESOLUTION12 0x2000 | 34 | #define TSC200X_CFR0_RESOLUTION12 0x2000 |
| 35 | #define TSC2005_CFR0_PENMODE 0x8000 | 35 | #define TSC200X_CFR0_PENMODE 0x8000 |
| 36 | #define TSC2005_CFR0_INITVALUE (TSC2005_CFR0_STABTIME_1MS | \ | 36 | #define TSC200X_CFR0_INITVALUE (TSC200X_CFR0_STABTIME_1MS | \ |
| 37 | TSC2005_CFR0_CLOCK_1MHZ | \ | 37 | TSC200X_CFR0_CLOCK_1MHZ | \ |
| 38 | TSC2005_CFR0_RESOLUTION12 | \ | 38 | TSC200X_CFR0_RESOLUTION12 | \ |
| 39 | TSC2005_CFR0_PRECHARGE_276US | \ | 39 | TSC200X_CFR0_PRECHARGE_276US | \ |
| 40 | TSC2005_CFR0_PENMODE) | 40 | TSC200X_CFR0_PENMODE) |
| 41 | 41 | ||
| 42 | /* bits common to both read and write of configuration register 0 */ | 42 | /* bits common to both read and write of configuration register 0 */ |
| 43 | #define TSC2005_CFR0_RW_MASK 0x3fff | 43 | #define TSC200X_CFR0_RW_MASK 0x3fff |
| 44 | 44 | ||
| 45 | /* configuration register 1 */ | 45 | /* configuration register 1 */ |
| 46 | #define TSC2005_CFR1_BATCHDELAY_4MS 0x0003 | 46 | #define TSC200X_CFR1_BATCHDELAY_4MS 0x0003 |
| 47 | #define TSC2005_CFR1_INITVALUE TSC2005_CFR1_BATCHDELAY_4MS | 47 | #define TSC200X_CFR1_INITVALUE TSC200X_CFR1_BATCHDELAY_4MS |
| 48 | 48 | ||
| 49 | /* configuration register 2 */ | 49 | /* configuration register 2 */ |
| 50 | #define TSC2005_CFR2_MAVE_Z 0x0004 | 50 | #define TSC200X_CFR2_MAVE_Z 0x0004 |
| 51 | #define TSC2005_CFR2_MAVE_Y 0x0008 | 51 | #define TSC200X_CFR2_MAVE_Y 0x0008 |
| 52 | #define TSC2005_CFR2_MAVE_X 0x0010 | 52 | #define TSC200X_CFR2_MAVE_X 0x0010 |
| 53 | #define TSC2005_CFR2_AVG_7 0x0800 | 53 | #define TSC200X_CFR2_AVG_7 0x0800 |
| 54 | #define TSC2005_CFR2_MEDIUM_15 0x3000 | 54 | #define TSC200X_CFR2_MEDIUM_15 0x3000 |
| 55 | #define TSC2005_CFR2_INITVALUE (TSC2005_CFR2_MAVE_X | \ | 55 | #define TSC200X_CFR2_INITVALUE (TSC200X_CFR2_MAVE_X | \ |
| 56 | TSC2005_CFR2_MAVE_Y | \ | 56 | TSC200X_CFR2_MAVE_Y | \ |
| 57 | TSC2005_CFR2_MAVE_Z | \ | 57 | TSC200X_CFR2_MAVE_Z | \ |
| 58 | TSC2005_CFR2_MEDIUM_15 | \ | 58 | TSC200X_CFR2_MEDIUM_15 | \ |
| 59 | TSC2005_CFR2_AVG_7) | 59 | TSC200X_CFR2_AVG_7) |
| 60 | 60 | ||
| 61 | #define MAX_12BIT 0xfff | 61 | #define MAX_12BIT 0xfff |
| 62 | #define TSC2005_DEF_X_FUZZ 4 | 62 | #define TSC200X_DEF_X_FUZZ 4 |
| 63 | #define TSC2005_DEF_Y_FUZZ 8 | 63 | #define TSC200X_DEF_Y_FUZZ 8 |
| 64 | #define TSC2005_DEF_P_FUZZ 2 | 64 | #define TSC200X_DEF_P_FUZZ 2 |
| 65 | #define TSC2005_DEF_RESISTOR 280 | 65 | #define TSC200X_DEF_RESISTOR 280 |
| 66 | 66 | ||
| 67 | #define TSC2005_SPI_MAX_SPEED_HZ 10000000 | 67 | #define TSC2005_SPI_MAX_SPEED_HZ 10000000 |
| 68 | #define TSC2005_PENUP_TIME_MS 40 | 68 | #define TSC200X_PENUP_TIME_MS 40 |
| 69 | 69 | ||
| 70 | extern const struct regmap_config tsc200x_regmap_config; | 70 | extern const struct regmap_config tsc200x_regmap_config; |
| 71 | extern const struct dev_pm_ops tsc200x_pm_ops; | 71 | extern const struct dev_pm_ops tsc200x_pm_ops; |
