ad714x 126 drivers/input/misc/ad714x.c static void ad714x_use_com_int(struct ad714x_chip *ad714x, ad714x 134 drivers/input/misc/ad714x.c ad714x->read(ad714x, STG_COM_INT_EN_REG, &data, 1); ad714x 136 drivers/input/misc/ad714x.c ad714x->write(ad714x, STG_COM_INT_EN_REG, data); ad714x 138 drivers/input/misc/ad714x.c ad714x->read(ad714x, STG_HIGH_INT_EN_REG, &data, 1); ad714x 140 drivers/input/misc/ad714x.c ad714x->write(ad714x, STG_HIGH_INT_EN_REG, data); ad714x 143 drivers/input/misc/ad714x.c static void ad714x_use_thr_int(struct ad714x_chip *ad714x, ad714x 151 drivers/input/misc/ad714x.c ad714x->read(ad714x, STG_COM_INT_EN_REG, &data, 1); ad714x 153 drivers/input/misc/ad714x.c ad714x->write(ad714x, STG_COM_INT_EN_REG, data); ad714x 155 drivers/input/misc/ad714x.c ad714x->read(ad714x, STG_HIGH_INT_EN_REG, &data, 1); ad714x 157 drivers/input/misc/ad714x.c ad714x->write(ad714x, STG_HIGH_INT_EN_REG, data); ad714x 160 drivers/input/misc/ad714x.c static int ad714x_cal_highest_stage(struct ad714x_chip *ad714x, ad714x 168 drivers/input/misc/ad714x.c if (ad714x->sensor_val[i] > max_res) { ad714x 169 drivers/input/misc/ad714x.c max_res = ad714x->sensor_val[i]; ad714x 177 drivers/input/misc/ad714x.c static int ad714x_cal_abs_pos(struct ad714x_chip *ad714x, ad714x 184 drivers/input/misc/ad714x.c a_param = ad714x->sensor_val[start_stage + 1]; ad714x 185 drivers/input/misc/ad714x.c b_param = ad714x->sensor_val[start_stage] + ad714x 186 drivers/input/misc/ad714x.c ad714x->sensor_val[start_stage + 1]; ad714x 188 drivers/input/misc/ad714x.c a_param = ad714x->sensor_val[end_stage] * ad714x 190 drivers/input/misc/ad714x.c ad714x->sensor_val[end_stage - 1] * ad714x 192 drivers/input/misc/ad714x.c b_param = ad714x->sensor_val[end_stage] + ad714x 193 drivers/input/misc/ad714x.c ad714x->sensor_val[end_stage - 1]; ad714x 195 drivers/input/misc/ad714x.c a_param = ad714x->sensor_val[highest_stage] * ad714x 197 drivers/input/misc/ad714x.c ad714x->sensor_val[highest_stage - 1] * ad714x 199 drivers/input/misc/ad714x.c ad714x->sensor_val[highest_stage + 1] * ad714x 201 drivers/input/misc/ad714x.c b_param = ad714x->sensor_val[highest_stage] + ad714x 202 drivers/input/misc/ad714x.c ad714x->sensor_val[highest_stage - 1] + ad714x 203 drivers/input/misc/ad714x.c ad714x->sensor_val[highest_stage + 1]; ad714x 213 drivers/input/misc/ad714x.c static void ad714x_button_state_machine(struct ad714x_chip *ad714x, int idx) ad714x 215 drivers/input/misc/ad714x.c struct ad714x_button_plat *hw = &ad714x->hw->button[idx]; ad714x 216 drivers/input/misc/ad714x.c struct ad714x_button_drv *sw = &ad714x->sw->button[idx]; ad714x 220 drivers/input/misc/ad714x.c if (((ad714x->h_state & hw->h_mask) == hw->h_mask) && ad714x 221 drivers/input/misc/ad714x.c ((ad714x->l_state & hw->l_mask) == hw->l_mask)) { ad714x 222 drivers/input/misc/ad714x.c dev_dbg(ad714x->dev, "button %d touched\n", idx); ad714x 230 drivers/input/misc/ad714x.c if (((ad714x->h_state & hw->h_mask) != hw->h_mask) || ad714x 231 drivers/input/misc/ad714x.c ((ad714x->l_state & hw->l_mask) != hw->l_mask)) { ad714x 232 drivers/input/misc/ad714x.c dev_dbg(ad714x->dev, "button %d released\n", idx); ad714x 248 drivers/input/misc/ad714x.c static void ad714x_slider_cal_sensor_val(struct ad714x_chip *ad714x, int idx) ad714x 250 drivers/input/misc/ad714x.c struct ad714x_slider_plat *hw = &ad714x->hw->slider[idx]; ad714x 253 drivers/input/misc/ad714x.c ad714x->read(ad714x, CDC_RESULT_S0 + hw->start_stage, ad714x 254 drivers/input/misc/ad714x.c &ad714x->adc_reg[hw->start_stage], ad714x 258 drivers/input/misc/ad714x.c ad714x->read(ad714x, STAGE0_AMBIENT + i * PER_STAGE_REG_NUM, ad714x 259 drivers/input/misc/ad714x.c &ad714x->amb_reg[i], 1); ad714x 261 drivers/input/misc/ad714x.c ad714x->sensor_val[i] = ad714x 262 drivers/input/misc/ad714x.c abs(ad714x->adc_reg[i] - ad714x->amb_reg[i]); ad714x 266 drivers/input/misc/ad714x.c static void ad714x_slider_cal_highest_stage(struct ad714x_chip *ad714x, int idx) ad714x 268 drivers/input/misc/ad714x.c struct ad714x_slider_plat *hw = &ad714x->hw->slider[idx]; ad714x 269 drivers/input/misc/ad714x.c struct ad714x_slider_drv *sw = &ad714x->sw->slider[idx]; ad714x 271 drivers/input/misc/ad714x.c sw->highest_stage = ad714x_cal_highest_stage(ad714x, hw->start_stage, ad714x 274 drivers/input/misc/ad714x.c dev_dbg(ad714x->dev, "slider %d highest_stage:%d\n", idx, ad714x 291 drivers/input/misc/ad714x.c static void ad714x_slider_cal_abs_pos(struct ad714x_chip *ad714x, int idx) ad714x 293 drivers/input/misc/ad714x.c struct ad714x_slider_plat *hw = &ad714x->hw->slider[idx]; ad714x 294 drivers/input/misc/ad714x.c struct ad714x_slider_drv *sw = &ad714x->sw->slider[idx]; ad714x 296 drivers/input/misc/ad714x.c sw->abs_pos = ad714x_cal_abs_pos(ad714x, hw->start_stage, hw->end_stage, ad714x 299 drivers/input/misc/ad714x.c dev_dbg(ad714x->dev, "slider %d absolute position:%d\n", idx, ad714x 313 drivers/input/misc/ad714x.c static void ad714x_slider_cal_flt_pos(struct ad714x_chip *ad714x, int idx) ad714x 315 drivers/input/misc/ad714x.c struct ad714x_slider_drv *sw = &ad714x->sw->slider[idx]; ad714x 320 drivers/input/misc/ad714x.c dev_dbg(ad714x->dev, "slider %d filter position:%d\n", idx, ad714x 324 drivers/input/misc/ad714x.c static void ad714x_slider_use_com_int(struct ad714x_chip *ad714x, int idx) ad714x 326 drivers/input/misc/ad714x.c struct ad714x_slider_plat *hw = &ad714x->hw->slider[idx]; ad714x 328 drivers/input/misc/ad714x.c ad714x_use_com_int(ad714x, hw->start_stage, hw->end_stage); ad714x 331 drivers/input/misc/ad714x.c static void ad714x_slider_use_thr_int(struct ad714x_chip *ad714x, int idx) ad714x 333 drivers/input/misc/ad714x.c struct ad714x_slider_plat *hw = &ad714x->hw->slider[idx]; ad714x 335 drivers/input/misc/ad714x.c ad714x_use_thr_int(ad714x, hw->start_stage, hw->end_stage); ad714x 338 drivers/input/misc/ad714x.c static void ad714x_slider_state_machine(struct ad714x_chip *ad714x, int idx) ad714x 340 drivers/input/misc/ad714x.c struct ad714x_slider_plat *hw = &ad714x->hw->slider[idx]; ad714x 341 drivers/input/misc/ad714x.c struct ad714x_slider_drv *sw = &ad714x->sw->slider[idx]; ad714x 347 drivers/input/misc/ad714x.c h_state = ad714x->h_state & mask; ad714x 348 drivers/input/misc/ad714x.c c_state = ad714x->c_state & mask; ad714x 357 drivers/input/misc/ad714x.c ad714x_slider_use_com_int(ad714x, idx); ad714x 358 drivers/input/misc/ad714x.c dev_dbg(ad714x->dev, "slider %d touched\n", idx); ad714x 364 drivers/input/misc/ad714x.c ad714x_slider_cal_sensor_val(ad714x, idx); ad714x 365 drivers/input/misc/ad714x.c ad714x_slider_cal_highest_stage(ad714x, idx); ad714x 366 drivers/input/misc/ad714x.c ad714x_slider_cal_abs_pos(ad714x, idx); ad714x 375 drivers/input/misc/ad714x.c ad714x_slider_cal_sensor_val(ad714x, idx); ad714x 376 drivers/input/misc/ad714x.c ad714x_slider_cal_highest_stage(ad714x, idx); ad714x 377 drivers/input/misc/ad714x.c ad714x_slider_cal_abs_pos(ad714x, idx); ad714x 378 drivers/input/misc/ad714x.c ad714x_slider_cal_flt_pos(ad714x, idx); ad714x 385 drivers/input/misc/ad714x.c ad714x_slider_use_thr_int(ad714x, idx); ad714x 388 drivers/input/misc/ad714x.c dev_dbg(ad714x->dev, "slider %d released\n", ad714x 407 drivers/input/misc/ad714x.c static void ad714x_wheel_cal_highest_stage(struct ad714x_chip *ad714x, int idx) ad714x 409 drivers/input/misc/ad714x.c struct ad714x_wheel_plat *hw = &ad714x->hw->wheel[idx]; ad714x 410 drivers/input/misc/ad714x.c struct ad714x_wheel_drv *sw = &ad714x->sw->wheel[idx]; ad714x 413 drivers/input/misc/ad714x.c sw->highest_stage = ad714x_cal_highest_stage(ad714x, hw->start_stage, ad714x 416 drivers/input/misc/ad714x.c dev_dbg(ad714x->dev, "wheel %d highest_stage:%d\n", idx, ad714x 420 drivers/input/misc/ad714x.c static void ad714x_wheel_cal_sensor_val(struct ad714x_chip *ad714x, int idx) ad714x 422 drivers/input/misc/ad714x.c struct ad714x_wheel_plat *hw = &ad714x->hw->wheel[idx]; ad714x 425 drivers/input/misc/ad714x.c ad714x->read(ad714x, CDC_RESULT_S0 + hw->start_stage, ad714x 426 drivers/input/misc/ad714x.c &ad714x->adc_reg[hw->start_stage], ad714x 430 drivers/input/misc/ad714x.c ad714x->read(ad714x, STAGE0_AMBIENT + i * PER_STAGE_REG_NUM, ad714x 431 drivers/input/misc/ad714x.c &ad714x->amb_reg[i], 1); ad714x 432 drivers/input/misc/ad714x.c if (ad714x->adc_reg[i] > ad714x->amb_reg[i]) ad714x 433 drivers/input/misc/ad714x.c ad714x->sensor_val[i] = ad714x 434 drivers/input/misc/ad714x.c ad714x->adc_reg[i] - ad714x->amb_reg[i]; ad714x 436 drivers/input/misc/ad714x.c ad714x->sensor_val[i] = 0; ad714x 449 drivers/input/misc/ad714x.c static void ad714x_wheel_cal_abs_pos(struct ad714x_chip *ad714x, int idx) ad714x 451 drivers/input/misc/ad714x.c struct ad714x_wheel_plat *hw = &ad714x->hw->wheel[idx]; ad714x 452 drivers/input/misc/ad714x.c struct ad714x_wheel_drv *sw = &ad714x->sw->wheel[idx]; ad714x 461 drivers/input/misc/ad714x.c a_param = ad714x->sensor_val[highest] * ad714x 463 drivers/input/misc/ad714x.c ad714x->sensor_val[first_before] * ad714x 465 drivers/input/misc/ad714x.c ad714x->sensor_val[first_after] * ad714x 467 drivers/input/misc/ad714x.c b_param = ad714x->sensor_val[highest] + ad714x 468 drivers/input/misc/ad714x.c ad714x->sensor_val[first_before] + ad714x 469 drivers/input/misc/ad714x.c ad714x->sensor_val[first_after]; ad714x 480 drivers/input/misc/ad714x.c static void ad714x_wheel_cal_flt_pos(struct ad714x_chip *ad714x, int idx) ad714x 482 drivers/input/misc/ad714x.c struct ad714x_wheel_plat *hw = &ad714x->hw->wheel[idx]; ad714x 483 drivers/input/misc/ad714x.c struct ad714x_wheel_drv *sw = &ad714x->sw->wheel[idx]; ad714x 496 drivers/input/misc/ad714x.c static void ad714x_wheel_use_com_int(struct ad714x_chip *ad714x, int idx) ad714x 498 drivers/input/misc/ad714x.c struct ad714x_wheel_plat *hw = &ad714x->hw->wheel[idx]; ad714x 500 drivers/input/misc/ad714x.c ad714x_use_com_int(ad714x, hw->start_stage, hw->end_stage); ad714x 503 drivers/input/misc/ad714x.c static void ad714x_wheel_use_thr_int(struct ad714x_chip *ad714x, int idx) ad714x 505 drivers/input/misc/ad714x.c struct ad714x_wheel_plat *hw = &ad714x->hw->wheel[idx]; ad714x 507 drivers/input/misc/ad714x.c ad714x_use_thr_int(ad714x, hw->start_stage, hw->end_stage); ad714x 510 drivers/input/misc/ad714x.c static void ad714x_wheel_state_machine(struct ad714x_chip *ad714x, int idx) ad714x 512 drivers/input/misc/ad714x.c struct ad714x_wheel_plat *hw = &ad714x->hw->wheel[idx]; ad714x 513 drivers/input/misc/ad714x.c struct ad714x_wheel_drv *sw = &ad714x->sw->wheel[idx]; ad714x 519 drivers/input/misc/ad714x.c h_state = ad714x->h_state & mask; ad714x 520 drivers/input/misc/ad714x.c c_state = ad714x->c_state & mask; ad714x 529 drivers/input/misc/ad714x.c ad714x_wheel_use_com_int(ad714x, idx); ad714x 530 drivers/input/misc/ad714x.c dev_dbg(ad714x->dev, "wheel %d touched\n", idx); ad714x 536 drivers/input/misc/ad714x.c ad714x_wheel_cal_sensor_val(ad714x, idx); ad714x 537 drivers/input/misc/ad714x.c ad714x_wheel_cal_highest_stage(ad714x, idx); ad714x 538 drivers/input/misc/ad714x.c ad714x_wheel_cal_abs_pos(ad714x, idx); ad714x 547 drivers/input/misc/ad714x.c ad714x_wheel_cal_sensor_val(ad714x, idx); ad714x 548 drivers/input/misc/ad714x.c ad714x_wheel_cal_highest_stage(ad714x, idx); ad714x 549 drivers/input/misc/ad714x.c ad714x_wheel_cal_abs_pos(ad714x, idx); ad714x 550 drivers/input/misc/ad714x.c ad714x_wheel_cal_flt_pos(ad714x, idx); ad714x 558 drivers/input/misc/ad714x.c ad714x_wheel_use_thr_int(ad714x, idx); ad714x 562 drivers/input/misc/ad714x.c dev_dbg(ad714x->dev, "wheel %d released\n", ad714x 574 drivers/input/misc/ad714x.c static void touchpad_cal_sensor_val(struct ad714x_chip *ad714x, int idx) ad714x 576 drivers/input/misc/ad714x.c struct ad714x_touchpad_plat *hw = &ad714x->hw->touchpad[idx]; ad714x 579 drivers/input/misc/ad714x.c ad714x->read(ad714x, CDC_RESULT_S0 + hw->x_start_stage, ad714x 580 drivers/input/misc/ad714x.c &ad714x->adc_reg[hw->x_start_stage], ad714x 584 drivers/input/misc/ad714x.c ad714x->read(ad714x, STAGE0_AMBIENT + i * PER_STAGE_REG_NUM, ad714x 585 drivers/input/misc/ad714x.c &ad714x->amb_reg[i], 1); ad714x 586 drivers/input/misc/ad714x.c if (ad714x->adc_reg[i] > ad714x->amb_reg[i]) ad714x 587 drivers/input/misc/ad714x.c ad714x->sensor_val[i] = ad714x 588 drivers/input/misc/ad714x.c ad714x->adc_reg[i] - ad714x->amb_reg[i]; ad714x 590 drivers/input/misc/ad714x.c ad714x->sensor_val[i] = 0; ad714x 594 drivers/input/misc/ad714x.c static void touchpad_cal_highest_stage(struct ad714x_chip *ad714x, int idx) ad714x 596 drivers/input/misc/ad714x.c struct ad714x_touchpad_plat *hw = &ad714x->hw->touchpad[idx]; ad714x 597 drivers/input/misc/ad714x.c struct ad714x_touchpad_drv *sw = &ad714x->sw->touchpad[idx]; ad714x 599 drivers/input/misc/ad714x.c sw->x_highest_stage = ad714x_cal_highest_stage(ad714x, ad714x 601 drivers/input/misc/ad714x.c sw->y_highest_stage = ad714x_cal_highest_stage(ad714x, ad714x 604 drivers/input/misc/ad714x.c dev_dbg(ad714x->dev, ad714x 615 drivers/input/misc/ad714x.c static int touchpad_check_second_peak(struct ad714x_chip *ad714x, int idx) ad714x 617 drivers/input/misc/ad714x.c struct ad714x_touchpad_plat *hw = &ad714x->hw->touchpad[idx]; ad714x 618 drivers/input/misc/ad714x.c struct ad714x_touchpad_drv *sw = &ad714x->sw->touchpad[idx]; ad714x 622 drivers/input/misc/ad714x.c if ((ad714x->sensor_val[i] - ad714x->sensor_val[i + 1]) ad714x 623 drivers/input/misc/ad714x.c > (ad714x->sensor_val[i + 1] / 10)) ad714x 628 drivers/input/misc/ad714x.c if ((ad714x->sensor_val[i + 1] - ad714x->sensor_val[i]) ad714x 629 drivers/input/misc/ad714x.c > (ad714x->sensor_val[i] / 10)) ad714x 634 drivers/input/misc/ad714x.c if ((ad714x->sensor_val[i] - ad714x->sensor_val[i + 1]) ad714x 635 drivers/input/misc/ad714x.c > (ad714x->sensor_val[i + 1] / 10)) ad714x 640 drivers/input/misc/ad714x.c if ((ad714x->sensor_val[i + 1] - ad714x->sensor_val[i]) ad714x 641 drivers/input/misc/ad714x.c > (ad714x->sensor_val[i] / 10)) ad714x 654 drivers/input/misc/ad714x.c static void touchpad_cal_abs_pos(struct ad714x_chip *ad714x, int idx) ad714x 656 drivers/input/misc/ad714x.c struct ad714x_touchpad_plat *hw = &ad714x->hw->touchpad[idx]; ad714x 657 drivers/input/misc/ad714x.c struct ad714x_touchpad_drv *sw = &ad714x->sw->touchpad[idx]; ad714x 659 drivers/input/misc/ad714x.c sw->x_abs_pos = ad714x_cal_abs_pos(ad714x, hw->x_start_stage, ad714x 661 drivers/input/misc/ad714x.c sw->y_abs_pos = ad714x_cal_abs_pos(ad714x, hw->y_start_stage, ad714x 664 drivers/input/misc/ad714x.c dev_dbg(ad714x->dev, "touchpad %d absolute position:(%d, %d)\n", idx, ad714x 668 drivers/input/misc/ad714x.c static void touchpad_cal_flt_pos(struct ad714x_chip *ad714x, int idx) ad714x 670 drivers/input/misc/ad714x.c struct ad714x_touchpad_drv *sw = &ad714x->sw->touchpad[idx]; ad714x 677 drivers/input/misc/ad714x.c dev_dbg(ad714x->dev, "touchpad %d filter position:(%d, %d)\n", ad714x 699 drivers/input/misc/ad714x.c static int touchpad_check_endpoint(struct ad714x_chip *ad714x, int idx) ad714x 701 drivers/input/misc/ad714x.c struct ad714x_touchpad_plat *hw = &ad714x->hw->touchpad[idx]; ad714x 702 drivers/input/misc/ad714x.c struct ad714x_touchpad_drv *sw = &ad714x->sw->touchpad[idx]; ad714x 706 drivers/input/misc/ad714x.c percent_sensor_diff = (ad714x->sensor_val[hw->x_start_stage] - ad714x 707 drivers/input/misc/ad714x.c ad714x->sensor_val[hw->x_start_stage + 1]) * 100 / ad714x 708 drivers/input/misc/ad714x.c ad714x->sensor_val[hw->x_start_stage + 1]; ad714x 713 drivers/input/misc/ad714x.c ad714x->sensor_val[hw->x_start_stage + 1]; ad714x 717 drivers/input/misc/ad714x.c (ad714x->sensor_val[hw->x_start_stage + 1] > ad714x 723 drivers/input/misc/ad714x.c percent_sensor_diff = (ad714x->sensor_val[hw->x_end_stage] - ad714x 724 drivers/input/misc/ad714x.c ad714x->sensor_val[hw->x_end_stage - 1]) * 100 / ad714x 725 drivers/input/misc/ad714x.c ad714x->sensor_val[hw->x_end_stage - 1]; ad714x 730 drivers/input/misc/ad714x.c ad714x->sensor_val[hw->x_end_stage - 1]; ad714x 734 drivers/input/misc/ad714x.c (ad714x->sensor_val[hw->x_end_stage - 1] > ad714x 740 drivers/input/misc/ad714x.c percent_sensor_diff = (ad714x->sensor_val[hw->y_start_stage] - ad714x 741 drivers/input/misc/ad714x.c ad714x->sensor_val[hw->y_start_stage + 1]) * 100 / ad714x 742 drivers/input/misc/ad714x.c ad714x->sensor_val[hw->y_start_stage + 1]; ad714x 747 drivers/input/misc/ad714x.c ad714x->sensor_val[hw->y_start_stage + 1]; ad714x 751 drivers/input/misc/ad714x.c (ad714x->sensor_val[hw->y_start_stage + 1] > ad714x 757 drivers/input/misc/ad714x.c percent_sensor_diff = (ad714x->sensor_val[hw->y_end_stage] - ad714x 758 drivers/input/misc/ad714x.c ad714x->sensor_val[hw->y_end_stage - 1]) * 100 / ad714x 759 drivers/input/misc/ad714x.c ad714x->sensor_val[hw->y_end_stage - 1]; ad714x 764 drivers/input/misc/ad714x.c ad714x->sensor_val[hw->y_end_stage - 1]; ad714x 768 drivers/input/misc/ad714x.c (ad714x->sensor_val[hw->y_end_stage - 1] > ad714x 776 drivers/input/misc/ad714x.c static void touchpad_use_com_int(struct ad714x_chip *ad714x, int idx) ad714x 778 drivers/input/misc/ad714x.c struct ad714x_touchpad_plat *hw = &ad714x->hw->touchpad[idx]; ad714x 780 drivers/input/misc/ad714x.c ad714x_use_com_int(ad714x, hw->x_start_stage, hw->x_end_stage); ad714x 783 drivers/input/misc/ad714x.c static void touchpad_use_thr_int(struct ad714x_chip *ad714x, int idx) ad714x 785 drivers/input/misc/ad714x.c struct ad714x_touchpad_plat *hw = &ad714x->hw->touchpad[idx]; ad714x 787 drivers/input/misc/ad714x.c ad714x_use_thr_int(ad714x, hw->x_start_stage, hw->x_end_stage); ad714x 788 drivers/input/misc/ad714x.c ad714x_use_thr_int(ad714x, hw->y_start_stage, hw->y_end_stage); ad714x 791 drivers/input/misc/ad714x.c static void ad714x_touchpad_state_machine(struct ad714x_chip *ad714x, int idx) ad714x 793 drivers/input/misc/ad714x.c struct ad714x_touchpad_plat *hw = &ad714x->hw->touchpad[idx]; ad714x 794 drivers/input/misc/ad714x.c struct ad714x_touchpad_drv *sw = &ad714x->sw->touchpad[idx]; ad714x 803 drivers/input/misc/ad714x.c h_state = ad714x->h_state & mask; ad714x 804 drivers/input/misc/ad714x.c c_state = ad714x->c_state & mask; ad714x 813 drivers/input/misc/ad714x.c touchpad_use_com_int(ad714x, idx); ad714x 814 drivers/input/misc/ad714x.c dev_dbg(ad714x->dev, "touchpad %d touched\n", idx); ad714x 820 drivers/input/misc/ad714x.c touchpad_cal_sensor_val(ad714x, idx); ad714x 821 drivers/input/misc/ad714x.c touchpad_cal_highest_stage(ad714x, idx); ad714x 822 drivers/input/misc/ad714x.c if ((!touchpad_check_second_peak(ad714x, idx)) && ad714x 823 drivers/input/misc/ad714x.c (!touchpad_check_endpoint(ad714x, idx))) { ad714x 824 drivers/input/misc/ad714x.c dev_dbg(ad714x->dev, ad714x 827 drivers/input/misc/ad714x.c touchpad_cal_abs_pos(ad714x, idx); ad714x 838 drivers/input/misc/ad714x.c touchpad_cal_sensor_val(ad714x, idx); ad714x 839 drivers/input/misc/ad714x.c touchpad_cal_highest_stage(ad714x, idx); ad714x 840 drivers/input/misc/ad714x.c if ((!touchpad_check_second_peak(ad714x, idx)) ad714x 841 drivers/input/misc/ad714x.c && (!touchpad_check_endpoint(ad714x, idx))) { ad714x 842 drivers/input/misc/ad714x.c touchpad_cal_abs_pos(ad714x, idx); ad714x 843 drivers/input/misc/ad714x.c touchpad_cal_flt_pos(ad714x, idx); ad714x 855 drivers/input/misc/ad714x.c touchpad_use_thr_int(ad714x, idx); ad714x 858 drivers/input/misc/ad714x.c dev_dbg(ad714x->dev, "touchpad %d released\n", ad714x 870 drivers/input/misc/ad714x.c static int ad714x_hw_detect(struct ad714x_chip *ad714x) ad714x 874 drivers/input/misc/ad714x.c ad714x->read(ad714x, AD714X_PARTID_REG, &data, 1); ad714x 877 drivers/input/misc/ad714x.c ad714x->product = 0x7142; ad714x 878 drivers/input/misc/ad714x.c ad714x->version = data & 0xF; ad714x 879 drivers/input/misc/ad714x.c dev_info(ad714x->dev, "found AD7142 captouch, rev:%d\n", ad714x 880 drivers/input/misc/ad714x.c ad714x->version); ad714x 884 drivers/input/misc/ad714x.c ad714x->product = 0x7143; ad714x 885 drivers/input/misc/ad714x.c ad714x->version = data & 0xF; ad714x 886 drivers/input/misc/ad714x.c dev_info(ad714x->dev, "found AD7143 captouch, rev:%d\n", ad714x 887 drivers/input/misc/ad714x.c ad714x->version); ad714x 891 drivers/input/misc/ad714x.c ad714x->product = 0x7147; ad714x 892 drivers/input/misc/ad714x.c ad714x->version = data & 0xF; ad714x 893 drivers/input/misc/ad714x.c dev_info(ad714x->dev, "found AD7147(A) captouch, rev:%d\n", ad714x 894 drivers/input/misc/ad714x.c ad714x->version); ad714x 898 drivers/input/misc/ad714x.c ad714x->product = 0x7148; ad714x 899 drivers/input/misc/ad714x.c ad714x->version = data & 0xF; ad714x 900 drivers/input/misc/ad714x.c dev_info(ad714x->dev, "found AD7148 captouch, rev:%d\n", ad714x 901 drivers/input/misc/ad714x.c ad714x->version); ad714x 905 drivers/input/misc/ad714x.c dev_err(ad714x->dev, ad714x 912 drivers/input/misc/ad714x.c static void ad714x_hw_init(struct ad714x_chip *ad714x) ad714x 923 drivers/input/misc/ad714x.c ad714x->write(ad714x, reg_base + j, ad714x 924 drivers/input/misc/ad714x.c ad714x->hw->stage_cfg_reg[i][j]); ad714x 928 drivers/input/misc/ad714x.c ad714x->write(ad714x, AD714X_SYSCFG_REG + i, ad714x 929 drivers/input/misc/ad714x.c ad714x->hw->sys_cfg_reg[i]); ad714x 931 drivers/input/misc/ad714x.c ad714x->read(ad714x, AD714X_SYSCFG_REG + i, &data, 1); ad714x 933 drivers/input/misc/ad714x.c ad714x->write(ad714x, AD714X_STG_CAL_EN_REG, 0xFFF); ad714x 936 drivers/input/misc/ad714x.c ad714x->read(ad714x, STG_LOW_INT_STA_REG, &ad714x->l_state, 3); ad714x 941 drivers/input/misc/ad714x.c struct ad714x_chip *ad714x = data; ad714x 944 drivers/input/misc/ad714x.c mutex_lock(&ad714x->mutex); ad714x 946 drivers/input/misc/ad714x.c ad714x->read(ad714x, STG_LOW_INT_STA_REG, &ad714x->l_state, 3); ad714x 948 drivers/input/misc/ad714x.c for (i = 0; i < ad714x->hw->button_num; i++) ad714x 949 drivers/input/misc/ad714x.c ad714x_button_state_machine(ad714x, i); ad714x 950 drivers/input/misc/ad714x.c for (i = 0; i < ad714x->hw->slider_num; i++) ad714x 951 drivers/input/misc/ad714x.c ad714x_slider_state_machine(ad714x, i); ad714x 952 drivers/input/misc/ad714x.c for (i = 0; i < ad714x->hw->wheel_num; i++) ad714x 953 drivers/input/misc/ad714x.c ad714x_wheel_state_machine(ad714x, i); ad714x 954 drivers/input/misc/ad714x.c for (i = 0; i < ad714x->hw->touchpad_num; i++) ad714x 955 drivers/input/misc/ad714x.c ad714x_touchpad_state_machine(ad714x, i); ad714x 957 drivers/input/misc/ad714x.c mutex_unlock(&ad714x->mutex); ad714x 970 drivers/input/misc/ad714x.c struct ad714x_chip *ad714x; ad714x 992 drivers/input/misc/ad714x.c ad714x = devm_kzalloc(dev, sizeof(*ad714x) + sizeof(*ad714x->sw) + ad714x 998 drivers/input/misc/ad714x.c if (!ad714x) { ad714x 1002 drivers/input/misc/ad714x.c ad714x->hw = plat_data; ad714x 1004 drivers/input/misc/ad714x.c drv_mem = ad714x + 1; ad714x 1005 drivers/input/misc/ad714x.c ad714x->sw = drv_mem; ad714x 1006 drivers/input/misc/ad714x.c drv_mem += sizeof(*ad714x->sw); ad714x 1007 drivers/input/misc/ad714x.c ad714x->sw->slider = sd_drv = drv_mem; ad714x 1008 drivers/input/misc/ad714x.c drv_mem += sizeof(*sd_drv) * ad714x->hw->slider_num; ad714x 1009 drivers/input/misc/ad714x.c ad714x->sw->wheel = wl_drv = drv_mem; ad714x 1010 drivers/input/misc/ad714x.c drv_mem += sizeof(*wl_drv) * ad714x->hw->wheel_num; ad714x 1011 drivers/input/misc/ad714x.c ad714x->sw->touchpad = tp_drv = drv_mem; ad714x 1012 drivers/input/misc/ad714x.c drv_mem += sizeof(*tp_drv) * ad714x->hw->touchpad_num; ad714x 1013 drivers/input/misc/ad714x.c ad714x->sw->button = bt_drv = drv_mem; ad714x 1014 drivers/input/misc/ad714x.c drv_mem += sizeof(*bt_drv) * ad714x->hw->button_num; ad714x 1016 drivers/input/misc/ad714x.c ad714x->read = read; ad714x 1017 drivers/input/misc/ad714x.c ad714x->write = write; ad714x 1018 drivers/input/misc/ad714x.c ad714x->irq = irq; ad714x 1019 drivers/input/misc/ad714x.c ad714x->dev = dev; ad714x 1021 drivers/input/misc/ad714x.c error = ad714x_hw_detect(ad714x); ad714x 1027 drivers/input/misc/ad714x.c ad714x_hw_init(ad714x); ad714x 1028 drivers/input/misc/ad714x.c mutex_init(&ad714x->mutex); ad714x 1031 drivers/input/misc/ad714x.c if (ad714x->hw->slider_num > 0) { ad714x 1032 drivers/input/misc/ad714x.c struct ad714x_slider_plat *sd_plat = ad714x->hw->slider; ad714x 1034 drivers/input/misc/ad714x.c for (i = 0; i < ad714x->hw->slider_num; i++) { ad714x 1047 drivers/input/misc/ad714x.c input->id.product = ad714x->product; ad714x 1048 drivers/input/misc/ad714x.c input->id.version = ad714x->version; ad714x 1061 drivers/input/misc/ad714x.c if (ad714x->hw->wheel_num > 0) { ad714x 1062 drivers/input/misc/ad714x.c struct ad714x_wheel_plat *wl_plat = ad714x->hw->wheel; ad714x 1064 drivers/input/misc/ad714x.c for (i = 0; i < ad714x->hw->wheel_num; i++) { ad714x 1077 drivers/input/misc/ad714x.c input->id.product = ad714x->product; ad714x 1078 drivers/input/misc/ad714x.c input->id.version = ad714x->version; ad714x 1091 drivers/input/misc/ad714x.c if (ad714x->hw->touchpad_num > 0) { ad714x 1092 drivers/input/misc/ad714x.c struct ad714x_touchpad_plat *tp_plat = ad714x->hw->touchpad; ad714x 1094 drivers/input/misc/ad714x.c for (i = 0; i < ad714x->hw->touchpad_num; i++) { ad714x 1110 drivers/input/misc/ad714x.c input->id.product = ad714x->product; ad714x 1111 drivers/input/misc/ad714x.c input->id.version = ad714x->version; ad714x 1124 drivers/input/misc/ad714x.c if (ad714x->hw->button_num > 0) { ad714x 1125 drivers/input/misc/ad714x.c struct ad714x_button_plat *bt_plat = ad714x->hw->button; ad714x 1134 drivers/input/misc/ad714x.c for (i = 0; i < ad714x->hw->button_num; i++) { ad714x 1140 drivers/input/misc/ad714x.c input->id.product = ad714x->product; ad714x 1141 drivers/input/misc/ad714x.c input->id.version = ad714x->version; ad714x 1153 drivers/input/misc/ad714x.c error = devm_request_threaded_irq(dev, ad714x->irq, NULL, ad714x 1155 drivers/input/misc/ad714x.c irqflags, "ad714x_captouch", ad714x); ad714x 1157 drivers/input/misc/ad714x.c dev_err(dev, "can't allocate irq %d\n", ad714x->irq); ad714x 1161 drivers/input/misc/ad714x.c return ad714x; ad714x 1166 drivers/input/misc/ad714x.c int ad714x_disable(struct ad714x_chip *ad714x) ad714x 1170 drivers/input/misc/ad714x.c dev_dbg(ad714x->dev, "%s enter\n", __func__); ad714x 1172 drivers/input/misc/ad714x.c mutex_lock(&ad714x->mutex); ad714x 1174 drivers/input/misc/ad714x.c data = ad714x->hw->sys_cfg_reg[AD714X_PWR_CTRL] | 0x3; ad714x 1175 drivers/input/misc/ad714x.c ad714x->write(ad714x, AD714X_PWR_CTRL, data); ad714x 1177 drivers/input/misc/ad714x.c mutex_unlock(&ad714x->mutex); ad714x 1183 drivers/input/misc/ad714x.c int ad714x_enable(struct ad714x_chip *ad714x) ad714x 1185 drivers/input/misc/ad714x.c dev_dbg(ad714x->dev, "%s enter\n", __func__); ad714x 1187 drivers/input/misc/ad714x.c mutex_lock(&ad714x->mutex); ad714x 1191 drivers/input/misc/ad714x.c ad714x->write(ad714x, AD714X_PWR_CTRL, ad714x 1192 drivers/input/misc/ad714x.c ad714x->hw->sys_cfg_reg[AD714X_PWR_CTRL]); ad714x 1198 drivers/input/misc/ad714x.c ad714x->read(ad714x, STG_LOW_INT_STA_REG, &ad714x->l_state, 3); ad714x 1200 drivers/input/misc/ad714x.c mutex_unlock(&ad714x->mutex); ad714x 48 drivers/input/misc/ad714x.h int ad714x_disable(struct ad714x_chip *ad714x); ad714x 49 drivers/input/misc/ad714x.h int ad714x_enable(struct ad714x_chip *ad714x);