wcd_mbhc
pm4125->wcd_mbhc = wcd_mbhc_init(component, &mbhc_cb, intr_ids, pm4125_mbhc_fields, false);
if (IS_ERR(pm4125->wcd_mbhc))
return PTR_ERR(pm4125->wcd_mbhc);
wcd_mbhc_deinit(pm4125->wcd_mbhc);
ret = wcd_mbhc_start(pm4125->wcd_mbhc, &pm4125->mbhc_cfg, jack);
wcd_mbhc_stop(pm4125->wcd_mbhc);
struct wcd_mbhc *wcd_mbhc;
static int wcd_mbhc_adc_get_hs_thres(struct wcd_mbhc *mbhc)
static int wcd_mbhc_adc_get_hph_thres(struct wcd_mbhc *mbhc)
static void wcd_program_hs_vref(struct wcd_mbhc *mbhc)
static void wcd_mbhc_adc_update_fsm_source(struct wcd_mbhc *mbhc,
static void wcd_mbhc_bcs_enable(struct wcd_mbhc *mbhc, int plug_type, bool enable)
static int wcd_mbhc_get_plug_from_adc(struct wcd_mbhc *mbhc, int adc_result)
static void wcd_program_btn_threshold(const struct wcd_mbhc *mbhc, bool micbias)
static int wcd_mbhc_get_spl_hs_thres(struct wcd_mbhc *mbhc)
static bool wcd_mbhc_check_for_spl_headset(struct wcd_mbhc *mbhc)
struct wcd_mbhc *mbhc;
mbhc = container_of(work, struct wcd_mbhc, correct_plug_swch);
static void wcd_mbhc_curr_micbias_control(const struct wcd_mbhc *mbhc,
struct wcd_mbhc *mbhc = data;
struct wcd_mbhc *mbhc = data;
int wcd_mbhc_get_impedance(struct wcd_mbhc *mbhc, uint32_t *zl, uint32_t *zr)
void wcd_mbhc_set_hph_type(struct wcd_mbhc *mbhc, int hph_type)
int wcd_mbhc_get_hph_type(struct wcd_mbhc *mbhc)
int wcd_mbhc_start(struct wcd_mbhc *mbhc, struct wcd_mbhc_config *cfg,
void wcd_mbhc_stop(struct wcd_mbhc *mbhc)
struct wcd_mbhc *wcd_mbhc_init(struct snd_soc_component *component,
struct wcd_mbhc *mbhc;
void wcd_mbhc_deinit(struct wcd_mbhc *mbhc)
int wcd_mbhc_event_notify(struct wcd_mbhc *mbhc, unsigned long event)
static int wcd_cancel_btn_work(struct wcd_mbhc *mbhc)
static void wcd_micbias_disable(struct wcd_mbhc *mbhc)
static void wcd_mbhc_report_plug_removal(struct wcd_mbhc *mbhc,
static void wcd_mbhc_compute_impedance(struct wcd_mbhc *mbhc)
static void wcd_mbhc_report_plug_insertion(struct wcd_mbhc *mbhc,
static void wcd_mbhc_report_plug(struct wcd_mbhc *mbhc, int insertion,
static void wcd_cancel_hs_detect_plug(struct wcd_mbhc *mbhc,
static void wcd_mbhc_cancel_pending_work(struct wcd_mbhc *mbhc)
static void wcd_mbhc_elec_hs_report_unplug(struct wcd_mbhc *mbhc)
static void wcd_mbhc_find_plug_and_report(struct wcd_mbhc *mbhc,
static void wcd_schedule_hs_detect_plug(struct wcd_mbhc *mbhc,
static void wcd_mbhc_adc_detect_plug_type(struct wcd_mbhc *mbhc)
struct wcd_mbhc *mbhc = container_of(work, struct wcd_mbhc, mbhc_plug_detect_work);
struct wcd_mbhc *mbhc = data;
int wcd_mbhc_typec_report_unplug(struct wcd_mbhc *mbhc)
int wcd_mbhc_typec_report_plug(struct wcd_mbhc *mbhc)
static int wcd_mbhc_get_button_mask(struct wcd_mbhc *mbhc)
struct wcd_mbhc *mbhc = container_of(dwork, struct wcd_mbhc, mbhc_btn_dwork);
struct wcd_mbhc *mbhc = data;
struct wcd_mbhc *mbhc = data;
static irqreturn_t wcd_mbhc_hph_ocp_irq(struct wcd_mbhc *mbhc, bool hphr)
static int wcd_mbhc_initialise(struct wcd_mbhc *mbhc)
static inline int wcd_mbhc_write_field(const struct wcd_mbhc *mbhc,
static int wcd_mbhc_get_micbias(struct wcd_mbhc *mbhc)
static int wcd_measure_adc_continuous(struct wcd_mbhc *mbhc)
static int wcd_measure_adc_once(struct wcd_mbhc *mbhc, int mux_ctl)
static inline int wcd_mbhc_read_field(const struct wcd_mbhc *mbhc, int field)
static int wcd_check_cross_conn(struct wcd_mbhc *mbhc)
struct wcd_mbhc;
int wcd_mbhc_start(struct wcd_mbhc *mbhc, struct wcd_mbhc_config *mbhc_cfg,
void wcd_mbhc_stop(struct wcd_mbhc *mbhc);
void wcd_mbhc_set_hph_type(struct wcd_mbhc *mbhc, int hph_type);
int wcd_mbhc_get_hph_type(struct wcd_mbhc *mbhc);
int wcd_mbhc_typec_report_plug(struct wcd_mbhc *mbhc);
int wcd_mbhc_typec_report_unplug(struct wcd_mbhc *mbhc);
struct wcd_mbhc *wcd_mbhc_init(struct snd_soc_component *component,
int wcd_mbhc_get_impedance(struct wcd_mbhc *mbhc, uint32_t *zl,
void wcd_mbhc_deinit(struct wcd_mbhc *mbhc);
int wcd_mbhc_event_notify(struct wcd_mbhc *mbhc, unsigned long event);
static inline void wcd_mbhc_stop(struct wcd_mbhc *mbhc)
static inline struct wcd_mbhc *wcd_mbhc_init(struct snd_soc_component *component,
static inline void wcd_mbhc_set_hph_type(struct wcd_mbhc *mbhc, int hph_type)
static inline int wcd_mbhc_get_hph_type(struct wcd_mbhc *mbhc)
static inline int wcd_mbhc_event_notify(struct wcd_mbhc *mbhc, unsigned long event)
static inline int wcd_mbhc_start(struct wcd_mbhc *mbhc,
static inline int wcd_mbhc_get_impedance(struct wcd_mbhc *mbhc,
static inline void wcd_mbhc_deinit(struct wcd_mbhc *mbhc)
struct wcd_mbhc *mbhc;
wcd_mbhc_event_notify(wcd937x->wcd_mbhc,
wcd_mbhc_event_notify(wcd937x->wcd_mbhc,
wcd_mbhc_event_notify(wcd937x->wcd_mbhc,
wcd_mbhc_event_notify(wcd937x->wcd_mbhc,
wcd_mbhc_event_notify(wcd937x->wcd_mbhc,
wcd_mbhc_set_hph_type(wcd937x->wcd_mbhc, WCD_MBHC_HPH_MONO);
wcd_mbhc_set_hph_type(wcd937x->wcd_mbhc, WCD_MBHC_HPH_STEREO);
wcd_mbhc_set_hph_type(wcd937x->wcd_mbhc, WCD_MBHC_HPH_MONO);
ucontrol->value.integer.value[0] = wcd_mbhc_get_hph_type(wcd937x->wcd_mbhc);
wcd_mbhc_get_impedance(wcd937x->wcd_mbhc, &zl, &zr);
wcd937x->wcd_mbhc = wcd_mbhc_init(component, &mbhc_cb, intr_ids, wcd_mbhc_fields, true);
if (IS_ERR(wcd937x->wcd_mbhc))
return PTR_ERR(wcd937x->wcd_mbhc);
wcd_mbhc_deinit(wcd937x->wcd_mbhc);
ret = wcd_mbhc_start(wcd->wcd_mbhc, &wcd->mbhc_cfg, jack);
wcd_mbhc_stop(wcd->wcd_mbhc);
wcd_mbhc_event_notify(wcd937x->wcd_mbhc, WCD_EVENT_PRE_HPHR_PA_OFF);
wcd_mbhc_event_notify(wcd937x->wcd_mbhc, WCD_EVENT_POST_HPHR_PA_OFF);
wcd_mbhc_event_notify(wcd937x->wcd_mbhc, WCD_EVENT_PRE_HPHL_PA_OFF);
wcd_mbhc_event_notify(wcd937x->wcd_mbhc, WCD_EVENT_POST_HPHL_PA_OFF);
struct wcd_mbhc *wcd_mbhc;
wcd_mbhc_event_notify(wcd938x->wcd_mbhc,
wcd_mbhc_event_notify(wcd938x->wcd_mbhc,
wcd_mbhc_event_notify(wcd938x->wcd_mbhc,
wcd_mbhc_event_notify(wcd938x->wcd_mbhc,
wcd_mbhc_event_notify(wcd938x->wcd_mbhc,
struct wcd_mbhc *wcd_mbhc;
wcd_mbhc_set_hph_type(wcd938x->wcd_mbhc, WCD_MBHC_HPH_MONO);
wcd_mbhc_set_hph_type(wcd938x->wcd_mbhc, WCD_MBHC_HPH_STEREO);
wcd_mbhc_set_hph_type(wcd938x->wcd_mbhc, WCD_MBHC_HPH_MONO);
ucontrol->value.integer.value[0] = wcd_mbhc_get_hph_type(wcd938x->wcd_mbhc);
wcd_mbhc_get_impedance(wcd938x->wcd_mbhc, &zl, &zr);
wcd938x->wcd_mbhc = wcd_mbhc_init(component, &mbhc_cb, intr_ids, wcd_mbhc_fields, true);
if (IS_ERR(wcd938x->wcd_mbhc))
return PTR_ERR(wcd938x->wcd_mbhc);
wcd_mbhc_deinit(wcd938x->wcd_mbhc);
return wcd_mbhc_start(wcd->wcd_mbhc, &wcd->mbhc_cfg, jack);
wcd_mbhc_stop(wcd->wcd_mbhc);
wcd_mbhc_event_notify(wcd938x->wcd_mbhc,
wcd_mbhc_event_notify(wcd938x->wcd_mbhc,
wcd_mbhc_event_notify(wcd938x->wcd_mbhc, WCD_EVENT_PRE_HPHL_PA_OFF);
wcd_mbhc_event_notify(wcd938x->wcd_mbhc,
wcd_mbhc_event_notify(wcd939x->wcd_mbhc,
wcd_mbhc_event_notify(wcd939x->wcd_mbhc,
wcd_mbhc_event_notify(wcd939x->wcd_mbhc,
wcd_mbhc_event_notify(wcd939x->wcd_mbhc,
wcd_mbhc_event_notify(wcd939x->wcd_mbhc,
struct wcd_mbhc *wcd_mbhc;
wcd_mbhc_set_hph_type(wcd939x->wcd_mbhc, WCD_MBHC_HPH_MONO);
wcd_mbhc_set_hph_type(wcd939x->wcd_mbhc, WCD_MBHC_HPH_STEREO);
wcd_mbhc_set_hph_type(wcd939x->wcd_mbhc, WCD_MBHC_HPH_MONO);
ucontrol->value.integer.value[0] = wcd_mbhc_get_hph_type(wcd939x->wcd_mbhc);
wcd_mbhc_get_impedance(wcd939x->wcd_mbhc, &zl, &zr);
wcd939x->wcd_mbhc = wcd_mbhc_init(component, &mbhc_cb, intr_ids, wcd_mbhc_fields, true);
if (IS_ERR(wcd939x->wcd_mbhc))
return PTR_ERR(wcd939x->wcd_mbhc);
wcd_mbhc_deinit(wcd939x->wcd_mbhc);
return wcd_mbhc_start(wcd->wcd_mbhc, &wcd->mbhc_cfg, jack);
wcd_mbhc_stop(wcd->wcd_mbhc);
if (!wcd939x->wcd_mbhc)
return wcd_mbhc_typec_report_plug(wcd939x->wcd_mbhc);
return wcd_mbhc_typec_report_unplug(wcd939x->wcd_mbhc);
wcd_mbhc_event_notify(wcd939x->wcd_mbhc,
wcd_mbhc_event_notify(wcd939x->wcd_mbhc,
wcd_mbhc_event_notify(wcd939x->wcd_mbhc, WCD_EVENT_PRE_HPHL_PA_OFF);
wcd_mbhc_event_notify(wcd939x->wcd_mbhc,