/* read xy_data for all touches for debug */
static int cyttsp5_xy_worker(struct cyttsp5_debug_data *dd)
{
    struct device *dev = &dd->ttsp->dev;
    struct cyttsp5_sysinfo *si = dd->si;
    u8 report_reg = si->xy_mode[TOUCH_COUNT_BYTE_OFFSET];
    u8 num_cur_tch = GET_NUM_TOUCHES(report_reg);
    uint32_t formated_output;

    mutex_lock(&dd->sysfs_lock);
    dd->interrupt_count++;
    formated_output = dd->formated_output;
    mutex_unlock(&dd->sysfs_lock);

    /* Interrupt */
    pr_info("Interrupt(%u)\n", dd->interrupt_count);

    if (formated_output)
        cyttsp5_debug_formated(dev, dd->pr_buf, si, num_cur_tch);
    else
        /* print data for TTHE */
        cyttsp5_pr_buf_op_mode(dd, dd->pr_buf, si, num_cur_tch);

    pr_info("\n");

    return 0;
}
/* read xy_data for all touches for debug */
static int cyttsp4_xy_worker(struct cyttsp4_debug_data *dd)
{
	struct device *dev = &dd->ttsp->dev;
	struct cyttsp4_sysinfo *si = dd->si;
	u8 tt_stat = si->xy_mode[si->si_ofs.tt_stat_ofs];
	u8 num_cur_tch = GET_NUM_TOUCHES(tt_stat);
	uint32_t formated_output;
	int rc;

	mutex_lock(&dd->sysfs_lock);
	dd->interrupt_count++;
	formated_output = dd->formated_output;
	mutex_unlock(&dd->sysfs_lock);

	if (si->si_ofs.num_btns > 0) {
		/* read button diff data */
		rc = cyttsp4_read(dd->ttsp, CY_MODE_OPERATIONAL,
				/*  replace with btn_diff_ofs when that field
				 *  becomes supported in the firmware */
				si->si_ofs.tt_stat_ofs + 1 +
				si->si_ofs.max_tchs * si->si_ofs.tch_rec_size,
				si->btn_rec_data,
				si->si_ofs.num_btns * si->si_ofs.btn_rec_size);
		if (rc < 0) {
			dev_err(dev, "%s: read fail on button regs r=%d\n",
					__func__, rc);
		}
	}

	/* Interrupt */
	pr_info("Interrupt(%u)\n", dd->interrupt_count);

	if (formated_output)
		cyttsp4_debug_formated(dev, dd->pr_buf, si, num_cur_tch);
	else
		/* print data for TTHE */
		cyttsp4_pr_buf_op_mode(dev, dd->pr_buf, si, num_cur_tch);

#ifdef SHOK_SENSOR_DATA_MODE
	/* print data for the sensor monitor */
	if (si->monitor.mntr_status == CY_MNTR_STARTED) {
		cyttsp4_debug_print(dev, dd->pr_buf, si->monitor.sensor_data,
				150, "cyttsp4_sensor_monitor");
	}
#endif

	pr_info("\n");

	dev_vdbg(dev, "%s: done\n", __func__);

	return 0;
}
/* read xy_data for all touches for debug */
static int cyttsp5_xy_worker(struct cyttsp5_debug_data *dd)
{
	struct device *dev = &dd->ttsp->dev;
	struct cyttsp5_sysinfo *si = dd->si;
	u8 report_reg = si->xy_mode[TOUCH_COUNT_BYTE_OFFSET];
	u8 num_cur_tch = GET_NUM_TOUCHES(report_reg);
	uint32_t formated_output;

	mutex_lock(&dd->sysfs_lock);
	dd->interrupt_count++;
	formated_output = dd->formated_output;
	mutex_unlock(&dd->sysfs_lock);

	return 0;
}