Lines Matching refs:sample

209 	union pinnacle_sample sample;  member
564 union pinnacle_sample *sample) in pinnacle_decode_sample() argument
570 sample->btn_primary = (rx[0] & BIT(0)) == BIT(0); in pinnacle_decode_sample()
572 sample->rel_x = ((rx[0] & BIT(4)) == BIT(4)) ? -(256 - rx[1]) : rx[1]; in pinnacle_decode_sample()
573 sample->rel_y = ((rx[0] & BIT(5)) == BIT(5)) ? -(256 - rx[2]) : rx[2]; in pinnacle_decode_sample()
575 sample->abs_x = ((rx[2] & 0x0F) << 8) | rx[0]; in pinnacle_decode_sample()
576 sample->abs_y = ((rx[2] & 0xF0) << 4) | rx[1]; in pinnacle_decode_sample()
577 sample->abs_z = rx[3] & 0x3F; in pinnacle_decode_sample()
581 static bool pinnacle_is_idle_sample(const union pinnacle_sample *sample) in pinnacle_is_idle_sample() argument
583 return (sample->abs_x == 0 && sample->abs_y == 0 && sample->abs_z == 0); in pinnacle_is_idle_sample()
586 static void pinnacle_clip_sample(const struct device *dev, union pinnacle_sample *sample) in pinnacle_clip_sample() argument
590 if (sample->abs_x < config->active_range_x_min) { in pinnacle_clip_sample()
591 sample->abs_x = config->active_range_x_min; in pinnacle_clip_sample()
593 if (sample->abs_x > config->active_range_x_max) { in pinnacle_clip_sample()
594 sample->abs_x = config->active_range_x_max; in pinnacle_clip_sample()
596 if (sample->abs_y < config->active_range_y_min) { in pinnacle_clip_sample()
597 sample->abs_y = config->active_range_y_min; in pinnacle_clip_sample()
599 if (sample->abs_y > config->active_range_y_max) { in pinnacle_clip_sample()
600 sample->abs_y = config->active_range_y_max; in pinnacle_clip_sample()
604 static void pinnacle_scale_sample(const struct device *dev, union pinnacle_sample *sample) in pinnacle_scale_sample() argument
611 sample->abs_x = (uint16_t)((uint32_t)(sample->abs_x - config->active_range_x_min) * in pinnacle_scale_sample()
613 sample->abs_y = (uint16_t)((uint32_t)(sample->abs_y - config->active_range_y_min) * in pinnacle_scale_sample()
617 static int pinnacle_sample_fetch(const struct device *dev, union pinnacle_sample *sample) in pinnacle_sample_fetch() argument
635 pinnacle_decode_sample(dev, rx, sample); in pinnacle_sample_fetch()
650 union pinnacle_sample *sample = &drv_data->sample; in pinnacle_handle_interrupt() local
654 rc = pinnacle_sample_fetch(dev, sample); in pinnacle_handle_interrupt()
661 input_report_rel(dev, INPUT_REL_X, sample->rel_x, false, K_FOREVER); in pinnacle_handle_interrupt()
662 input_report_rel(dev, INPUT_REL_Y, sample->rel_y, !config->primary_tap_enabled, in pinnacle_handle_interrupt()
665 input_report_key(dev, INPUT_BTN_TOUCH, sample->btn_primary, true, in pinnacle_handle_interrupt()
669 if (config->clipping_enabled && !pinnacle_is_idle_sample(sample)) { in pinnacle_handle_interrupt()
670 pinnacle_clip_sample(dev, sample); in pinnacle_handle_interrupt()
672 pinnacle_scale_sample(dev, sample); in pinnacle_handle_interrupt()
676 input_report_abs(dev, INPUT_ABS_X, sample->abs_x, false, K_FOREVER); in pinnacle_handle_interrupt()
677 input_report_abs(dev, INPUT_ABS_Y, sample->abs_y, false, K_FOREVER); in pinnacle_handle_interrupt()
678 input_report_abs(dev, INPUT_ABS_Z, sample->abs_z, true, K_FOREVER); in pinnacle_handle_interrupt()