Example #1
0
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;
}
Example #2
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;
}