Philippe Mathieu-Daudé | a331dd0 | 2019-04-12 18:54:12 +0200 | [diff] [blame] | 1 | /* |
| 2 | * TI touchscreen controller |
| 3 | * |
| 4 | * Copyright (c) 2006 Andrzej Zaborowski |
| 5 | * Copyright (C) 2008 Nokia Corporation |
| 6 | * |
| 7 | * This work is licensed under the terms of the GNU GPL, version 2 or later. |
| 8 | * See the COPYING file in the top-level directory. |
| 9 | */ |
| 10 | |
| 11 | #ifndef HW_INPUT_TSC2XXX_H |
| 12 | #define HW_INPUT_TSC2XXX_H |
| 13 | |
Philippe Mathieu-Daudé | 38b01a9 | 2020-09-07 03:01:55 +0200 | [diff] [blame] | 14 | typedef struct MouseTransformInfo { |
| 15 | /* Touchscreen resolution */ |
| 16 | int x; |
| 17 | int y; |
| 18 | /* Calibration values as used/generated by tslib */ |
| 19 | int a[7]; |
| 20 | } MouseTransformInfo; |
Philippe Mathieu-Daudé | a331dd0 | 2019-04-12 18:54:12 +0200 | [diff] [blame] | 21 | |
| 22 | typedef struct uWireSlave { |
| 23 | uint16_t (*receive)(void *opaque); |
| 24 | void (*send)(void *opaque, uint16_t data); |
| 25 | void *opaque; |
| 26 | } uWireSlave; |
| 27 | |
| 28 | /* tsc210x.c */ |
| 29 | uWireSlave *tsc2102_init(qemu_irq pint); |
| 30 | uWireSlave *tsc2301_init(qemu_irq penirq, qemu_irq kbirq, qemu_irq dav); |
| 31 | I2SCodec *tsc210x_codec(uWireSlave *chip); |
| 32 | uint32_t tsc210x_txrx(void *opaque, uint32_t value, int len); |
| 33 | void tsc210x_set_transform(uWireSlave *chip, MouseTransformInfo *info); |
| 34 | void tsc210x_key_event(uWireSlave *chip, int key, int down); |
| 35 | |
| 36 | /* tsc2005.c */ |
| 37 | void *tsc2005_init(qemu_irq pintdav); |
| 38 | uint32_t tsc2005_txrx(void *opaque, uint32_t value, int len); |
| 39 | void tsc2005_set_transform(void *opaque, MouseTransformInfo *info); |
| 40 | |
| 41 | #endif |