Lines Matching refs:wm8996

108 	struct wm8996_priv *wm8996 = container_of(nb, struct wm8996_priv, \
111 regcache_mark_dirty(wm8996->regmap); \
339 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in wm8996_set_retune_mobile() local
340 struct wm8996_pdata *pdata = &wm8996->pdata; in wm8996_set_retune_mobile()
343 if (!wm8996->num_retune_mobile_texts) in wm8996_set_retune_mobile()
369 cfg = wm8996->retune_mobile_cfg[block]; in wm8996_set_retune_mobile()
374 wm8996->retune_mobile_texts[cfg]) == 0 && in wm8996_set_retune_mobile()
376 - wm8996->rx_rate[iface]) < best_val) { in wm8996_set_retune_mobile()
379 - wm8996->rx_rate[iface]); in wm8996_set_retune_mobile()
387 wm8996->rx_rate[iface]); in wm8996_set_retune_mobile()
416 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in wm8996_put_retune_mobile_enum() local
417 struct wm8996_pdata *pdata = &wm8996->pdata; in wm8996_put_retune_mobile_enum()
427 wm8996->retune_mobile_cfg[block] = value; in wm8996_put_retune_mobile_enum()
438 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in wm8996_get_retune_mobile_enum() local
443 ucontrol->value.enumerated.item[0] = wm8996->retune_mobile_cfg[block]; in wm8996_get_retune_mobile_enum()
579 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in wm8996_bg_enable() local
581 wm8996->bg_ena++; in wm8996_bg_enable()
582 if (wm8996->bg_ena == 1) { in wm8996_bg_enable()
591 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in wm8996_bg_disable() local
593 wm8996->bg_ena--; in wm8996_bg_disable()
594 if (!wm8996->bg_ena) in wm8996_bg_disable()
638 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in rmv_short_event() local
643 wm8996->hpout_pending &= ~w->shift; in rmv_short_event()
646 wm8996->hpout_pending |= w->shift; in rmv_short_event()
659 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in wait_for_dc_servo() local
668 timeout = wait_for_completion_timeout(&wm8996->dcs_done, in wait_for_dc_servo()
692 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in wm8996_seq_notifier() local
696 if (wm8996->dcs_pending) { in wm8996_seq_notifier()
698 wm8996->dcs_pending); in wm8996_seq_notifier()
701 wait_for_dc_servo(codec, wm8996->dcs_pending in wm8996_seq_notifier()
704 wm8996->dcs_pending = 0; in wm8996_seq_notifier()
707 if (wm8996->hpout_pending != wm8996->hpout_ena) { in wm8996_seq_notifier()
709 wm8996->hpout_ena, wm8996->hpout_pending); in wm8996_seq_notifier()
713 if (wm8996->hpout_pending & HPOUT1L) { in wm8996_seq_notifier()
722 if (wm8996->hpout_pending & HPOUT1R) { in wm8996_seq_notifier()
735 if (wm8996->hpout_pending & HPOUT2L) { in wm8996_seq_notifier()
744 if (wm8996->hpout_pending & HPOUT2R) { in wm8996_seq_notifier()
755 wm8996->hpout_ena = wm8996->hpout_pending; in wm8996_seq_notifier()
763 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in dcs_start() local
767 wm8996->dcs_pending |= 1 << w->shift; in dcs_start()
1537 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in wm8996_update_bclk() local
1543 if (wm8996->sysclk < 64000) in wm8996_update_bclk()
1556 bclk_rate = wm8996->bclk_rate[aif]; in wm8996_update_bclk()
1561 cur_val = (wm8996->sysclk / bclk_divs[i]) - bclk_rate; in wm8996_update_bclk()
1566 bclk_rate = wm8996->sysclk / bclk_divs[best]; in wm8996_update_bclk()
1578 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in wm8996_set_bias_level() local
1594 ret = regulator_bulk_enable(ARRAY_SIZE(wm8996->supplies), in wm8996_set_bias_level()
1595 wm8996->supplies); in wm8996_set_bias_level()
1603 if (wm8996->pdata.ldo_ena >= 0) { in wm8996_set_bias_level()
1604 gpio_set_value_cansleep(wm8996->pdata.ldo_ena, in wm8996_set_bias_level()
1609 regcache_cache_only(wm8996->regmap, false); in wm8996_set_bias_level()
1610 regcache_sync(wm8996->regmap); in wm8996_set_bias_level()
1621 regcache_cache_only(wm8996->regmap, true); in wm8996_set_bias_level()
1622 if (wm8996->pdata.ldo_ena >= 0) { in wm8996_set_bias_level()
1623 gpio_set_value_cansleep(wm8996->pdata.ldo_ena, 0); in wm8996_set_bias_level()
1624 regcache_cache_only(wm8996->regmap, true); in wm8996_set_bias_level()
1626 regulator_bulk_disable(ARRAY_SIZE(wm8996->supplies), in wm8996_set_bias_level()
1627 wm8996->supplies); in wm8996_set_bias_level()
1738 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in wm8996_hw_params() local
1779 wm8996->bclk_rate[dai->id] = bclk_rate; in wm8996_hw_params()
1780 wm8996->rx_rate[dai->id] = params_rate(params); in wm8996_hw_params()
1818 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in wm8996_set_sysclk() local
1825 if (freq == wm8996->sysclk && clk_id == wm8996->sysclk_src) in wm8996_set_sysclk()
1835 wm8996->sysclk = freq; in wm8996_set_sysclk()
1839 wm8996->sysclk = freq; in wm8996_set_sysclk()
1843 wm8996->sysclk = freq; in wm8996_set_sysclk()
1851 switch (wm8996->sysclk) { in wm8996_set_sysclk()
1860 wm8996->sysclk /= 2; in wm8996_set_sysclk()
1873 wm8996->sysclk); in wm8996_set_sysclk()
1888 wm8996->sysclk_src = clk_id; in wm8996_set_sysclk()
2007 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in wm8996_set_fll() local
2014 if (source == wm8996->fll_src && Fref == wm8996->fll_fref && in wm8996_set_fll()
2015 Fout == wm8996->fll_fout) in wm8996_set_fll()
2021 wm8996->fll_fref = 0; in wm8996_set_fll()
2022 wm8996->fll_fout = 0; in wm8996_set_fll()
2089 try_wait_for_completion(&wm8996->fll_lock); in wm8996_set_fll()
2115 time_left = wait_for_completion_timeout(&wm8996->fll_lock, in wm8996_set_fll()
2134 wm8996->fll_fref = Fref; in wm8996_set_fll()
2135 wm8996->fll_fout = Fout; in wm8996_set_fll()
2136 wm8996->fll_src = source; in wm8996_set_fll()
2149 struct wm8996_priv *wm8996 = gpio_to_wm8996(chip); in wm8996_gpio_set() local
2151 regmap_update_bits(wm8996->regmap, WM8996_GPIO_1 + offset, in wm8996_gpio_set()
2158 struct wm8996_priv *wm8996 = gpio_to_wm8996(chip); in wm8996_gpio_direction_out() local
2163 return regmap_update_bits(wm8996->regmap, WM8996_GPIO_1 + offset, in wm8996_gpio_direction_out()
2170 struct wm8996_priv *wm8996 = gpio_to_wm8996(chip); in wm8996_gpio_get() local
2174 ret = regmap_read(wm8996->regmap, WM8996_GPIO_1 + offset, &reg); in wm8996_gpio_get()
2183 struct wm8996_priv *wm8996 = gpio_to_wm8996(chip); in wm8996_gpio_direction_in() local
2185 return regmap_update_bits(wm8996->regmap, WM8996_GPIO_1 + offset, in wm8996_gpio_direction_in()
2201 static void wm8996_init_gpio(struct wm8996_priv *wm8996) in wm8996_init_gpio() argument
2205 wm8996->gpio_chip = wm8996_template_chip; in wm8996_init_gpio()
2206 wm8996->gpio_chip.ngpio = 5; in wm8996_init_gpio()
2207 wm8996->gpio_chip.dev = wm8996->dev; in wm8996_init_gpio()
2209 if (wm8996->pdata.gpio_base) in wm8996_init_gpio()
2210 wm8996->gpio_chip.base = wm8996->pdata.gpio_base; in wm8996_init_gpio()
2212 wm8996->gpio_chip.base = -1; in wm8996_init_gpio()
2214 ret = gpiochip_add(&wm8996->gpio_chip); in wm8996_init_gpio()
2216 dev_err(wm8996->dev, "Failed to add GPIOs: %d\n", ret); in wm8996_init_gpio()
2219 static void wm8996_free_gpio(struct wm8996_priv *wm8996) in wm8996_free_gpio() argument
2221 gpiochip_remove(&wm8996->gpio_chip); in wm8996_free_gpio()
2224 static void wm8996_init_gpio(struct wm8996_priv *wm8996) in wm8996_init_gpio() argument
2228 static void wm8996_free_gpio(struct wm8996_priv *wm8996) in wm8996_free_gpio() argument
2247 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in wm8996_detect() local
2250 wm8996->jack = jack; in wm8996_detect()
2251 wm8996->detecting = true; in wm8996_detect()
2252 wm8996->polarity_cb = polarity_cb; in wm8996_detect()
2253 wm8996->jack_flips = 0; in wm8996_detect()
2255 if (wm8996->polarity_cb) in wm8996_detect()
2256 wm8996->polarity_cb(codec, 0); in wm8996_detect()
2294 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in wm8996_hpdet_irq() local
2326 if (wm8996->jack_mic) in wm8996_hpdet_irq()
2329 snd_soc_jack_report(wm8996->jack, report, in wm8996_hpdet_irq()
2332 wm8996->detecting = false; in wm8996_hpdet_irq()
2391 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in wm8996_micd() local
2406 wm8996->jack_mic = false; in wm8996_micd()
2407 wm8996->detecting = true; in wm8996_micd()
2408 wm8996->jack_flips = 0; in wm8996_micd()
2409 snd_soc_jack_report(wm8996->jack, 0, in wm8996_micd()
2426 if (wm8996->detecting) { in wm8996_micd()
2428 wm8996->jack_mic = true; in wm8996_micd()
2440 snd_soc_jack_report(wm8996->jack, 0, SND_JACK_BTN_0); in wm8996_micd()
2452 if (wm8996->detecting && (val & 0x3f0)) { in wm8996_micd()
2453 wm8996->jack_flips++; in wm8996_micd()
2455 if (wm8996->jack_flips > 1) { in wm8996_micd()
2467 if (wm8996->polarity_cb) in wm8996_micd()
2468 wm8996->polarity_cb(codec, in wm8996_micd()
2481 if (wm8996->jack_mic) { in wm8996_micd()
2483 snd_soc_jack_report(wm8996->jack, SND_JACK_BTN_0, in wm8996_micd()
2485 } else if (wm8996->detecting) { in wm8996_micd()
2494 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in wm8996_irq() local
2512 complete(&wm8996->dcs_done); in wm8996_irq()
2520 complete(&wm8996->fll_lock); in wm8996_irq()
2548 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in wm8996_retune_mobile_pdata() local
2549 struct wm8996_pdata *pdata = &wm8996->pdata; in wm8996_retune_mobile_pdata()
2553 wm8996->retune_mobile_enum, in wm8996_retune_mobile_pdata()
2557 wm8996->retune_mobile_enum, in wm8996_retune_mobile_pdata()
2568 wm8996->num_retune_mobile_texts = 0; in wm8996_retune_mobile_pdata()
2569 wm8996->retune_mobile_texts = NULL; in wm8996_retune_mobile_pdata()
2571 for (j = 0; j < wm8996->num_retune_mobile_texts; j++) { in wm8996_retune_mobile_pdata()
2573 wm8996->retune_mobile_texts[j]) == 0) in wm8996_retune_mobile_pdata()
2577 if (j != wm8996->num_retune_mobile_texts) in wm8996_retune_mobile_pdata()
2581 t = krealloc(wm8996->retune_mobile_texts, in wm8996_retune_mobile_pdata()
2583 (wm8996->num_retune_mobile_texts + 1), in wm8996_retune_mobile_pdata()
2589 t[wm8996->num_retune_mobile_texts] = in wm8996_retune_mobile_pdata()
2593 wm8996->num_retune_mobile_texts++; in wm8996_retune_mobile_pdata()
2594 wm8996->retune_mobile_texts = t; in wm8996_retune_mobile_pdata()
2598 wm8996->num_retune_mobile_texts); in wm8996_retune_mobile_pdata()
2600 wm8996->retune_mobile_enum.items = wm8996->num_retune_mobile_texts; in wm8996_retune_mobile_pdata()
2601 wm8996->retune_mobile_enum.texts = wm8996->retune_mobile_texts; in wm8996_retune_mobile_pdata()
2624 struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec); in wm8996_probe() local
2628 wm8996->codec = codec; in wm8996_probe()
2630 init_completion(&wm8996->dcs_done); in wm8996_probe()
2631 init_completion(&wm8996->fll_lock); in wm8996_probe()
2633 if (wm8996->pdata.num_retune_mobile_cfgs) in wm8996_probe()
2640 if (wm8996->pdata.irq_flags) in wm8996_probe()
2641 irq_flags = wm8996->pdata.irq_flags; in wm8996_probe()
2765 struct wm8996_priv *wm8996; in wm8996_i2c_probe() local
2769 wm8996 = devm_kzalloc(&i2c->dev, sizeof(struct wm8996_priv), in wm8996_i2c_probe()
2771 if (wm8996 == NULL) in wm8996_i2c_probe()
2774 i2c_set_clientdata(i2c, wm8996); in wm8996_i2c_probe()
2775 wm8996->dev = &i2c->dev; in wm8996_i2c_probe()
2778 memcpy(&wm8996->pdata, dev_get_platdata(&i2c->dev), in wm8996_i2c_probe()
2779 sizeof(wm8996->pdata)); in wm8996_i2c_probe()
2781 if (wm8996->pdata.ldo_ena > 0) { in wm8996_i2c_probe()
2782 ret = gpio_request_one(wm8996->pdata.ldo_ena, in wm8996_i2c_probe()
2786 wm8996->pdata.ldo_ena, ret); in wm8996_i2c_probe()
2791 for (i = 0; i < ARRAY_SIZE(wm8996->supplies); i++) in wm8996_i2c_probe()
2792 wm8996->supplies[i].supply = wm8996_supply_names[i]; in wm8996_i2c_probe()
2794 ret = devm_regulator_bulk_get(&i2c->dev, ARRAY_SIZE(wm8996->supplies), in wm8996_i2c_probe()
2795 wm8996->supplies); in wm8996_i2c_probe()
2801 wm8996->disable_nb[0].notifier_call = wm8996_regulator_event_0; in wm8996_i2c_probe()
2802 wm8996->disable_nb[1].notifier_call = wm8996_regulator_event_1; in wm8996_i2c_probe()
2803 wm8996->disable_nb[2].notifier_call = wm8996_regulator_event_2; in wm8996_i2c_probe()
2806 for (i = 0; i < ARRAY_SIZE(wm8996->supplies); i++) { in wm8996_i2c_probe()
2807 ret = regulator_register_notifier(wm8996->supplies[i].consumer, in wm8996_i2c_probe()
2808 &wm8996->disable_nb[i]); in wm8996_i2c_probe()
2816 ret = regulator_bulk_enable(ARRAY_SIZE(wm8996->supplies), in wm8996_i2c_probe()
2817 wm8996->supplies); in wm8996_i2c_probe()
2823 if (wm8996->pdata.ldo_ena > 0) { in wm8996_i2c_probe()
2824 gpio_set_value_cansleep(wm8996->pdata.ldo_ena, 1); in wm8996_i2c_probe()
2828 wm8996->regmap = devm_regmap_init_i2c(i2c, &wm8996_regmap); in wm8996_i2c_probe()
2829 if (IS_ERR(wm8996->regmap)) { in wm8996_i2c_probe()
2830 ret = PTR_ERR(wm8996->regmap); in wm8996_i2c_probe()
2835 ret = regmap_read(wm8996->regmap, WM8996_SOFTWARE_RESET, &reg); in wm8996_i2c_probe()
2846 ret = regmap_read(wm8996->regmap, WM8996_CHIP_REVISION, &reg); in wm8996_i2c_probe()
2856 if (wm8996->pdata.ldo_ena > 0) { in wm8996_i2c_probe()
2857 gpio_set_value_cansleep(wm8996->pdata.ldo_ena, 0); in wm8996_i2c_probe()
2858 regcache_cache_only(wm8996->regmap, true); in wm8996_i2c_probe()
2860 ret = regmap_write(wm8996->regmap, WM8996_SOFTWARE_RESET, in wm8996_i2c_probe()
2868 regulator_bulk_disable(ARRAY_SIZE(wm8996->supplies), wm8996->supplies); in wm8996_i2c_probe()
2871 regmap_update_bits(wm8996->regmap, WM8996_LINE_INPUT_CONTROL, in wm8996_i2c_probe()
2873 wm8996->pdata.inl_mode << WM8996_INL_MODE_SHIFT | in wm8996_i2c_probe()
2874 wm8996->pdata.inr_mode); in wm8996_i2c_probe()
2876 for (i = 0; i < ARRAY_SIZE(wm8996->pdata.gpio_default); i++) { in wm8996_i2c_probe()
2877 if (!wm8996->pdata.gpio_default[i]) in wm8996_i2c_probe()
2880 regmap_write(wm8996->regmap, WM8996_GPIO_1 + i, in wm8996_i2c_probe()
2881 wm8996->pdata.gpio_default[i] & 0xffff); in wm8996_i2c_probe()
2884 if (wm8996->pdata.spkmute_seq) in wm8996_i2c_probe()
2885 regmap_update_bits(wm8996->regmap, in wm8996_i2c_probe()
2889 wm8996->pdata.spkmute_seq); in wm8996_i2c_probe()
2891 regmap_update_bits(wm8996->regmap, WM8996_ACCESSORY_DETECT_MODE_2, in wm8996_i2c_probe()
2893 WM8996_MICD_SRC, wm8996->pdata.micdet_def); in wm8996_i2c_probe()
2896 regmap_update_bits(wm8996->regmap, WM8996_LEFT_LINE_INPUT_VOLUME, in wm8996_i2c_probe()
2898 regmap_update_bits(wm8996->regmap, WM8996_RIGHT_LINE_INPUT_VOLUME, in wm8996_i2c_probe()
2901 regmap_update_bits(wm8996->regmap, WM8996_DAC1_LEFT_VOLUME, in wm8996_i2c_probe()
2903 regmap_update_bits(wm8996->regmap, WM8996_DAC1_RIGHT_VOLUME, in wm8996_i2c_probe()
2905 regmap_update_bits(wm8996->regmap, WM8996_DAC2_LEFT_VOLUME, in wm8996_i2c_probe()
2907 regmap_update_bits(wm8996->regmap, WM8996_DAC2_RIGHT_VOLUME, in wm8996_i2c_probe()
2910 regmap_update_bits(wm8996->regmap, WM8996_OUTPUT1_LEFT_VOLUME, in wm8996_i2c_probe()
2912 regmap_update_bits(wm8996->regmap, WM8996_OUTPUT1_RIGHT_VOLUME, in wm8996_i2c_probe()
2914 regmap_update_bits(wm8996->regmap, WM8996_OUTPUT2_LEFT_VOLUME, in wm8996_i2c_probe()
2916 regmap_update_bits(wm8996->regmap, WM8996_OUTPUT2_RIGHT_VOLUME, in wm8996_i2c_probe()
2919 regmap_update_bits(wm8996->regmap, WM8996_DSP1_TX_LEFT_VOLUME, in wm8996_i2c_probe()
2921 regmap_update_bits(wm8996->regmap, WM8996_DSP1_TX_RIGHT_VOLUME, in wm8996_i2c_probe()
2923 regmap_update_bits(wm8996->regmap, WM8996_DSP2_TX_LEFT_VOLUME, in wm8996_i2c_probe()
2925 regmap_update_bits(wm8996->regmap, WM8996_DSP2_TX_RIGHT_VOLUME, in wm8996_i2c_probe()
2928 regmap_update_bits(wm8996->regmap, WM8996_DSP1_RX_LEFT_VOLUME, in wm8996_i2c_probe()
2930 regmap_update_bits(wm8996->regmap, WM8996_DSP1_RX_RIGHT_VOLUME, in wm8996_i2c_probe()
2932 regmap_update_bits(wm8996->regmap, WM8996_DSP2_RX_LEFT_VOLUME, in wm8996_i2c_probe()
2934 regmap_update_bits(wm8996->regmap, WM8996_DSP2_RX_RIGHT_VOLUME, in wm8996_i2c_probe()
2940 regmap_update_bits(wm8996->regmap, in wm8996_i2c_probe()
2945 regmap_update_bits(wm8996->regmap, in wm8996_i2c_probe()
2950 regmap_update_bits(wm8996->regmap, in wm8996_i2c_probe()
2955 regmap_update_bits(wm8996->regmap, in wm8996_i2c_probe()
2960 regmap_update_bits(wm8996->regmap, in wm8996_i2c_probe()
2965 regmap_update_bits(wm8996->regmap, in wm8996_i2c_probe()
2971 regmap_update_bits(wm8996->regmap, in wm8996_i2c_probe()
2976 regmap_update_bits(wm8996->regmap, in wm8996_i2c_probe()
2982 regmap_update_bits(wm8996->regmap, in wm8996_i2c_probe()
2987 regmap_update_bits(wm8996->regmap, in wm8996_i2c_probe()
2992 regmap_update_bits(wm8996->regmap, in wm8996_i2c_probe()
2997 regmap_update_bits(wm8996->regmap, in wm8996_i2c_probe()
3002 regmap_update_bits(wm8996->regmap, in wm8996_i2c_probe()
3007 regmap_update_bits(wm8996->regmap, in wm8996_i2c_probe()
3013 regmap_update_bits(wm8996->regmap, in wm8996_i2c_probe()
3018 regmap_update_bits(wm8996->regmap, in wm8996_i2c_probe()
3027 ret = regmap_read(wm8996->regmap, WM8996_GPIO_1, &reg); in wm8996_i2c_probe()
3034 regmap_update_bits(wm8996->regmap, WM8996_AIF1_TX_LRCLK_2, in wm8996_i2c_probe()
3038 ret = regmap_read(wm8996->regmap, WM8996_GPIO_2, &reg); in wm8996_i2c_probe()
3045 regmap_update_bits(wm8996->regmap, WM8996_AIF2_TX_LRCLK_2, in wm8996_i2c_probe()
3049 wm8996_init_gpio(wm8996); in wm8996_i2c_probe()
3060 wm8996_free_gpio(wm8996); in wm8996_i2c_probe()
3063 if (wm8996->pdata.ldo_ena > 0) in wm8996_i2c_probe()
3064 gpio_set_value_cansleep(wm8996->pdata.ldo_ena, 0); in wm8996_i2c_probe()
3065 regulator_bulk_disable(ARRAY_SIZE(wm8996->supplies), wm8996->supplies); in wm8996_i2c_probe()
3067 if (wm8996->pdata.ldo_ena > 0) in wm8996_i2c_probe()
3068 gpio_free(wm8996->pdata.ldo_ena); in wm8996_i2c_probe()
3076 struct wm8996_priv *wm8996 = i2c_get_clientdata(client); in wm8996_i2c_remove() local
3080 wm8996_free_gpio(wm8996); in wm8996_i2c_remove()
3081 if (wm8996->pdata.ldo_ena > 0) { in wm8996_i2c_remove()
3082 gpio_set_value_cansleep(wm8996->pdata.ldo_ena, 0); in wm8996_i2c_remove()
3083 gpio_free(wm8996->pdata.ldo_ena); in wm8996_i2c_remove()
3085 for (i = 0; i < ARRAY_SIZE(wm8996->supplies); i++) in wm8996_i2c_remove()
3086 regulator_unregister_notifier(wm8996->supplies[i].consumer, in wm8996_i2c_remove()
3087 &wm8996->disable_nb[i]); in wm8996_i2c_remove()