1/* 2 * Copyright 2013, Haiku, Inc. 3 * Distributed under the terms of the MIT License. 4 * 5 * The elantech_model_info struct and all the hardware specs are taken from the 6 * linux driver, thanks a lot! 7 * 8 * Authors: 9 * J��r��me Duval <korli@users.berlios.de> 10 */ 11#ifndef _PS2_ELANTECH_H 12#define _PS2_ELANTECH_H 13 14 15#include <KernelExport.h> 16 17#include "packet_buffer.h" 18#include "ps2_dev.h" 19 20 21typedef struct { 22 ps2_dev* dev; 23 24 sem_id sem; 25 struct packet_buffer* ring_buffer; 26 size_t packet_index; 27 28 uint32 version; 29 uint32 fwVersion; 30 31 uint32 x; 32 uint32 y; 33 uint32 fingers; 34 35 36 uint8 buffer[PS2_PACKET_ELANTECH]; 37 uint8 capabilities[3]; 38 39 uint8 previousZ; 40 41 uint8 mode; 42 bool crcEnabled; 43 44 status_t (*send_command)(ps2_dev* dev, uint8 cmd, uint8 *in, int in_count); 45} elantech_cookie; 46 47 48status_t probe_elantech(ps2_dev *dev); 49 50status_t elantech_open(const char *name, uint32 flags, void **_cookie); 51status_t elantech_close(void *_cookie); 52status_t elantech_freecookie(void *_cookie); 53status_t elantech_ioctl(void *_cookie, uint32 op, void *buffer, size_t length); 54 55int32 elantech_handle_int(ps2_dev *dev); 56void elantech_disconnect(ps2_dev *dev); 57 58extern device_hooks gElantechDeviceHooks; 59 60 61#endif /* _PS2_ELANTECH_H */ 62