blob: 8bc189f195b7aa1d011e9be30eb6bd74048cfd12 [file] [log] [blame]
#ifndef _UAPI_HBTP_INPUT_H
#define _UAPI_HBTP_INPUT_H
#include <linux/input.h>
#define HBTP_MAX_FINGER 20
#define HBTP_ABS_MT_FIRST ABS_MT_TOUCH_MAJOR
#define HBTP_ABS_MT_LAST ABS_MT_TOOL_Y
#define MAX_ROI_SIZE 144
#define MAX_ACCEL_SIZE 128
#define HBTP_FLAG_ACTIVE_BLOB 0x01
#define HBTP_EVENT_TYPE_DISPLAY "EVENT_TYPE=HBTP_DISPLAY"
struct hbtp_input_touch {
bool active;
__s32 tool;
__s32 x;
__s32 y;
__s32 pressure;
__s32 major;
__s32 minor;
__s32 orientation;
};
struct hbtp_sensor_data {
__s16 accelBuffer[MAX_ACCEL_SIZE];
__s16 ROI[MAX_ROI_SIZE];
};
struct hbtp_input_mt {
__s32 num_touches;
struct hbtp_input_touch touches[HBTP_MAX_FINGER];
struct timeval time_val;
};
struct hbtp_input_mt_ext {
__s32 num_touches;
struct hbtp_input_touch touches[HBTP_MAX_FINGER];
struct timeval time_val;
__u32 flag;
};
struct hbtp_input_absinfo {
bool active;
__u16 code;
__s32 minimum;
__s32 maximum;
};
enum hbtp_afe_power_cmd {
HBTP_AFE_POWER_ON,
HBTP_AFE_POWER_OFF,
};
struct hbtp_input_key {
__u32 code;
__s32 value;
};
enum hbtp_afe_signal {
HBTP_AFE_SIGNAL_ON_RESUME,
HBTP_AFE_SIGNAL_ON_SUSPEND,
};
enum hbtp_afe_power_ctrl {
HBTP_AFE_POWER_ENABLE_SYNC,
HBTP_AFE_POWER_ENABLE_SYNC_SIGNAL,
};
/* ioctl */
#define HBTP_INPUT_IOCTL_BASE 'T'
#define HBTP_SET_ABSPARAM _IOW(HBTP_INPUT_IOCTL_BASE, 201, \
struct hbtp_input_absinfo *)
#define HBTP_SET_TOUCHDATA _IOW(HBTP_INPUT_IOCTL_BASE, 202, \
struct hbtp_input_mt)
#define HBTP_SET_POWERSTATE _IOW(HBTP_INPUT_IOCTL_BASE, 203, \
enum hbtp_afe_power_cmd)
#define HBTP_SET_KEYDATA _IOW(HBTP_INPUT_IOCTL_BASE, 204, \
struct hbtp_input_key)
#define HBTP_SET_SYNCSIGNAL _IOW(HBTP_INPUT_IOCTL_BASE, 205, \
enum hbtp_afe_signal)
#define HBTP_SET_POWER_CTRL _IOW(HBTP_INPUT_IOCTL_BASE, 206, \
enum hbtp_afe_power_ctrl)
#define HBTP_SET_SENSORDATA _IOW(HBTP_INPUT_IOCTL_BASE, 207, \
struct hbtp_sensor_data)
#define HBTP_SET_TOUCHDATA_EXT _IOW(HBTP_INPUT_IOCTL_BASE, 208, \
struct hbtp_input_mt_ext)
#endif /* _UAPI_HBTP_INPUT_H */