input_report_abs(idev, ABS_X, x);
        input_report_abs(idev, ABS_Y, y);
        input_report_abs(idev, ABS_PRESSURE, pressure);
+       input_report_key(idev, BTN_TOUCH, 1);
        input_sync(idev);
 }
 
        struct input_dev *idev = ts->idev;
 
        input_report_abs(idev, ABS_PRESSURE, 0);
+       input_report_key(idev, BTN_TOUCH, 0);
        input_sync(idev);
 }
 
        idev->open       = ucb1x00_ts_open;
        idev->close      = ucb1x00_ts_close;
 
-       __set_bit(EV_ABS, idev->evbit);
+       idev->evbit[0]   = BIT_MASK(EV_ABS) | BIT_MASK(EV_KEY);
+       idev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
 
        input_set_drvdata(idev, ts);