1 /* 2 * Focaltech TouchPad PS/2 mouse driver 3 * 4 * Copyright (c) 2014 Red Hat Inc. 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or 9 * (at your option) any later version. 10 * 11 * Red Hat authors: 12 * 13 * Hans de Goede <hdegoede@redhat.com> 14 */ 15 16 /* 17 * The Focaltech PS/2 touchpad protocol is unknown. This drivers deals with 18 * detection only, to avoid further detection attempts confusing the touchpad 19 * this way it at least works in PS/2 mouse compatibility mode. 20 */ 21 22 #include <linux/device.h> 23 #include <linux/libps2.h> 24 #include "psmouse.h" 25 26 static const char * const focaltech_pnp_ids[] = { 27 "FLT0101", 28 "FLT0102", 29 "FLT0103", 30 NULL 31 }; 32 33 int focaltech_detect(struct psmouse *psmouse, bool set_properties) 34 { 35 if (!psmouse_matches_pnp_id(psmouse, focaltech_pnp_ids)) 36 return -ENODEV; 37 38 if (set_properties) { 39 psmouse->vendor = "FocalTech"; 40 psmouse->name = "FocalTech Touchpad in mouse emulation mode"; 41 } 42 43 return 0; 44 } 45 46 int focaltech_init(struct psmouse *psmouse) 47 { 48 ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS); 49 psmouse_reset(psmouse); 50 51 return 0; 52 } 53