static void *def_sitar_mbhc_cal(void) { void *sitar_cal; struct sitar_mbhc_btn_detect_cfg *btn_cfg; u16 *btn_low, *btn_high; u8 *n_ready, *n_cic, *gain; sitar_cal = kzalloc(SITAR_MBHC_CAL_SIZE(SITAR_MBHC_DEF_BUTTONS, SITAR_MBHC_DEF_RLOADS), GFP_KERNEL); if (!sitar_cal) { pr_err("%s: out of memory\n", __func__); return NULL; } #define S(X, Y) ((SITAR_MBHC_CAL_GENERAL_PTR(sitar_cal)->X) = (Y)) S(t_ldoh, 100); S(t_bg_fast_settle, 100); S(t_shutdown_plug_rem, 255); S(mbhc_nsa, 4); S(mbhc_navg, 4); #undef S #define S(X, Y) ((SITAR_MBHC_CAL_PLUG_DET_PTR(sitar_cal)->X) = (Y)) S(mic_current, SITAR_PID_MIC_5_UA); S(hph_current, SITAR_PID_MIC_5_UA); S(t_mic_pid, 100); S(t_ins_complete, 800);/*MM-SC-HS_Detect_Workaround-00, enlarge delay time from 250 to 800ms*/ S(t_ins_retry, 200); #undef S #define S(X, Y) ((SITAR_MBHC_CAL_PLUG_TYPE_PTR(sitar_cal)->X) = (Y)) S(v_no_mic, 30); S(v_hs_max, 1650); #undef S #define S(X, Y) ((SITAR_MBHC_CAL_BTN_DET_PTR(sitar_cal)->X) = (Y)) S(c[0], 62); S(c[1], 124); S(nc, 1); S(n_meas, 3); S(mbhc_nsc, 11); S(n_btn_meas, 1); S(n_btn_con, 2); S(num_btn, SITAR_MBHC_DEF_BUTTONS); S(v_btn_press_delta_sta, 100); S(v_btn_press_delta_cic, 50); #undef S btn_cfg = SITAR_MBHC_CAL_BTN_DET_PTR(sitar_cal); btn_low = sitar_mbhc_cal_btn_det_mp(btn_cfg, SITAR_BTN_DET_V_BTN_LOW); btn_high = sitar_mbhc_cal_btn_det_mp(btn_cfg, SITAR_BTN_DET_V_BTN_HIGH); btn_low[0] = -50; btn_high[0] = 100;/*SW-MM-RC-MBHC-02*/ btn_low[1] = 101;/*SW-MM-RC-MBHC-02*/ btn_high[1] = 250;/*SW-MM-RC-MBHC-01*/ btn_low[2] = 251;/*SW-MM-RC-MBHC-01*/ btn_high[2] = 400;/*SW-MM-RC-MBHC-01*/ btn_low[3] = 401;/*SW-MM-RC-MBHC-01*/ btn_high[3] = 700;/*SW-MM-RC-MBHC-01*/ /* MM-AY-NIKDS03283-00-[+ */ #if 0 btn_low[4] = 701;/*SW-MM-RC-MBHC-01*/ btn_high[4] = 800;/*SW-MM-RC-MBHC-01*/ btn_low[5] = 801;/*SW-MM-RC-MBHC-01*/ btn_high[5] = 900;/*SW-MM-RC-MBHC-01*/ btn_low[6] = 901;/*SW-MM-RC-MBHC-01*/ btn_high[6] = 1000;/*SW-MM-RC-MBHC-01*/ btn_low[7] = 1001;/*SW-MM-RC-MBHC-01*/ btn_high[7] = 1100;/*SW-MM-RC-MBHC-01*/ #endif /* MM-AY-NIKDS03283-00-]- */ n_ready = sitar_mbhc_cal_btn_det_mp(btn_cfg, SITAR_BTN_DET_N_READY); n_ready[0] = 48; n_ready[1] = 38; n_cic = sitar_mbhc_cal_btn_det_mp(btn_cfg, SITAR_BTN_DET_N_CIC); n_cic[0] = 60; n_cic[1] = 47; gain = sitar_mbhc_cal_btn_det_mp(btn_cfg, SITAR_BTN_DET_GAIN); gain[0] = 11; gain[1] = 9; return sitar_cal; }
static void *def_sitar_mbhc_cal(void) { void *sitar_cal; struct sitar_mbhc_btn_detect_cfg *btn_cfg; u16 *btn_low, *btn_high; u8 *n_ready, *n_cic, *gain; sitar_cal = kzalloc(SITAR_MBHC_CAL_SIZE(SITAR_MBHC_DEF_BUTTONS, SITAR_MBHC_DEF_RLOADS), GFP_KERNEL); if (!sitar_cal) { pr_err("%s: out of memory\n", __func__); return NULL; } #define S(X, Y) ((SITAR_MBHC_CAL_GENERAL_PTR(sitar_cal)->X) = (Y)) S(t_ldoh, 100); S(t_bg_fast_settle, 100); S(t_shutdown_plug_rem, 255); S(mbhc_nsa, 4); S(mbhc_navg, 4); #undef S #define S(X, Y) ((SITAR_MBHC_CAL_PLUG_DET_PTR(sitar_cal)->X) = (Y)) S(mic_current, SITAR_PID_MIC_5_UA); S(hph_current, SITAR_PID_MIC_5_UA); S(t_mic_pid, 100); S(t_ins_complete, 250); S(t_ins_retry, 200); #undef S #define S(X, Y) ((SITAR_MBHC_CAL_PLUG_TYPE_PTR(sitar_cal)->X) = (Y)) S(v_no_mic, 30); S(v_hs_max, 1650); #undef S #define S(X, Y) ((SITAR_MBHC_CAL_BTN_DET_PTR(sitar_cal)->X) = (Y)) S(c[0], 62); S(c[1], 124); S(nc, 1); S(n_meas, 3); S(mbhc_nsc, 11); S(n_btn_meas, 1); S(n_btn_con, 2); S(num_btn, SITAR_MBHC_DEF_BUTTONS); S(v_btn_press_delta_sta, 100); S(v_btn_press_delta_cic, 50); #undef S btn_cfg = SITAR_MBHC_CAL_BTN_DET_PTR(sitar_cal); btn_low = sitar_mbhc_cal_btn_det_mp(btn_cfg, SITAR_BTN_DET_V_BTN_LOW); btn_high = sitar_mbhc_cal_btn_det_mp(btn_cfg, SITAR_BTN_DET_V_BTN_HIGH); btn_low[0] = -50; btn_high[0] = 10; btn_low[1] = 11; btn_high[1] = 38; btn_low[2] = 39; btn_high[2] = 64; btn_low[3] = 65; btn_high[3] = 91; btn_low[4] = 92; btn_high[4] = 115; btn_low[5] = 116; btn_high[5] = 141; btn_low[6] = 142; btn_high[6] = 163; btn_low[7] = 164; btn_high[7] = 250; n_ready = sitar_mbhc_cal_btn_det_mp(btn_cfg, SITAR_BTN_DET_N_READY); n_ready[0] = 48; n_ready[1] = 38; n_cic = sitar_mbhc_cal_btn_det_mp(btn_cfg, SITAR_BTN_DET_N_CIC); n_cic[0] = 60; n_cic[1] = 47; gain = sitar_mbhc_cal_btn_det_mp(btn_cfg, SITAR_BTN_DET_GAIN); gain[0] = 11; gain[1] = 9; return sitar_cal; }