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