wm8962 95 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = container_of(nb, struct wm8962_priv, \ wm8962 98 sound/soc/codecs/wm8962.c regcache_mark_dirty(wm8962->regmap); \ wm8962 1441 sound/soc/codecs/wm8962.c static int wm8962_reset(struct wm8962_priv *wm8962) wm8962 1445 sound/soc/codecs/wm8962.c ret = regmap_write(wm8962->regmap, WM8962_SOFTWARE_RESET, 0x6243); wm8962 1449 sound/soc/codecs/wm8962.c return regmap_write(wm8962->regmap, WM8962_PLL_SOFTWARE_RESET, 0); wm8962 1476 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component); wm8962 1478 sound/soc/codecs/wm8962.c return regcache_sync_region(wm8962->regmap, wm8962 1507 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component); wm8962 1513 sound/soc/codecs/wm8962.c wm8962_dsp2_set_enable(component, wm8962->dsp2_ena); wm8962 1550 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component); wm8962 1552 sound/soc/codecs/wm8962.c ucontrol->value.integer.value[0] = !!(wm8962->dsp2_ena & 1 << shift); wm8962 1562 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component); wm8962 1563 sound/soc/codecs/wm8962.c int old = wm8962->dsp2_ena; wm8962 1568 sound/soc/codecs/wm8962.c mutex_lock(&wm8962->dsp2_ena_lock); wm8962 1571 sound/soc/codecs/wm8962.c wm8962->dsp2_ena |= 1 << shift; wm8962 1573 sound/soc/codecs/wm8962.c wm8962->dsp2_ena &= ~(1 << shift); wm8962 1575 sound/soc/codecs/wm8962.c if (wm8962->dsp2_ena == old) wm8962 1581 sound/soc/codecs/wm8962.c if (wm8962->dsp2_ena) wm8962 1582 sound/soc/codecs/wm8962.c wm8962_dsp2_set_enable(component, wm8962->dsp2_ena); wm8962 1588 sound/soc/codecs/wm8962.c mutex_unlock(&wm8962->dsp2_ena_lock); wm8962 1990 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component); wm8962 1994 sound/soc/codecs/wm8962.c if (wm8962->dsp2_ena) wm8962 1999 sound/soc/codecs/wm8962.c if (wm8962->dsp2_ena) wm8962 2355 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component); wm8962 2356 sound/soc/codecs/wm8962.c struct wm8962_pdata *pdata = &wm8962->pdata; wm8962 2404 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component); wm8962 2410 sound/soc/codecs/wm8962.c if (!wm8962->sysclk_rate) { wm8962 2415 sound/soc/codecs/wm8962.c if (!wm8962->bclk || !wm8962->lrclk) { wm8962 2421 sound/soc/codecs/wm8962.c if (sysclk_rates[i] == wm8962->sysclk_rate / wm8962->lrclk) { wm8962 2429 sound/soc/codecs/wm8962.c wm8962->sysclk_rate / wm8962->lrclk); wm8962 2460 sound/soc/codecs/wm8962.c dspclk = wm8962->sysclk_rate; wm8962 2463 sound/soc/codecs/wm8962.c dspclk = wm8962->sysclk_rate / 2; wm8962 2466 sound/soc/codecs/wm8962.c dspclk = wm8962->sysclk_rate / 4; wm8962 2470 sound/soc/codecs/wm8962.c dspclk = wm8962->sysclk_rate; wm8962 2473 sound/soc/codecs/wm8962.c dev_dbg(component->dev, "DSPCLK is %dHz, BCLK %d\n", dspclk, wm8962->bclk); wm8962 2480 sound/soc/codecs/wm8962.c if (dspclk / bclk_divs[i] == wm8962->bclk) { wm8962 2482 sound/soc/codecs/wm8962.c bclk_divs[i], wm8962->bclk); wm8962 2489 sound/soc/codecs/wm8962.c dspclk / wm8962->bclk); wm8962 2493 sound/soc/codecs/wm8962.c aif2 |= wm8962->bclk / wm8962->lrclk; wm8962 2495 sound/soc/codecs/wm8962.c wm8962->bclk / wm8962->lrclk, wm8962->lrclk); wm8962 2556 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component); wm8962 2561 sound/soc/codecs/wm8962.c wm8962->bclk = snd_soc_params_to_bclk(params); wm8962 2563 sound/soc/codecs/wm8962.c wm8962->bclk *= 2; wm8962 2565 sound/soc/codecs/wm8962.c wm8962->lrclk = params_rate(params); wm8962 2568 sound/soc/codecs/wm8962.c if (sr_vals[i].rate == wm8962->lrclk) { wm8962 2574 sound/soc/codecs/wm8962.c dev_err(component->dev, "Unsupported rate %dHz\n", wm8962->lrclk); wm8962 2578 sound/soc/codecs/wm8962.c if (wm8962->lrclk % 8000 == 0) wm8962 2604 sound/soc/codecs/wm8962.c wm8962->bclk, wm8962->lrclk); wm8962 2616 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component); wm8962 2621 sound/soc/codecs/wm8962.c wm8962->sysclk = WM8962_SYSCLK_MCLK; wm8962 2625 sound/soc/codecs/wm8962.c wm8962->sysclk = WM8962_SYSCLK_FLL; wm8962 2635 sound/soc/codecs/wm8962.c wm8962->sysclk_rate = freq; wm8962 2812 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component); wm8962 2819 sound/soc/codecs/wm8962.c if (source == wm8962->fll_src && Fref == wm8962->fll_fref && wm8962 2820 sound/soc/codecs/wm8962.c Fout == wm8962->fll_fout) wm8962 2826 sound/soc/codecs/wm8962.c wm8962->fll_fref = 0; wm8962 2827 sound/soc/codecs/wm8962.c wm8962->fll_fout = 0; wm8962 2880 sound/soc/codecs/wm8962.c reinit_completion(&wm8962->fll_lock); wm8962 2897 sound/soc/codecs/wm8962.c if (wm8962->irq) wm8962 2902 sound/soc/codecs/wm8962.c timeout = wait_for_completion_timeout(&wm8962->fll_lock, wm8962 2905 sound/soc/codecs/wm8962.c if (timeout == 0 && wm8962->irq) { wm8962 2913 sound/soc/codecs/wm8962.c wm8962->fll_fref = Fref; wm8962 2914 sound/soc/codecs/wm8962.c wm8962->fll_fout = Fout; wm8962 2915 sound/soc/codecs/wm8962.c wm8962->fll_src = source; wm8962 2978 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = container_of(work, wm8962 2981 sound/soc/codecs/wm8962.c struct snd_soc_component *component = wm8962->component; wm8962 2998 sound/soc/codecs/wm8962.c snd_soc_jack_report(wm8962->jack, status, wm8962 3009 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = dev_get_drvdata(dev); wm8962 3020 sound/soc/codecs/wm8962.c ret = regmap_read(wm8962->regmap, WM8962_INTERRUPT_STATUS_2_MASK, wm8962 3029 sound/soc/codecs/wm8962.c ret = regmap_read(wm8962->regmap, WM8962_INTERRUPT_STATUS_2, &active); wm8962 3044 sound/soc/codecs/wm8962.c ret = regmap_write(wm8962->regmap, WM8962_INTERRUPT_STATUS_2, active); wm8962 3050 sound/soc/codecs/wm8962.c complete(&wm8962->fll_lock); wm8962 3059 sound/soc/codecs/wm8962.c ret = regmap_read(wm8962->regmap, wm8962 3087 sound/soc/codecs/wm8962.c &wm8962->mic_work, wm8962 3111 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component); wm8962 3115 sound/soc/codecs/wm8962.c wm8962->jack = jack; wm8962 3130 sound/soc/codecs/wm8962.c snd_soc_jack_report(wm8962->jack, 0, wm8962 3155 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = wm8962 3157 sound/soc/codecs/wm8962.c struct snd_soc_component *component = wm8962->component; wm8962 3163 sound/soc/codecs/wm8962.c if (wm8962->beep_rate) { wm8962 3165 sound/soc/codecs/wm8962.c if (abs(wm8962->beep_rate - beep_rates[i]) < wm8962 3166 sound/soc/codecs/wm8962.c abs(wm8962->beep_rate - beep_rates[best])) wm8962 3171 sound/soc/codecs/wm8962.c beep_rates[best], wm8962->beep_rate); wm8962 3194 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component); wm8962 3209 sound/soc/codecs/wm8962.c wm8962->beep_rate = hz; wm8962 3210 sound/soc/codecs/wm8962.c schedule_work(&wm8962->beep_work); wm8962 3218 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = dev_get_drvdata(dev); wm8962 3226 sound/soc/codecs/wm8962.c input_event(wm8962->beep, EV_SND, SND_TONE, time); wm8962 3235 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component); wm8962 3238 sound/soc/codecs/wm8962.c wm8962->beep = devm_input_allocate_device(component->dev); wm8962 3239 sound/soc/codecs/wm8962.c if (!wm8962->beep) { wm8962 3244 sound/soc/codecs/wm8962.c INIT_WORK(&wm8962->beep_work, wm8962_beep_work); wm8962 3245 sound/soc/codecs/wm8962.c wm8962->beep_rate = 0; wm8962 3247 sound/soc/codecs/wm8962.c wm8962->beep->name = "WM8962 Beep Generator"; wm8962 3248 sound/soc/codecs/wm8962.c wm8962->beep->phys = dev_name(component->dev); wm8962 3249 sound/soc/codecs/wm8962.c wm8962->beep->id.bustype = BUS_I2C; wm8962 3251 sound/soc/codecs/wm8962.c wm8962->beep->evbit[0] = BIT_MASK(EV_SND); wm8962 3252 sound/soc/codecs/wm8962.c wm8962->beep->sndbit[0] = BIT_MASK(SND_BELL) | BIT_MASK(SND_TONE); wm8962 3253 sound/soc/codecs/wm8962.c wm8962->beep->event = wm8962_beep_event; wm8962 3254 sound/soc/codecs/wm8962.c wm8962->beep->dev.parent = component->dev; wm8962 3255 sound/soc/codecs/wm8962.c input_set_drvdata(wm8962->beep, component); wm8962 3257 sound/soc/codecs/wm8962.c ret = input_register_device(wm8962->beep); wm8962 3259 sound/soc/codecs/wm8962.c wm8962->beep = NULL; wm8962 3272 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component); wm8962 3275 sound/soc/codecs/wm8962.c cancel_work_sync(&wm8962->beep_work); wm8962 3276 sound/soc/codecs/wm8962.c wm8962->beep = NULL; wm8962 3281 sound/soc/codecs/wm8962.c static void wm8962_set_gpio_mode(struct wm8962_priv *wm8962, int gpio) wm8962 3302 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_ANALOGUE_CLOCKING1, wm8962 3309 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = gpiochip_get_data(chip); wm8962 3325 sound/soc/codecs/wm8962.c wm8962_set_gpio_mode(wm8962, offset + 1); wm8962 3332 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = gpiochip_get_data(chip); wm8962 3333 sound/soc/codecs/wm8962.c struct snd_soc_component *component = wm8962->component; wm8962 3342 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = gpiochip_get_data(chip); wm8962 3343 sound/soc/codecs/wm8962.c struct snd_soc_component *component = wm8962->component; wm8962 3368 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component); wm8962 3369 sound/soc/codecs/wm8962.c struct wm8962_pdata *pdata = &wm8962->pdata; wm8962 3372 sound/soc/codecs/wm8962.c wm8962->gpio_chip = wm8962_template_chip; wm8962 3373 sound/soc/codecs/wm8962.c wm8962->gpio_chip.ngpio = WM8962_MAX_GPIO; wm8962 3374 sound/soc/codecs/wm8962.c wm8962->gpio_chip.parent = component->dev; wm8962 3377 sound/soc/codecs/wm8962.c wm8962->gpio_chip.base = pdata->gpio_base; wm8962 3379 sound/soc/codecs/wm8962.c wm8962->gpio_chip.base = -1; wm8962 3381 sound/soc/codecs/wm8962.c ret = gpiochip_add_data(&wm8962->gpio_chip, wm8962); wm8962 3388 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component); wm8962 3390 sound/soc/codecs/wm8962.c gpiochip_remove(&wm8962->gpio_chip); wm8962 3406 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component); wm8962 3410 sound/soc/codecs/wm8962.c wm8962->component = component; wm8962 3412 sound/soc/codecs/wm8962.c wm8962->disable_nb[0].notifier_call = wm8962_regulator_event_0; wm8962 3413 sound/soc/codecs/wm8962.c wm8962->disable_nb[1].notifier_call = wm8962_regulator_event_1; wm8962 3414 sound/soc/codecs/wm8962.c wm8962->disable_nb[2].notifier_call = wm8962_regulator_event_2; wm8962 3415 sound/soc/codecs/wm8962.c wm8962->disable_nb[3].notifier_call = wm8962_regulator_event_3; wm8962 3416 sound/soc/codecs/wm8962.c wm8962->disable_nb[4].notifier_call = wm8962_regulator_event_4; wm8962 3417 sound/soc/codecs/wm8962.c wm8962->disable_nb[5].notifier_call = wm8962_regulator_event_5; wm8962 3418 sound/soc/codecs/wm8962.c wm8962->disable_nb[6].notifier_call = wm8962_regulator_event_6; wm8962 3419 sound/soc/codecs/wm8962.c wm8962->disable_nb[7].notifier_call = wm8962_regulator_event_7; wm8962 3422 sound/soc/codecs/wm8962.c for (i = 0; i < ARRAY_SIZE(wm8962->supplies); i++) { wm8962 3424 sound/soc/codecs/wm8962.c wm8962->supplies[i].consumer, wm8962 3425 sound/soc/codecs/wm8962.c &wm8962->disable_nb[i]); wm8962 3466 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component); wm8962 3468 sound/soc/codecs/wm8962.c cancel_delayed_work_sync(&wm8962->mic_work); wm8962 3537 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962; wm8962 3541 sound/soc/codecs/wm8962.c wm8962 = devm_kzalloc(&i2c->dev, sizeof(*wm8962), GFP_KERNEL); wm8962 3542 sound/soc/codecs/wm8962.c if (wm8962 == NULL) wm8962 3545 sound/soc/codecs/wm8962.c mutex_init(&wm8962->dsp2_ena_lock); wm8962 3547 sound/soc/codecs/wm8962.c i2c_set_clientdata(i2c, wm8962); wm8962 3549 sound/soc/codecs/wm8962.c INIT_DELAYED_WORK(&wm8962->mic_work, wm8962_mic_work); wm8962 3550 sound/soc/codecs/wm8962.c init_completion(&wm8962->fll_lock); wm8962 3551 sound/soc/codecs/wm8962.c wm8962->irq = i2c->irq; wm8962 3555 sound/soc/codecs/wm8962.c memcpy(&wm8962->pdata, pdata, sizeof(struct wm8962_pdata)); wm8962 3557 sound/soc/codecs/wm8962.c ret = wm8962_set_pdata_from_of(i2c, &wm8962->pdata); wm8962 3563 sound/soc/codecs/wm8962.c if (IS_ERR(wm8962->pdata.mclk)) { wm8962 3565 sound/soc/codecs/wm8962.c if (PTR_ERR(wm8962->pdata.mclk) == -EPROBE_DEFER) wm8962 3567 sound/soc/codecs/wm8962.c wm8962->pdata.mclk = NULL; wm8962 3570 sound/soc/codecs/wm8962.c for (i = 0; i < ARRAY_SIZE(wm8962->supplies); i++) wm8962 3571 sound/soc/codecs/wm8962.c wm8962->supplies[i].supply = wm8962_supply_names[i]; wm8962 3573 sound/soc/codecs/wm8962.c ret = devm_regulator_bulk_get(&i2c->dev, ARRAY_SIZE(wm8962->supplies), wm8962 3574 sound/soc/codecs/wm8962.c wm8962->supplies); wm8962 3580 sound/soc/codecs/wm8962.c ret = regulator_bulk_enable(ARRAY_SIZE(wm8962->supplies), wm8962 3581 sound/soc/codecs/wm8962.c wm8962->supplies); wm8962 3587 sound/soc/codecs/wm8962.c wm8962->regmap = devm_regmap_init_i2c(i2c, &wm8962_regmap); wm8962 3588 sound/soc/codecs/wm8962.c if (IS_ERR(wm8962->regmap)) { wm8962 3589 sound/soc/codecs/wm8962.c ret = PTR_ERR(wm8962->regmap); wm8962 3599 sound/soc/codecs/wm8962.c regcache_cache_bypass(wm8962->regmap, true); wm8962 3601 sound/soc/codecs/wm8962.c ret = regmap_read(wm8962->regmap, WM8962_SOFTWARE_RESET, ®); wm8962 3613 sound/soc/codecs/wm8962.c ret = regmap_read(wm8962->regmap, WM8962_RIGHT_INPUT_VOLUME, ®); wm8962 3625 sound/soc/codecs/wm8962.c regcache_cache_bypass(wm8962->regmap, false); wm8962 3627 sound/soc/codecs/wm8962.c ret = wm8962_reset(wm8962); wm8962 3636 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_CLOCKING2, wm8962 3640 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_CLOCKING2, wm8962 3644 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_PLL2, wm8962 3649 sound/soc/codecs/wm8962.c for (i = 0; i < ARRAY_SIZE(wm8962->pdata.gpio_init); i++) wm8962 3650 sound/soc/codecs/wm8962.c if (wm8962->pdata.gpio_init[i]) { wm8962 3651 sound/soc/codecs/wm8962.c wm8962_set_gpio_mode(wm8962, i + 1); wm8962 3652 sound/soc/codecs/wm8962.c regmap_write(wm8962->regmap, 0x200 + i, wm8962 3653 sound/soc/codecs/wm8962.c wm8962->pdata.gpio_init[i] & 0xffff); wm8962 3658 sound/soc/codecs/wm8962.c if (wm8962->pdata.spk_mono) wm8962 3659 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_CLASS_D_CONTROL_2, wm8962 3664 sound/soc/codecs/wm8962.c if (wm8962->pdata.mic_cfg) wm8962 3665 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_ADDITIONAL_CONTROL_4, wm8962 3670 sound/soc/codecs/wm8962.c wm8962->pdata.mic_cfg); wm8962 3673 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_LEFT_INPUT_VOLUME, wm8962 3675 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_RIGHT_INPUT_VOLUME, wm8962 3677 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_LEFT_ADC_VOLUME, wm8962 3679 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_RIGHT_ADC_VOLUME, wm8962 3681 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_LEFT_DAC_VOLUME, wm8962 3683 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_RIGHT_DAC_VOLUME, wm8962 3685 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_SPKOUTL_VOLUME, wm8962 3687 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_SPKOUTR_VOLUME, wm8962 3689 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_HPOUTL_VOLUME, wm8962 3691 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_HPOUTR_VOLUME, wm8962 3695 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_EQ1, wm8962 3699 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_IRQ_DEBOUNCE, wm8962 3704 sound/soc/codecs/wm8962.c if (wm8962->pdata.in4_dc_measure) { wm8962 3705 sound/soc/codecs/wm8962.c ret = regmap_register_patch(wm8962->regmap, wm8962 3714 sound/soc/codecs/wm8962.c if (wm8962->irq) { wm8962 3715 sound/soc/codecs/wm8962.c if (wm8962->pdata.irq_active_low) { wm8962 3723 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_INTERRUPT_CONTROL, wm8962 3726 sound/soc/codecs/wm8962.c ret = devm_request_threaded_irq(&i2c->dev, wm8962->irq, NULL, wm8962 3732 sound/soc/codecs/wm8962.c wm8962->irq, ret); wm8962 3733 sound/soc/codecs/wm8962.c wm8962->irq = 0; wm8962 3737 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, wm8962 3753 sound/soc/codecs/wm8962.c regcache_cache_only(wm8962->regmap, true); wm8962 3756 sound/soc/codecs/wm8962.c regulator_bulk_disable(ARRAY_SIZE(wm8962->supplies), wm8962->supplies); wm8962 3763 sound/soc/codecs/wm8962.c regulator_bulk_disable(ARRAY_SIZE(wm8962->supplies), wm8962->supplies); wm8962 3777 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = dev_get_drvdata(dev); wm8962 3780 sound/soc/codecs/wm8962.c ret = clk_prepare_enable(wm8962->pdata.mclk); wm8962 3786 sound/soc/codecs/wm8962.c ret = regulator_bulk_enable(ARRAY_SIZE(wm8962->supplies), wm8962 3787 sound/soc/codecs/wm8962.c wm8962->supplies); wm8962 3793 sound/soc/codecs/wm8962.c regcache_cache_only(wm8962->regmap, false); wm8962 3795 sound/soc/codecs/wm8962.c wm8962_reset(wm8962); wm8962 3797 sound/soc/codecs/wm8962.c regcache_mark_dirty(wm8962->regmap); wm8962 3802 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_CLOCKING2, wm8962 3806 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_CLOCKING2, wm8962 3810 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_PLL2, wm8962 3814 sound/soc/codecs/wm8962.c regcache_sync(wm8962->regmap); wm8962 3816 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_ANTI_POP, wm8962 3821 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_PWR_MGMT_1, wm8962 3830 sound/soc/codecs/wm8962.c clk_disable_unprepare(wm8962->pdata.mclk); wm8962 3836 sound/soc/codecs/wm8962.c struct wm8962_priv *wm8962 = dev_get_drvdata(dev); wm8962 3838 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_PWR_MGMT_1, wm8962 3841 sound/soc/codecs/wm8962.c regmap_update_bits(wm8962->regmap, WM8962_ANTI_POP, wm8962 3845 sound/soc/codecs/wm8962.c regcache_cache_only(wm8962->regmap, true); wm8962 3847 sound/soc/codecs/wm8962.c regulator_bulk_disable(ARRAY_SIZE(wm8962->supplies), wm8962 3848 sound/soc/codecs/wm8962.c wm8962->supplies); wm8962 3850 sound/soc/codecs/wm8962.c clk_disable_unprepare(wm8962->pdata.mclk);