Lines Matching full:wcd934x
8 #include <linux/mfd/wcd934x/registers.h>
9 #include <linux/mfd/wcd934x/wcd934x.h>
1454 dev_info(wcd->dev, "WCD934X Minor:0x%x Version:0x%x\n", id_minor, ver); in wcd934x_get_version()
1781 dai_data->sruntime = slim_stream_allocate(wcd->sdev, "WCD934x-SLIM"); in wcd934x_slim_set_hw_params()
2419 struct wcd934x_codec *wcd934x = snd_soc_component_get_drvdata(component); in wcd934x_micbias_control() local
2441 mutex_lock(&wcd934x->micb_lock); in wcd934x_micbias_control()
2445 wcd934x->pullup_ref[micb_index]++; in wcd934x_micbias_control()
2446 if ((wcd934x->pullup_ref[micb_index] == 1) && in wcd934x_micbias_control()
2447 (wcd934x->micb_ref[micb_index] == 0)) in wcd934x_micbias_control()
2453 if (wcd934x->pullup_ref[micb_index] > 0) in wcd934x_micbias_control()
2454 wcd934x->pullup_ref[micb_index]--; in wcd934x_micbias_control()
2456 if ((wcd934x->pullup_ref[micb_index] == 0) && in wcd934x_micbias_control()
2457 (wcd934x->micb_ref[micb_index] == 0)) in wcd934x_micbias_control()
2462 wcd934x->micb_ref[micb_index]++; in wcd934x_micbias_control()
2463 if (wcd934x->micb_ref[micb_index] == 1) { in wcd934x_micbias_control()
2468 wcd_mbhc_event_notify(wcd934x->mbhc, in wcd934x_micbias_control()
2473 wcd_mbhc_event_notify(wcd934x->mbhc, in wcd934x_micbias_control()
2477 if (wcd934x->micb_ref[micb_index] > 0) in wcd934x_micbias_control()
2478 wcd934x->micb_ref[micb_index]--; in wcd934x_micbias_control()
2480 if ((wcd934x->micb_ref[micb_index] == 0) && in wcd934x_micbias_control()
2481 (wcd934x->pullup_ref[micb_index] > 0)) in wcd934x_micbias_control()
2485 else if ((wcd934x->micb_ref[micb_index] == 0) && in wcd934x_micbias_control()
2486 (wcd934x->pullup_ref[micb_index] == 0)) { in wcd934x_micbias_control()
2488 wcd_mbhc_event_notify(wcd934x->mbhc, in wcd934x_micbias_control()
2494 wcd_mbhc_event_notify(wcd934x->mbhc, in wcd934x_micbias_control()
2498 wcd_mbhc_event_notify(wcd934x->mbhc, in wcd934x_micbias_control()
2503 mutex_unlock(&wcd934x->micb_lock); in wcd934x_micbias_control()
2553 struct wcd934x_codec *wcd934x = snd_soc_component_get_drvdata(component); in wcd934x_mbhc_micb_adjust_voltage() local
2572 mutex_lock(&wcd934x->micb_lock); in wcd934x_mbhc_micb_adjust_voltage()
2617 mutex_unlock(&wcd934x->micb_lock); in wcd934x_mbhc_micb_adjust_voltage()
2624 struct wcd934x_codec *wcd934x = snd_soc_component_get_drvdata(component); in wcd934x_mbhc_micb_ctrl_threshold_mic() local
2634 if (wcd934x->micb2_mv >= WCD_MBHC_THR_HS_MICB_MV) in wcd934x_mbhc_micb_ctrl_threshold_mic()
2637 micb_mv = req_en ? WCD_MBHC_THR_HS_MICB_MV : wcd934x->micb2_mv; in wcd934x_mbhc_micb_ctrl_threshold_mic()
2644 static void wcd934x_mbhc_get_result_params(struct wcd934x_codec *wcd934x, in wcd934x_mbhc_get_result_params() argument
2657 regmap_update_bits(wcd934x->regmap, WCD934X_ANA_MBHC_ZDET, 0x20, 0x20); in wcd934x_mbhc_get_result_params()
2659 regmap_read(wcd934x->regmap, WCD934X_ANA_MBHC_RESULT_2, &val); in wcd934x_mbhc_get_result_params()
2664 regmap_read(wcd934x->regmap, WCD934X_ANA_MBHC_RESULT_1, &val1); in wcd934x_mbhc_get_result_params()
2666 regmap_update_bits(wcd934x->regmap, WCD934X_ANA_MBHC_ZDET, 0x20, 0x00); in wcd934x_mbhc_get_result_params()
2674 dev_err(wcd934x->dev, "%s: Impedance detect ramp error, c1=%d, x1=0x%x\n", in wcd934x_mbhc_get_result_params()
2685 dev_dbg(wcd934x->dev, "%s: d1=%d, c1=%d, x1=0x%x, z_val=%di (milliohm)\n", in wcd934x_mbhc_get_result_params()
2691 regmap_read(wcd934x->regmap, WCD934X_ANA_MBHC_RESULT_1, &val); in wcd934x_mbhc_get_result_params()
2692 regmap_read(wcd934x->regmap, WCD934X_ANA_MBHC_RESULT_2, &val1); in wcd934x_mbhc_get_result_params()
2706 struct wcd934x_codec *wcd934x = dev_get_drvdata(component->dev); in wcd934x_mbhc_zdet_ramp() local
2725 regmap_update_bits(wcd934x->regmap, WCD934X_ANA_MBHC_ZDET, 0x80, 0x80); in wcd934x_mbhc_zdet_ramp()
2726 wcd934x_mbhc_get_result_params(wcd934x, d1_a, zdet_param->noff, &zdet); in wcd934x_mbhc_zdet_ramp()
2727 regmap_update_bits(wcd934x->regmap, WCD934X_ANA_MBHC_ZDET, 0x80, 0x00); in wcd934x_mbhc_zdet_ramp()
2735 regmap_update_bits(wcd934x->regmap, WCD934X_ANA_MBHC_ZDET, 0x40, 0x40); in wcd934x_mbhc_zdet_ramp()
2736 wcd934x_mbhc_get_result_params(wcd934x, d1_a, zdet_param->noff, &zdet); in wcd934x_mbhc_zdet_ramp()
2737 regmap_update_bits(wcd934x->regmap, WCD934X_ANA_MBHC_ZDET, 0x40, 0x00); in wcd934x_mbhc_zdet_ramp()
2765 struct wcd934x_codec *wcd934x = dev_get_drvdata(component->dev); in wcd934x_wcd_mbhc_calc_impedance() local
2793 regmap_update_bits(wcd934x->regmap, WCD934X_ANA_MBHC_ELECT, 0x80, 0x00); in wcd934x_wcd_mbhc_calc_impedance()
2797 if (wcd934x->mbhc_cfg.hphl_swh) in wcd934x_wcd_mbhc_calc_impedance()
2798 regmap_update_bits(wcd934x->regmap, WCD934X_ANA_MBHC_MECH, 0x80, 0x00); in wcd934x_wcd_mbhc_calc_impedance()
2801 regmap_update_bits(wcd934x->regmap, WCD934X_ANA_MBHC_MECH, 0x01, 0x00); in wcd934x_wcd_mbhc_calc_impedance()
2885 wcd_mbhc_set_hph_type(wcd934x->mbhc, WCD_MBHC_HPH_MONO); in wcd934x_wcd_mbhc_calc_impedance()
2909 wcd_mbhc_set_hph_type(wcd934x->mbhc, WCD_MBHC_HPH_STEREO); in wcd934x_wcd_mbhc_calc_impedance()
2913 wcd_mbhc_set_hph_type(wcd934x->mbhc, WCD_MBHC_HPH_MONO); in wcd934x_wcd_mbhc_calc_impedance()
2921 regmap_update_bits(wcd934x->regmap, WCD934X_ANA_MBHC_MECH, 0x01, 0x01); in wcd934x_wcd_mbhc_calc_impedance()
2924 if (wcd934x->mbhc_cfg.hphl_swh) in wcd934x_wcd_mbhc_calc_impedance()
2925 regmap_update_bits(wcd934x->regmap, WCD934X_ANA_MBHC_MECH, 0x80, 0x80); in wcd934x_wcd_mbhc_calc_impedance()
2930 regmap_update_bits(wcd934x->regmap, WCD934X_ANA_MBHC_ELECT, 0x80, 0x80); in wcd934x_wcd_mbhc_calc_impedance()
5956 .name = "wcd934x-codec",
5966 .name = "wcd934x-codec",
5970 MODULE_ALIAS("platform:wcd934x-codec");
5972 MODULE_DESCRIPTION("WCD934x codec driver");