Lines Matching defs:wcd939x

33 #include "wcd939x.h"
296 .name = "wcd939x",
509 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
523 if (wcd939x->comp1_enable) {
529 if (!wcd939x->comp2_enable ||
563 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
580 if (wcd939x->comp2_enable) {
586 if (!wcd939x->comp1_enable ||
619 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
631 wcd_clsh_ctrl_set_state(wcd939x->clsh_info, WCD_CLSH_EVENT_PRE_DAC,
651 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
652 int hph_mode = wcd939x->hph_mode;
656 if (wcd939x->ldoh)
660 wcd_clsh_ctrl_set_state(wcd939x->clsh_info, WCD_CLSH_EVENT_PRE_DAC,
662 wcd_clsh_set_hph_mode(wcd939x->clsh_info, CLS_H_HIFI);
681 set_bit(HPH_PA_DELAY, &wcd939x->status_mask);
691 if (test_bit(HPH_PA_DELAY, &wcd939x->status_mask)) {
692 if (!wcd939x->comp2_enable)
703 clear_bit(HPH_PA_DELAY, &wcd939x->status_mask);
713 enable_irq(wcd939x->hphr_pdm_wd_int);
716 disable_irq_nosync(wcd939x->hphr_pdm_wd_int);
722 if (!wcd939x->comp2_enable)
730 wcd_mbhc_event_notify(wcd939x->wcd_mbhc,
732 set_bit(HPH_PA_DELAY, &wcd939x->status_mask);
740 if (test_bit(HPH_PA_DELAY, &wcd939x->status_mask)) {
741 if (!wcd939x->comp2_enable)
745 clear_bit(HPH_PA_DELAY, &wcd939x->status_mask);
747 wcd_mbhc_event_notify(wcd939x->wcd_mbhc,
755 wcd_clsh_ctrl_set_state(wcd939x->clsh_info, WCD_CLSH_EVENT_POST_PA,
757 if (wcd939x->ldoh)
771 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
772 int hph_mode = wcd939x->hph_mode;
779 if (wcd939x->ldoh)
782 wcd_clsh_ctrl_set_state(wcd939x->clsh_info, WCD_CLSH_EVENT_PRE_DAC,
784 wcd_clsh_set_hph_mode(wcd939x->clsh_info, CLS_H_HIFI);
804 set_bit(HPH_PA_DELAY, &wcd939x->status_mask);
814 if (test_bit(HPH_PA_DELAY, &wcd939x->status_mask)) {
815 if (!wcd939x->comp1_enable)
825 clear_bit(HPH_PA_DELAY, &wcd939x->status_mask);
834 enable_irq(wcd939x->hphl_pdm_wd_int);
837 disable_irq_nosync(wcd939x->hphl_pdm_wd_int);
843 if (!wcd939x->comp1_enable)
851 wcd_mbhc_event_notify(wcd939x->wcd_mbhc, WCD_EVENT_PRE_HPHL_PA_OFF);
852 set_bit(HPH_PA_DELAY, &wcd939x->status_mask);
860 if (test_bit(HPH_PA_DELAY, &wcd939x->status_mask)) {
861 if (!wcd939x->comp1_enable)
865 clear_bit(HPH_PA_DELAY, &wcd939x->status_mask);
867 wcd_mbhc_event_notify(wcd939x->wcd_mbhc,
873 wcd_clsh_ctrl_set_state(wcd939x->clsh_info, WCD_CLSH_EVENT_POST_PA,
875 if (wcd939x->ldoh)
888 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
904 enable_irq(wcd939x->ear_pdm_wd_int);
907 disable_irq_nosync(wcd939x->ear_pdm_wd_int);
917 wcd_clsh_ctrl_set_state(wcd939x->clsh_info, WCD_CLSH_EVENT_POST_PA,
1016 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
1020 bank = wcd939x_swr_get_current_bank(wcd939x->sdw_priv[AIF1_CAP]->sdev);
1027 if (test_bit(WCD_ADC1, &wcd939x->status_mask))
1028 mode |= tx_mode_bit[wcd939x->tx_mode[WCD_ADC1]];
1029 if (test_bit(WCD_ADC2, &wcd939x->status_mask))
1030 mode |= tx_mode_bit[wcd939x->tx_mode[WCD_ADC2]];
1031 if (test_bit(WCD_ADC3, &wcd939x->status_mask))
1032 mode |= tx_mode_bit[wcd939x->tx_mode[WCD_ADC3]];
1033 if (test_bit(WCD_ADC4, &wcd939x->status_mask))
1034 mode |= tx_mode_bit[wcd939x->tx_mode[WCD_ADC4]];
1093 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
1102 set_bit(w->shift, &wcd939x->status_mask);
1111 clear_bit(w->shift, &wcd939x->status_mask);
1151 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
1162 mode = wcd939x_get_adc_mode(wcd939x->tx_mode[w->shift]);
1269 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
1299 wcd939x->pullup_ref[micb_index]++;
1300 if (wcd939x->pullup_ref[micb_index] == 1 &&
1301 wcd939x->micb_ref[micb_index] == 0)
1306 if (wcd939x->pullup_ref[micb_index] > 0)
1307 wcd939x->pullup_ref[micb_index]--;
1308 if (wcd939x->pullup_ref[micb_index] == 0 &&
1309 wcd939x->micb_ref[micb_index] == 0)
1314 wcd939x->micb_ref[micb_index]++;
1315 if (wcd939x->micb_ref[micb_index] == 1) {
1351 wcd_mbhc_event_notify(wcd939x->wcd_mbhc,
1355 wcd_mbhc_event_notify(wcd939x->wcd_mbhc,
1359 if (wcd939x->micb_ref[micb_index] > 0)
1360 wcd939x->micb_ref[micb_index]--;
1362 if (wcd939x->micb_ref[micb_index] == 0 &&
1363 wcd939x->pullup_ref[micb_index] > 0)
1366 else if (wcd939x->micb_ref[micb_index] == 0 &&
1367 wcd939x->pullup_ref[micb_index] == 0) {
1369 wcd_mbhc_event_notify(wcd939x->wcd_mbhc,
1375 wcd_mbhc_event_notify(wcd939x->wcd_mbhc,
1379 wcd_mbhc_event_notify(wcd939x->wcd_mbhc,
1439 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
1443 ucontrol->value.enumerated.item[0] = wcd939x->tx_mode[path];
1452 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
1456 if (wcd939x->tx_mode[path] == ucontrol->value.enumerated.item[0])
1459 wcd939x->tx_mode[path] = ucontrol->value.enumerated.item[0];
1470 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
1472 ucontrol->value.integer.value[0] = wcd939x->hph_mode;
1481 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
1486 if (mode_val == wcd939x->hph_mode)
1489 if (wcd939x->variant == WCD9390) {
1498 wcd939x->hph_mode = mode_val;
1512 wcd939x->hph_mode = mode_val;
1526 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
1529 ucontrol->value.integer.value[0] = wcd939x->comp2_enable ? 1 : 0;
1531 ucontrol->value.integer.value[0] = wcd939x->comp1_enable ? 1 : 0;
1541 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
1542 struct wcd939x_sdw_priv *wcd = wcd939x->sdw_priv[AIF1_PB];
1547 wcd939x->comp2_enable = value;
1549 wcd939x->comp1_enable = value;
1563 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
1565 ucontrol->value.integer.value[0] = wcd939x->ldoh ? 1 : 0;
1574 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
1576 if (wcd939x->ldoh == !!ucontrol->value.integer.value[0])
1579 wcd939x->ldoh = !!ucontrol->value.integer.value[0];
1795 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(comp);
1796 struct wcd939x_sdw_priv *wcd = wcd939x->sdw_priv[mixer->shift];
1822 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(comp);
1823 struct wcd939x_sdw_priv *wcd = wcd939x->sdw_priv[mixer->shift];
1937 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
1967 mutex_lock(&wcd939x->micb_lock);
2015 mutex_unlock(&wcd939x->micb_lock);
2022 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
2032 if (wcd939x->micb2_mv >= WCD_MBHC_THR_HS_MICB_MV)
2035 micb_mv = req_en ? WCD_MBHC_THR_HS_MICB_MV : wcd939x->micb2_mv;
2188 struct wcd939x_priv *wcd939x = dev_get_drvdata(component->dev);
2208 if (wcd939x->mbhc_cfg.hphl_swh)
2267 wcd_mbhc_set_hph_type(wcd939x->wcd_mbhc, WCD_MBHC_HPH_MONO);
2291 wcd_mbhc_set_hph_type(wcd939x->wcd_mbhc, WCD_MBHC_HPH_STEREO);
2295 wcd_mbhc_set_hph_type(wcd939x->wcd_mbhc, WCD_MBHC_HPH_MONO);
2314 if (wcd939x->mbhc_cfg.hphl_swh)
2355 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
2357 if (wcd939x->mbhc_cfg.moist_rref == R_OFF || wcd939x->typec_analog_mux) {
2364 if (!wcd939x->mbhc_cfg.hphl_swh) {
2373 WCD939X_CTL_2_M_RTH_CTL, wcd939x->mbhc_cfg.moist_rref);
2378 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
2383 wcd939x->mbhc_cfg.moist_rref);
2391 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
2394 if (wcd939x->mbhc_cfg.moist_rref == R_OFF || wcd939x->typec_analog_mux) {
2401 if (!wcd939x->mbhc_cfg.hphl_swh) {
2457 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
2459 ucontrol->value.integer.value[0] = wcd_mbhc_get_hph_type(wcd939x->wcd_mbhc);
2469 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
2473 wcd_mbhc_get_impedance(wcd939x->wcd_mbhc, &zl, &zr);
2494 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
2495 struct wcd_mbhc_intr *intr_ids = &wcd939x->intr_ids;
2497 intr_ids->mbhc_sw_intr = regmap_irq_get_virq(wcd939x->irq_chip,
2499 intr_ids->mbhc_btn_press_intr = regmap_irq_get_virq(wcd939x->irq_chip,
2501 intr_ids->mbhc_btn_release_intr = regmap_irq_get_virq(wcd939x->irq_chip,
2503 intr_ids->mbhc_hs_ins_intr = regmap_irq_get_virq(wcd939x->irq_chip,
2505 intr_ids->mbhc_hs_rem_intr = regmap_irq_get_virq(wcd939x->irq_chip,
2507 intr_ids->hph_left_ocp = regmap_irq_get_virq(wcd939x->irq_chip,
2509 intr_ids->hph_right_ocp = regmap_irq_get_virq(wcd939x->irq_chip,
2512 wcd939x->wcd_mbhc = wcd_mbhc_init(component, &mbhc_cb, intr_ids, wcd_mbhc_fields, true);
2513 if (IS_ERR(wcd939x->wcd_mbhc))
2514 return PTR_ERR(wcd939x->wcd_mbhc);
2526 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
2528 wcd_mbhc_deinit(wcd939x->wcd_mbhc);
2906 static int wcd939x_set_micbias_data(struct wcd939x_priv *wcd939x)
2911 vout_ctl_1 = wcd939x_get_micb_vout_ctl_val(wcd939x->micb1_mv);
2912 vout_ctl_2 = wcd939x_get_micb_vout_ctl_val(wcd939x->micb2_mv);
2913 vout_ctl_3 = wcd939x_get_micb_vout_ctl_val(wcd939x->micb3_mv);
2914 vout_ctl_4 = wcd939x_get_micb_vout_ctl_val(wcd939x->micb4_mv);
2918 regmap_update_bits(wcd939x->regmap, WCD939X_ANA_MICB1,
2920 regmap_update_bits(wcd939x->regmap, WCD939X_ANA_MICB2,
2922 regmap_update_bits(wcd939x->regmap, WCD939X_ANA_MICB3,
2924 regmap_update_bits(wcd939x->regmap, WCD939X_ANA_MICB4,
3003 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
3004 struct sdw_slave *tx_sdw_dev = wcd939x->tx_sdw_dev;
3016 snd_soc_component_init_regmap(component, wcd939x->regmap);
3022 wcd939x->variant = snd_soc_component_read_field(component,
3026 wcd939x->clsh_info = wcd_clsh_ctrl_alloc(component, WCD939X);
3027 if (IS_ERR(wcd939x->clsh_info)) {
3029 return PTR_ERR(wcd939x->clsh_info);
3036 regmap_write(wcd939x->regmap,
3042 wcd939x->hphr_pdm_wd_int = regmap_irq_get_virq(wcd939x->irq_chip,
3044 wcd939x->hphl_pdm_wd_int = regmap_irq_get_virq(wcd939x->irq_chip,
3046 wcd939x->ear_pdm_wd_int = regmap_irq_get_virq(wcd939x->irq_chip,
3049 ret = request_threaded_irq(wcd939x->hphr_pdm_wd_int, NULL, wcd939x_wd_handle_irq,
3051 "HPHR PDM WD INT", wcd939x);
3057 ret = request_threaded_irq(wcd939x->hphl_pdm_wd_int, NULL, wcd939x_wd_handle_irq,
3059 "HPHL PDM WD INT", wcd939x);
3065 ret = request_threaded_irq(wcd939x->ear_pdm_wd_int, NULL, wcd939x_wd_handle_irq,
3067 "AUX PDM WD INT", wcd939x);
3074 disable_irq_nosync(wcd939x->hphr_pdm_wd_int);
3075 disable_irq_nosync(wcd939x->hphl_pdm_wd_int);
3076 disable_irq_nosync(wcd939x->ear_pdm_wd_int);
3078 switch (wcd939x->variant) {
3085 __func__, wcd939x->variant);
3095 __func__, wcd939x->variant);
3112 free_irq(wcd939x->ear_pdm_wd_int, wcd939x);
3114 free_irq(wcd939x->hphl_pdm_wd_int, wcd939x);
3116 free_irq(wcd939x->hphr_pdm_wd_int, wcd939x);
3118 wcd_clsh_ctrl_free(wcd939x->clsh_info);
3125 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
3129 free_irq(wcd939x->ear_pdm_wd_int, wcd939x);
3130 free_irq(wcd939x->hphl_pdm_wd_int, wcd939x);
3131 free_irq(wcd939x->hphr_pdm_wd_int, wcd939x);
3133 wcd_clsh_ctrl_free(wcd939x->clsh_info);
3168 struct wcd939x_priv *wcd939x = typec_switch_get_drvdata(sw);
3170 wcd939x->typec_orientation = orientation;
3178 struct wcd939x_priv *wcd939x = typec_mux_get_drvdata(mux);
3179 unsigned int previous_mode = wcd939x->typec_mode;
3181 if (!wcd939x->wcd_mbhc)
3184 if (wcd939x->typec_mode != state->mode) {
3185 wcd939x->typec_mode = state->mode;
3187 if (wcd939x->typec_mode == TYPEC_MODE_AUDIO)
3188 return wcd_mbhc_typec_report_plug(wcd939x->wcd_mbhc);
3190 return wcd_mbhc_typec_report_unplug(wcd939x->wcd_mbhc);
3231 struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
3233 if (!wcd939x->typec_analog_mux || !wcd939x->typec_switch)
3237 typec_switch_set(wcd939x->typec_switch,
3238 wcd939x->typec_orientation == TYPEC_ORIENTATION_REVERSE ?
3245 static int wcd939x_populate_dt_data(struct wcd939x_priv *wcd939x, struct device *dev)
3247 struct wcd_mbhc_config *cfg = &wcd939x->mbhc_cfg;
3253 wcd939x->reset_gpio = of_get_named_gpio(dev->of_node, "reset-gpios", 0);
3254 if (wcd939x->reset_gpio < 0)
3255 return dev_err_probe(dev, wcd939x->reset_gpio,
3258 wcd939x->supplies[0].supply = "vdd-rxtx";
3259 wcd939x->supplies[1].supply = "vdd-io";
3260 wcd939x->supplies[2].supply = "vdd-buck";
3261 wcd939x->supplies[3].supply = "vdd-mic-bias";
3263 ret = regulator_bulk_get(dev, WCD939X_MAX_SUPPLY, wcd939x->supplies);
3267 ret = regulator_bulk_enable(WCD939X_MAX_SUPPLY, wcd939x->supplies);
3269 regulator_bulk_free(WCD939X_MAX_SUPPLY, wcd939x->supplies);
3273 wcd939x_dt_parse_micbias_info(dev, wcd939x);
3279 cfg->micb_mv = wcd939x->micb2_mv;
3293 wcd939x->typec_analog_mux = true;
3302 static int wcd939x_reset(struct wcd939x_priv *wcd939x)
3304 gpio_direction_output(wcd939x->reset_gpio, 0);
3307 gpio_set_value(wcd939x->reset_gpio, 1);
3318 struct wcd939x_priv *wcd939x = dev_get_drvdata(dai->dev);
3319 struct wcd939x_sdw_priv *wcd = wcd939x->sdw_priv[dai->id];
3327 struct wcd939x_priv *wcd939x = dev_get_drvdata(dai->dev);
3328 struct wcd939x_sdw_priv *wcd = wcd939x->sdw_priv[dai->id];
3336 struct wcd939x_priv *wcd939x = dev_get_drvdata(dai->dev);
3337 struct wcd939x_sdw_priv *wcd = wcd939x->sdw_priv[dai->id];
3350 .name = "wcd939x-sdw-rx",
3363 .name = "wcd939x-sdw-tx",
3379 struct wcd939x_priv *wcd939x = dev_get_drvdata(dev);
3389 if (wcd939x->typec_analog_mux) {
3390 wcd939x->typec_switch = fwnode_typec_switch_get(dev->fwnode);
3391 if (IS_ERR(wcd939x->typec_switch))
3392 return dev_err_probe(dev, PTR_ERR(wcd939x->typec_switch),
3397 ret = component_bind_all(dev, wcd939x);
3404 wcd939x->rxdev = wcd939x_sdw_device_get(wcd939x->rxnode);
3405 if (!wcd939x->rxdev) {
3410 wcd939x->sdw_priv[AIF1_PB] = dev_get_drvdata(wcd939x->rxdev);
3411 wcd939x->sdw_priv[AIF1_PB]->wcd939x = wcd939x;
3413 wcd939x->txdev = wcd939x_sdw_device_get(wcd939x->txnode);
3414 if (!wcd939x->txdev) {
3419 wcd939x->sdw_priv[AIF1_CAP] = dev_get_drvdata(wcd939x->txdev);
3420 wcd939x->sdw_priv[AIF1_CAP]->wcd939x = wcd939x;
3421 wcd939x->tx_sdw_dev = dev_to_sdw_dev(wcd939x->txdev);
3427 if (!device_link_add(wcd939x->rxdev, wcd939x->txdev, DL_FLAG_STATELESS |
3434 if (!device_link_add(dev, wcd939x->txdev, DL_FLAG_STATELESS |
3441 if (!device_link_add(dev, wcd939x->rxdev, DL_FLAG_STATELESS |
3449 wcd939x->regmap = wcd939x_swr_get_regmap(wcd939x->sdw_priv[AIF1_CAP]);
3450 if (IS_ERR(wcd939x->regmap)) {
3452 ret = PTR_ERR(wcd939x->regmap);
3456 ret = wcd939x_irq_init(wcd939x, dev);
3462 wcd939x->sdw_priv[AIF1_PB]->slave_irq = wcd939x->virq;
3463 wcd939x->sdw_priv[AIF1_CAP]->slave_irq = wcd939x->virq;
3465 ret = wcd939x_set_micbias_data(wcd939x);
3472 regmap_read(wcd939x->regmap, WCD939X_DIGITAL_CHIP_ID1, &id1);
3473 regmap_read(wcd939x->regmap, WCD939X_EAR_STATUS_REG_1, &status1);
3480 dev_dbg(dev, "wcd939x version: %s\n", version_to_str(version));
3493 device_link_remove(dev, wcd939x->rxdev);
3495 device_link_remove(dev, wcd939x->txdev);
3497 device_link_remove(wcd939x->rxdev, wcd939x->txdev);
3499 put_device(wcd939x->txdev);
3501 put_device(wcd939x->rxdev);
3503 component_unbind_all(dev, wcd939x);
3506 if (wcd939x->typec_analog_mux)
3507 typec_switch_put(wcd939x->typec_switch);
3515 struct wcd939x_priv *wcd939x = dev_get_drvdata(dev);
3518 device_link_remove(dev, wcd939x->txdev);
3519 device_link_remove(dev, wcd939x->rxdev);
3520 device_link_remove(wcd939x->rxdev, wcd939x->txdev);
3521 put_device(wcd939x->txdev);
3522 put_device(wcd939x->rxdev);
3523 component_unbind_all(dev, wcd939x);
3531 static int wcd939x_add_slave_components(struct wcd939x_priv *wcd939x,
3537 wcd939x->rxnode = of_parse_phandle(np, "qcom,rx-device", 0);
3538 if (!wcd939x->rxnode) {
3543 of_node_get(wcd939x->rxnode);
3545 component_compare_of, wcd939x->rxnode);
3547 wcd939x->txnode = of_parse_phandle(np, "qcom,tx-device", 0);
3548 if (!wcd939x->txnode) {
3552 of_node_get(wcd939x->txnode);
3554 component_compare_of, wcd939x->txnode);
3561 struct wcd939x_priv *wcd939x = NULL;
3565 wcd939x = devm_kzalloc(dev, sizeof(struct wcd939x_priv),
3567 if (!wcd939x)
3570 dev_set_drvdata(dev, wcd939x);
3571 mutex_init(&wcd939x->micb_lock);
3573 ret = wcd939x_populate_dt_data(wcd939x, dev);
3584 if (wcd939x->typec_analog_mux) {
3586 .drvdata = wcd939x,
3591 .drvdata = wcd939x,
3596 wcd939x->typec_mux = typec_mux_register(dev, &mux_desc);
3597 if (IS_ERR(wcd939x->typec_mux)) {
3598 ret = dev_err_probe(dev, PTR_ERR(wcd939x->typec_mux),
3603 wcd939x->typec_sw = typec_switch_register(dev, &sw_desc);
3604 if (IS_ERR(wcd939x->typec_sw)) {
3605 ret = dev_err_probe(dev, PTR_ERR(wcd939x->typec_sw),
3612 ret = wcd939x_add_slave_components(wcd939x, dev, &match);
3616 wcd939x_reset(wcd939x);
3633 if (wcd939x->typec_analog_mux)
3634 typec_mux_unregister(wcd939x->typec_mux);
3639 if (wcd939x->typec_analog_mux)
3640 typec_switch_unregister(wcd939x->typec_sw);
3644 regulator_bulk_disable(WCD939X_MAX_SUPPLY, wcd939x->supplies);
3645 regulator_bulk_free(WCD939X_MAX_SUPPLY, wcd939x->supplies);
3653 struct wcd939x_priv *wcd939x = dev_get_drvdata(dev);
3661 regulator_bulk_disable(WCD939X_MAX_SUPPLY, wcd939x->supplies);
3662 regulator_bulk_free(WCD939X_MAX_SUPPLY, wcd939x->supplies);