static inline void lis302dl_data_ready(struct lis3lv02d *lis3, int index) { int dummy; /* Dummy read to ack interrupt */ lis3lv02d_get_xyz(lis3, &dummy, &dummy, &dummy); lis3->data_ready_count[index]++; }
static ssize_t lis3lv02d_position_show(struct device *dev, struct device_attribute *attr, char *buf) { int x, y, z; lis3lv02d_get_xyz(&lis3_dev, &x, &y, &z); return sprintf(buf, "(%d,%d,%d)\n", x, y, z); }
static void lis3lv02d_joystick_poll(struct input_polled_dev *pidev) { int x, y, z; lis3lv02d_get_xyz(&lis3_dev, &x, &y, &z); input_report_abs(pidev->input, ABS_X, x - lis3_dev.xcalib); input_report_abs(pidev->input, ABS_Y, y - lis3_dev.ycalib); input_report_abs(pidev->input, ABS_Z, z - lis3_dev.zcalib); }
static void lis3lv02d_joystick_poll(struct input_polled_dev *pidev) { int x, y, z; lis3lv02d_get_xyz(&lis3_dev, &x, &y, &z); input_report_abs(pidev->input, ABS_X, x); input_report_abs(pidev->input, ABS_Y, y); input_report_abs(pidev->input, ABS_Z, z); input_sync(pidev->input); }
static ssize_t lis3lv02d_position_show(struct device *dev, struct device_attribute *attr, char *buf) { int x, y, z; lis3lv02d_sysfs_poweron(&lis3_dev); mutex_lock(&lis3_dev.mutex); lis3lv02d_get_xyz(&lis3_dev, &x, &y, &z); mutex_unlock(&lis3_dev.mutex); return sprintf(buf, "(%d,%d,%d)\n", x, y, z); }
static inline void lis3lv02d_calibrate_joystick(void) { lis3lv02d_get_xyz(&lis3_dev, &lis3_dev.xcalib, &lis3_dev.ycalib, &lis3_dev.zcalib); }