int elftouch_ps2_detect(struct psmouse *psmouse, bool set_properties) { struct input_dev *dev = psmouse->dev; unsigned char param[16]; int command, res; param[0]=0x0f4; command = TOUCHKIT_SEND_PARMS(1, 0, TOUCHKIT_CMD); res=ps2_command(&psmouse->ps2dev, param, command); if(res) { return -ENODEV; } param[0]=0x0b0; command = TOUCHKIT_SEND_PARMS(1, 1, TOUCHKIT_CMD); res=ps2_command(&psmouse->ps2dev, param, command); if(res) { return -ENODEV; } if (set_properties) { dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); set_bit(BTN_TOUCH, dev->keybit); input_set_abs_params(dev, ABS_X, 0, ELFTOUCH_MAX_XC, 0, 0); input_set_abs_params(dev, ABS_Y, 0, ELFTOUCH_MAX_YC, 0, 0); psmouse->vendor = "ElfTouch"; psmouse->name = "Touchscreen"; psmouse->protocol_handler = touchkit_ps2_process_byte; psmouse->pktsize = 5; } return 0; }
int touchkit_ps2_detect(struct psmouse *psmouse, bool set_properties) { struct input_dev *dev = psmouse->dev; unsigned char param[3]; int command; param[0] = TOUCHKIT_CMD_LENGTH; param[1] = TOUCHKIT_CMD_ACTIVE; command = TOUCHKIT_SEND_PARMS(2, 3, TOUCHKIT_CMD); if (ps2_command(&psmouse->ps2dev, param, command)) return -ENODEV; if (param[0] != TOUCHKIT_CMD || param[1] != 0x01 || param[2] != TOUCHKIT_CMD_ACTIVE) return -ENODEV; if (set_properties) { dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); __set_bit(BTN_TOUCH, dev->keybit); input_set_abs_params(dev, ABS_X, 0, TOUCHKIT_MAX_XC, 0, 0); input_set_abs_params(dev, ABS_Y, 0, TOUCHKIT_MAX_YC, 0, 0); psmouse->vendor = "eGalax"; psmouse->name = "Touchscreen"; psmouse->protocol_handler = touchkit_ps2_process_byte; psmouse->pktsize = 5; } return 0; }