wm8996 105 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = container_of(nb, struct wm8996_priv, \ wm8996 108 sound/soc/codecs/wm8996.c regcache_mark_dirty(wm8996->regmap); \ wm8996 336 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 337 sound/soc/codecs/wm8996.c struct wm8996_pdata *pdata = &wm8996->pdata; wm8996 340 sound/soc/codecs/wm8996.c if (!wm8996->num_retune_mobile_texts) wm8996 366 sound/soc/codecs/wm8996.c cfg = wm8996->retune_mobile_cfg[block]; wm8996 371 sound/soc/codecs/wm8996.c wm8996->retune_mobile_texts[cfg]) == 0 && wm8996 373 sound/soc/codecs/wm8996.c - wm8996->rx_rate[iface]) < best_val) { wm8996 376 sound/soc/codecs/wm8996.c - wm8996->rx_rate[iface]); wm8996 384 sound/soc/codecs/wm8996.c wm8996->rx_rate[iface]); wm8996 413 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 414 sound/soc/codecs/wm8996.c struct wm8996_pdata *pdata = &wm8996->pdata; wm8996 424 sound/soc/codecs/wm8996.c wm8996->retune_mobile_cfg[block] = value; wm8996 435 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 440 sound/soc/codecs/wm8996.c ucontrol->value.enumerated.item[0] = wm8996->retune_mobile_cfg[block]; wm8996 576 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 578 sound/soc/codecs/wm8996.c wm8996->bg_ena++; wm8996 579 sound/soc/codecs/wm8996.c if (wm8996->bg_ena == 1) { wm8996 588 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 590 sound/soc/codecs/wm8996.c wm8996->bg_ena--; wm8996 591 sound/soc/codecs/wm8996.c if (!wm8996->bg_ena) wm8996 635 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 640 sound/soc/codecs/wm8996.c wm8996->hpout_pending &= ~w->shift; wm8996 643 sound/soc/codecs/wm8996.c wm8996->hpout_pending |= w->shift; wm8996 656 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 665 sound/soc/codecs/wm8996.c timeout = wait_for_completion_timeout(&wm8996->dcs_done, wm8996 688 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 692 sound/soc/codecs/wm8996.c if (wm8996->dcs_pending) { wm8996 694 sound/soc/codecs/wm8996.c wm8996->dcs_pending); wm8996 697 sound/soc/codecs/wm8996.c wait_for_dc_servo(component, wm8996->dcs_pending wm8996 700 sound/soc/codecs/wm8996.c wm8996->dcs_pending = 0; wm8996 703 sound/soc/codecs/wm8996.c if (wm8996->hpout_pending != wm8996->hpout_ena) { wm8996 705 sound/soc/codecs/wm8996.c wm8996->hpout_ena, wm8996->hpout_pending); wm8996 709 sound/soc/codecs/wm8996.c if (wm8996->hpout_pending & HPOUT1L) { wm8996 718 sound/soc/codecs/wm8996.c if (wm8996->hpout_pending & HPOUT1R) { wm8996 731 sound/soc/codecs/wm8996.c if (wm8996->hpout_pending & HPOUT2L) { wm8996 740 sound/soc/codecs/wm8996.c if (wm8996->hpout_pending & HPOUT2R) { wm8996 751 sound/soc/codecs/wm8996.c wm8996->hpout_ena = wm8996->hpout_pending; wm8996 759 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 763 sound/soc/codecs/wm8996.c wm8996->dcs_pending |= 1 << w->shift; wm8996 1533 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 1539 sound/soc/codecs/wm8996.c if (wm8996->sysclk < 64000) wm8996 1552 sound/soc/codecs/wm8996.c bclk_rate = wm8996->bclk_rate[aif]; wm8996 1557 sound/soc/codecs/wm8996.c cur_val = (wm8996->sysclk / bclk_divs[i]) - bclk_rate; wm8996 1562 sound/soc/codecs/wm8996.c bclk_rate = wm8996->sysclk / bclk_divs[best]; wm8996 1574 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 1590 sound/soc/codecs/wm8996.c ret = regulator_bulk_enable(ARRAY_SIZE(wm8996->supplies), wm8996 1591 sound/soc/codecs/wm8996.c wm8996->supplies); wm8996 1599 sound/soc/codecs/wm8996.c if (wm8996->pdata.ldo_ena >= 0) { wm8996 1600 sound/soc/codecs/wm8996.c gpio_set_value_cansleep(wm8996->pdata.ldo_ena, wm8996 1605 sound/soc/codecs/wm8996.c regcache_cache_only(wm8996->regmap, false); wm8996 1606 sound/soc/codecs/wm8996.c regcache_sync(wm8996->regmap); wm8996 1617 sound/soc/codecs/wm8996.c regcache_cache_only(wm8996->regmap, true); wm8996 1618 sound/soc/codecs/wm8996.c if (wm8996->pdata.ldo_ena >= 0) { wm8996 1619 sound/soc/codecs/wm8996.c gpio_set_value_cansleep(wm8996->pdata.ldo_ena, 0); wm8996 1620 sound/soc/codecs/wm8996.c regcache_cache_only(wm8996->regmap, true); wm8996 1622 sound/soc/codecs/wm8996.c regulator_bulk_disable(ARRAY_SIZE(wm8996->supplies), wm8996 1623 sound/soc/codecs/wm8996.c wm8996->supplies); wm8996 1734 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 1775 sound/soc/codecs/wm8996.c wm8996->bclk_rate[dai->id] = bclk_rate; wm8996 1776 sound/soc/codecs/wm8996.c wm8996->rx_rate[dai->id] = params_rate(params); wm8996 1814 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 1821 sound/soc/codecs/wm8996.c if (freq == wm8996->sysclk && clk_id == wm8996->sysclk_src) wm8996 1831 sound/soc/codecs/wm8996.c wm8996->sysclk = freq; wm8996 1835 sound/soc/codecs/wm8996.c wm8996->sysclk = freq; wm8996 1839 sound/soc/codecs/wm8996.c wm8996->sysclk = freq; wm8996 1847 sound/soc/codecs/wm8996.c switch (wm8996->sysclk) { wm8996 1856 sound/soc/codecs/wm8996.c wm8996->sysclk /= 2; wm8996 1870 sound/soc/codecs/wm8996.c wm8996->sysclk); wm8996 1885 sound/soc/codecs/wm8996.c wm8996->sysclk_src = clk_id; wm8996 2004 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 2011 sound/soc/codecs/wm8996.c if (source == wm8996->fll_src && Fref == wm8996->fll_fref && wm8996 2012 sound/soc/codecs/wm8996.c Fout == wm8996->fll_fout) wm8996 2018 sound/soc/codecs/wm8996.c wm8996->fll_fref = 0; wm8996 2019 sound/soc/codecs/wm8996.c wm8996->fll_fout = 0; wm8996 2086 sound/soc/codecs/wm8996.c try_wait_for_completion(&wm8996->fll_lock); wm8996 2112 sound/soc/codecs/wm8996.c time_left = wait_for_completion_timeout(&wm8996->fll_lock, wm8996 2131 sound/soc/codecs/wm8996.c wm8996->fll_fref = Fref; wm8996 2132 sound/soc/codecs/wm8996.c wm8996->fll_fout = Fout; wm8996 2133 sound/soc/codecs/wm8996.c wm8996->fll_src = source; wm8996 2141 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = gpiochip_get_data(chip); wm8996 2143 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_GPIO_1 + offset, wm8996 2150 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = gpiochip_get_data(chip); wm8996 2155 sound/soc/codecs/wm8996.c return regmap_update_bits(wm8996->regmap, WM8996_GPIO_1 + offset, wm8996 2162 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = gpiochip_get_data(chip); wm8996 2166 sound/soc/codecs/wm8996.c ret = regmap_read(wm8996->regmap, WM8996_GPIO_1 + offset, ®); wm8996 2175 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = gpiochip_get_data(chip); wm8996 2177 sound/soc/codecs/wm8996.c return regmap_update_bits(wm8996->regmap, WM8996_GPIO_1 + offset, wm8996 2193 sound/soc/codecs/wm8996.c static void wm8996_init_gpio(struct wm8996_priv *wm8996) wm8996 2197 sound/soc/codecs/wm8996.c wm8996->gpio_chip = wm8996_template_chip; wm8996 2198 sound/soc/codecs/wm8996.c wm8996->gpio_chip.ngpio = 5; wm8996 2199 sound/soc/codecs/wm8996.c wm8996->gpio_chip.parent = wm8996->dev; wm8996 2201 sound/soc/codecs/wm8996.c if (wm8996->pdata.gpio_base) wm8996 2202 sound/soc/codecs/wm8996.c wm8996->gpio_chip.base = wm8996->pdata.gpio_base; wm8996 2204 sound/soc/codecs/wm8996.c wm8996->gpio_chip.base = -1; wm8996 2206 sound/soc/codecs/wm8996.c ret = gpiochip_add_data(&wm8996->gpio_chip, wm8996); wm8996 2208 sound/soc/codecs/wm8996.c dev_err(wm8996->dev, "Failed to add GPIOs: %d\n", ret); wm8996 2211 sound/soc/codecs/wm8996.c static void wm8996_free_gpio(struct wm8996_priv *wm8996) wm8996 2213 sound/soc/codecs/wm8996.c gpiochip_remove(&wm8996->gpio_chip); wm8996 2216 sound/soc/codecs/wm8996.c static void wm8996_init_gpio(struct wm8996_priv *wm8996) wm8996 2220 sound/soc/codecs/wm8996.c static void wm8996_free_gpio(struct wm8996_priv *wm8996) wm8996 2239 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 2242 sound/soc/codecs/wm8996.c wm8996->jack = jack; wm8996 2243 sound/soc/codecs/wm8996.c wm8996->detecting = true; wm8996 2244 sound/soc/codecs/wm8996.c wm8996->polarity_cb = polarity_cb; wm8996 2245 sound/soc/codecs/wm8996.c wm8996->jack_flips = 0; wm8996 2247 sound/soc/codecs/wm8996.c if (wm8996->polarity_cb) wm8996 2248 sound/soc/codecs/wm8996.c wm8996->polarity_cb(component, 0); wm8996 2286 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 2318 sound/soc/codecs/wm8996.c if (wm8996->jack_mic) wm8996 2321 sound/soc/codecs/wm8996.c snd_soc_jack_report(wm8996->jack, report, wm8996 2324 sound/soc/codecs/wm8996.c wm8996->detecting = false; wm8996 2383 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 2398 sound/soc/codecs/wm8996.c wm8996->jack_mic = false; wm8996 2399 sound/soc/codecs/wm8996.c wm8996->detecting = true; wm8996 2400 sound/soc/codecs/wm8996.c wm8996->jack_flips = 0; wm8996 2401 sound/soc/codecs/wm8996.c snd_soc_jack_report(wm8996->jack, 0, wm8996 2418 sound/soc/codecs/wm8996.c if (wm8996->detecting) { wm8996 2420 sound/soc/codecs/wm8996.c wm8996->jack_mic = true; wm8996 2432 sound/soc/codecs/wm8996.c snd_soc_jack_report(wm8996->jack, 0, SND_JACK_BTN_0); wm8996 2444 sound/soc/codecs/wm8996.c if (wm8996->detecting && (val & 0x3f0)) { wm8996 2445 sound/soc/codecs/wm8996.c wm8996->jack_flips++; wm8996 2447 sound/soc/codecs/wm8996.c if (wm8996->jack_flips > 1) { wm8996 2459 sound/soc/codecs/wm8996.c if (wm8996->polarity_cb) wm8996 2460 sound/soc/codecs/wm8996.c wm8996->polarity_cb(component, wm8996 2473 sound/soc/codecs/wm8996.c if (wm8996->jack_mic) { wm8996 2475 sound/soc/codecs/wm8996.c snd_soc_jack_report(wm8996->jack, SND_JACK_BTN_0, wm8996 2477 sound/soc/codecs/wm8996.c } else if (wm8996->detecting) { wm8996 2486 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 2504 sound/soc/codecs/wm8996.c complete(&wm8996->dcs_done); wm8996 2512 sound/soc/codecs/wm8996.c complete(&wm8996->fll_lock); wm8996 2540 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 2541 sound/soc/codecs/wm8996.c struct wm8996_pdata *pdata = &wm8996->pdata; wm8996 2545 sound/soc/codecs/wm8996.c wm8996->retune_mobile_enum, wm8996 2549 sound/soc/codecs/wm8996.c wm8996->retune_mobile_enum, wm8996 2560 sound/soc/codecs/wm8996.c wm8996->num_retune_mobile_texts = 0; wm8996 2561 sound/soc/codecs/wm8996.c wm8996->retune_mobile_texts = NULL; wm8996 2563 sound/soc/codecs/wm8996.c for (j = 0; j < wm8996->num_retune_mobile_texts; j++) { wm8996 2565 sound/soc/codecs/wm8996.c wm8996->retune_mobile_texts[j]) == 0) wm8996 2569 sound/soc/codecs/wm8996.c if (j != wm8996->num_retune_mobile_texts) wm8996 2573 sound/soc/codecs/wm8996.c t = krealloc(wm8996->retune_mobile_texts, wm8996 2575 sound/soc/codecs/wm8996.c (wm8996->num_retune_mobile_texts + 1), wm8996 2581 sound/soc/codecs/wm8996.c t[wm8996->num_retune_mobile_texts] = wm8996 2585 sound/soc/codecs/wm8996.c wm8996->num_retune_mobile_texts++; wm8996 2586 sound/soc/codecs/wm8996.c wm8996->retune_mobile_texts = t; wm8996 2590 sound/soc/codecs/wm8996.c wm8996->num_retune_mobile_texts); wm8996 2592 sound/soc/codecs/wm8996.c wm8996->retune_mobile_enum.items = wm8996->num_retune_mobile_texts; wm8996 2593 sound/soc/codecs/wm8996.c wm8996->retune_mobile_enum.texts = wm8996->retune_mobile_texts; wm8996 2616 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = snd_soc_component_get_drvdata(component); wm8996 2620 sound/soc/codecs/wm8996.c wm8996->component = component; wm8996 2622 sound/soc/codecs/wm8996.c init_completion(&wm8996->dcs_done); wm8996 2623 sound/soc/codecs/wm8996.c init_completion(&wm8996->fll_lock); wm8996 2625 sound/soc/codecs/wm8996.c if (wm8996->pdata.num_retune_mobile_cfgs) wm8996 2632 sound/soc/codecs/wm8996.c if (wm8996->pdata.irq_flags) wm8996 2633 sound/soc/codecs/wm8996.c irq_flags = wm8996->pdata.irq_flags; wm8996 2758 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996; wm8996 2762 sound/soc/codecs/wm8996.c wm8996 = devm_kzalloc(&i2c->dev, sizeof(struct wm8996_priv), wm8996 2764 sound/soc/codecs/wm8996.c if (wm8996 == NULL) wm8996 2767 sound/soc/codecs/wm8996.c i2c_set_clientdata(i2c, wm8996); wm8996 2768 sound/soc/codecs/wm8996.c wm8996->dev = &i2c->dev; wm8996 2771 sound/soc/codecs/wm8996.c memcpy(&wm8996->pdata, dev_get_platdata(&i2c->dev), wm8996 2772 sound/soc/codecs/wm8996.c sizeof(wm8996->pdata)); wm8996 2774 sound/soc/codecs/wm8996.c if (wm8996->pdata.ldo_ena > 0) { wm8996 2775 sound/soc/codecs/wm8996.c ret = gpio_request_one(wm8996->pdata.ldo_ena, wm8996 2779 sound/soc/codecs/wm8996.c wm8996->pdata.ldo_ena, ret); wm8996 2784 sound/soc/codecs/wm8996.c for (i = 0; i < ARRAY_SIZE(wm8996->supplies); i++) wm8996 2785 sound/soc/codecs/wm8996.c wm8996->supplies[i].supply = wm8996_supply_names[i]; wm8996 2787 sound/soc/codecs/wm8996.c ret = devm_regulator_bulk_get(&i2c->dev, ARRAY_SIZE(wm8996->supplies), wm8996 2788 sound/soc/codecs/wm8996.c wm8996->supplies); wm8996 2794 sound/soc/codecs/wm8996.c wm8996->disable_nb[0].notifier_call = wm8996_regulator_event_0; wm8996 2795 sound/soc/codecs/wm8996.c wm8996->disable_nb[1].notifier_call = wm8996_regulator_event_1; wm8996 2796 sound/soc/codecs/wm8996.c wm8996->disable_nb[2].notifier_call = wm8996_regulator_event_2; wm8996 2799 sound/soc/codecs/wm8996.c for (i = 0; i < ARRAY_SIZE(wm8996->supplies); i++) { wm8996 2801 sound/soc/codecs/wm8996.c wm8996->supplies[i].consumer, wm8996 2802 sound/soc/codecs/wm8996.c &wm8996->disable_nb[i]); wm8996 2810 sound/soc/codecs/wm8996.c ret = regulator_bulk_enable(ARRAY_SIZE(wm8996->supplies), wm8996 2811 sound/soc/codecs/wm8996.c wm8996->supplies); wm8996 2817 sound/soc/codecs/wm8996.c if (wm8996->pdata.ldo_ena > 0) { wm8996 2818 sound/soc/codecs/wm8996.c gpio_set_value_cansleep(wm8996->pdata.ldo_ena, 1); wm8996 2822 sound/soc/codecs/wm8996.c wm8996->regmap = devm_regmap_init_i2c(i2c, &wm8996_regmap); wm8996 2823 sound/soc/codecs/wm8996.c if (IS_ERR(wm8996->regmap)) { wm8996 2824 sound/soc/codecs/wm8996.c ret = PTR_ERR(wm8996->regmap); wm8996 2829 sound/soc/codecs/wm8996.c ret = regmap_read(wm8996->regmap, WM8996_SOFTWARE_RESET, ®); wm8996 2840 sound/soc/codecs/wm8996.c ret = regmap_read(wm8996->regmap, WM8996_CHIP_REVISION, ®); wm8996 2850 sound/soc/codecs/wm8996.c if (wm8996->pdata.ldo_ena > 0) { wm8996 2851 sound/soc/codecs/wm8996.c gpio_set_value_cansleep(wm8996->pdata.ldo_ena, 0); wm8996 2852 sound/soc/codecs/wm8996.c regcache_cache_only(wm8996->regmap, true); wm8996 2854 sound/soc/codecs/wm8996.c ret = regmap_write(wm8996->regmap, WM8996_SOFTWARE_RESET, wm8996 2862 sound/soc/codecs/wm8996.c regulator_bulk_disable(ARRAY_SIZE(wm8996->supplies), wm8996->supplies); wm8996 2865 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_LINE_INPUT_CONTROL, wm8996 2867 sound/soc/codecs/wm8996.c wm8996->pdata.inl_mode << WM8996_INL_MODE_SHIFT | wm8996 2868 sound/soc/codecs/wm8996.c wm8996->pdata.inr_mode); wm8996 2870 sound/soc/codecs/wm8996.c for (i = 0; i < ARRAY_SIZE(wm8996->pdata.gpio_default); i++) { wm8996 2871 sound/soc/codecs/wm8996.c if (!wm8996->pdata.gpio_default[i]) wm8996 2874 sound/soc/codecs/wm8996.c regmap_write(wm8996->regmap, WM8996_GPIO_1 + i, wm8996 2875 sound/soc/codecs/wm8996.c wm8996->pdata.gpio_default[i] & 0xffff); wm8996 2878 sound/soc/codecs/wm8996.c if (wm8996->pdata.spkmute_seq) wm8996 2879 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, wm8996 2883 sound/soc/codecs/wm8996.c wm8996->pdata.spkmute_seq); wm8996 2885 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_ACCESSORY_DETECT_MODE_2, wm8996 2887 sound/soc/codecs/wm8996.c WM8996_MICD_SRC, wm8996->pdata.micdet_def); wm8996 2890 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_LEFT_LINE_INPUT_VOLUME, wm8996 2892 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_RIGHT_LINE_INPUT_VOLUME, wm8996 2895 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_DAC1_LEFT_VOLUME, wm8996 2897 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_DAC1_RIGHT_VOLUME, wm8996 2899 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_DAC2_LEFT_VOLUME, wm8996 2901 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_DAC2_RIGHT_VOLUME, wm8996 2904 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_OUTPUT1_LEFT_VOLUME, wm8996 2906 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_OUTPUT1_RIGHT_VOLUME, wm8996 2908 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_OUTPUT2_LEFT_VOLUME, wm8996 2910 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_OUTPUT2_RIGHT_VOLUME, wm8996 2913 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_DSP1_TX_LEFT_VOLUME, wm8996 2915 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_DSP1_TX_RIGHT_VOLUME, wm8996 2917 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_DSP2_TX_LEFT_VOLUME, wm8996 2919 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_DSP2_TX_RIGHT_VOLUME, wm8996 2922 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_DSP1_RX_LEFT_VOLUME, wm8996 2924 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_DSP1_RX_RIGHT_VOLUME, wm8996 2926 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_DSP2_RX_LEFT_VOLUME, wm8996 2928 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_DSP2_RX_RIGHT_VOLUME, wm8996 2934 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, wm8996 2939 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, wm8996 2944 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, wm8996 2949 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, wm8996 2954 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, wm8996 2959 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, wm8996 2965 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, wm8996 2970 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, wm8996 2976 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, wm8996 2981 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, wm8996 2986 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, wm8996 2991 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, wm8996 2996 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, wm8996 3001 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, wm8996 3007 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, wm8996 3012 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, wm8996 3021 sound/soc/codecs/wm8996.c ret = regmap_read(wm8996->regmap, WM8996_GPIO_1, ®); wm8996 3028 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_AIF1_TX_LRCLK_2, wm8996 3032 sound/soc/codecs/wm8996.c ret = regmap_read(wm8996->regmap, WM8996_GPIO_2, ®); wm8996 3039 sound/soc/codecs/wm8996.c regmap_update_bits(wm8996->regmap, WM8996_AIF2_TX_LRCLK_2, wm8996 3043 sound/soc/codecs/wm8996.c wm8996_init_gpio(wm8996); wm8996 3054 sound/soc/codecs/wm8996.c wm8996_free_gpio(wm8996); wm8996 3057 sound/soc/codecs/wm8996.c if (wm8996->pdata.ldo_ena > 0) wm8996 3058 sound/soc/codecs/wm8996.c gpio_set_value_cansleep(wm8996->pdata.ldo_ena, 0); wm8996 3059 sound/soc/codecs/wm8996.c regulator_bulk_disable(ARRAY_SIZE(wm8996->supplies), wm8996->supplies); wm8996 3061 sound/soc/codecs/wm8996.c if (wm8996->pdata.ldo_ena > 0) wm8996 3062 sound/soc/codecs/wm8996.c gpio_free(wm8996->pdata.ldo_ena); wm8996 3070 sound/soc/codecs/wm8996.c struct wm8996_priv *wm8996 = i2c_get_clientdata(client); wm8996 3072 sound/soc/codecs/wm8996.c wm8996_free_gpio(wm8996); wm8996 3073 sound/soc/codecs/wm8996.c if (wm8996->pdata.ldo_ena > 0) { wm8996 3074 sound/soc/codecs/wm8996.c gpio_set_value_cansleep(wm8996->pdata.ldo_ena, 0); wm8996 3075 sound/soc/codecs/wm8996.c gpio_free(wm8996->pdata.ldo_ena);