Lines Matching refs:es8396
306 struct es8396_private *es8396 = container_of(work, struct es8396_private, in pcm_shutdown_depop_events() local
308 struct snd_soc_component *component = es8396->component; in pcm_shutdown_depop_events()
310 mutex_lock(&es8396->pcm_shutdown_depop_mlock); in pcm_shutdown_depop_events()
313 es8396->aif1_select &= 0xfe; in pcm_shutdown_depop_events()
314 mutex_unlock(&es8396->pcm_shutdown_depop_mlock); in pcm_shutdown_depop_events()
319 struct es8396_private *es8396 = container_of(work, struct es8396_private, in voice_shutdown_depop_events() local
321 struct snd_soc_component *component = es8396->component; in voice_shutdown_depop_events()
323 mutex_lock(&es8396->voice_shutdown_depop_mlock); in voice_shutdown_depop_events()
326 es8396->aif2_select &= 0xfe; in voice_shutdown_depop_events()
327 if (es8396->aif1_select != 0) { in voice_shutdown_depop_events()
333 mutex_unlock(&es8396->voice_shutdown_depop_mlock); in voice_shutdown_depop_events()
338 struct es8396_private *es8396 = container_of(work, struct es8396_private, in init_cali_work_events() local
340 struct snd_soc_component *component = es8396->component; in init_cali_work_events()
342 mutex_lock(&es8396->init_cali_mlock); in init_cali_work_events()
344 if (es8396->pcm_pop_work_retry > 0) { in init_cali_work_events()
345 es8396->pcm_pop_work_retry--; in init_cali_work_events()
348 if (es8396->pcm_pop_work_retry) { in init_cali_work_events()
349 schedule_delayed_work(&es8396->init_cali_work, in init_cali_work_events()
362 mutex_unlock(&es8396->init_cali_mlock); in init_cali_work_events()
367 struct es8396_private *es8396 = container_of(work, struct es8396_private, in voice_pop_work_events() local
369 struct snd_soc_component *component = es8396->component; in voice_pop_work_events()
372 mutex_lock(&es8396->voice_depop_mlock); in voice_pop_work_events()
400 mutex_unlock(&es8396->voice_depop_mlock); in voice_pop_work_events()
405 struct es8396_private *es8396 = container_of(work, struct es8396_private, in pcm_pop_work_events() local
407 struct snd_soc_component *component = es8396->component; in pcm_pop_work_events()
410 mutex_lock(&es8396->pcm_depop_mlock); in pcm_pop_work_events()
427 mutex_unlock(&es8396->pcm_depop_mlock); in pcm_pop_work_events()
438 struct es8396_private *es8396 = snd_soc_component_get_drvdata(component); in classd_event() local
457 if (es8396_valid_spkldo(es8396->spk_ldo_lvl) == false) { in classd_event()
462 lvl = es8396->spk_ldo_lvl; in classd_event()
467 if (es8396->spkmono == 1) { /* speaker in mono mode */ in classd_event()
502 es8396->output_device_selected = 0; in classd_event()
506 schedule_delayed_work(&es8396->pcm_pop_work, in classd_event()
547 struct es8396_private *es8396 = snd_soc_component_get_drvdata(component); in micbias_event() local
552 if (es8396_valid_micbias(es8396->mic_bias_lvl) == false) { in micbias_event()
556 regv = es8396->mic_bias_lvl; in micbias_event()
564 if (es8396->dmic_amic == MIC_DMIC) { in micbias_event()
586 struct es8396_private *es8396 = container_of(work, struct es8396_private, in adc_depop_work_events() local
588 struct snd_soc_component *component = es8396->component; in adc_depop_work_events()
591 mutex_lock(&es8396->adc_depop_mlock); in adc_depop_work_events()
593 mutex_unlock(&es8396->adc_depop_mlock); in adc_depop_work_events()
601 struct es8396_private *es8396 = snd_soc_component_get_drvdata(component); in adc_event() local
649 schedule_delayed_work(&es8396->adc_depop_work, in adc_event()
673 struct es8396_private *es8396 = snd_soc_component_get_drvdata(component); in hpamp_event() local
680 es8396->output_device_selected = 1; in hpamp_event()
685 schedule_delayed_work(&es8396->pcm_pop_work, in hpamp_event()
2438 struct es8396_private *es8396 = snd_soc_component_get_drvdata(component); in es8396_set_bias_level() local
2457 if (es8396->aif1_select == 0 && es8396->aif2_select == 0) { in es8396_set_bias_level()
2461 if (es8396_valid_analdo(es8396->ana_ldo_lvl)) { in es8396_set_bias_level()
2462 value = es8396->ana_ldo_lvl; in es8396_set_bias_level()
2508 struct es8396_private *es8396 = snd_soc_component_get_drvdata(component); in es8396_pcm_startup() local
2521 if ((es8396->aif2_select & 0x01) == 0) { in es8396_pcm_startup()
2545 es8396->aif1_select |= 0x01; in es8396_pcm_startup()
2552 if (es8396->calibrate == 0) { in es8396_pcm_startup()
2554 es8396->calibrate = true; in es8396_pcm_startup()
2556 schedule_delayed_work(&es8396->pcm_pop_work, in es8396_pcm_startup()
2600 es8396->aif1_select |= 0x02; in es8396_pcm_startup()
2601 schedule_delayed_work(&es8396->adc_depop_work, in es8396_pcm_startup()
2612 struct es8396_private *es8396 = snd_soc_component_get_drvdata(component); in es8396_pcm_shutdown() local
2621 schedule_delayed_work(&es8396->pcm_shutdown_depop_work, in es8396_pcm_shutdown()
2627 es8396->aif1_select &= 0xfd; in es8396_pcm_shutdown()
2637 struct es8396_private *es8396 = snd_soc_component_get_drvdata(component); in es8396_voice_startup() local
2645 es8396->aif2_select |= 0x01; in es8396_voice_startup()
2665 if ((es8396->aif1_select & 0x01) == 0) { in es8396_voice_startup()
2685 schedule_delayed_work(&es8396->voice_pop_work, in es8396_voice_startup()
2689 es8396->aif2_select |= 0x02; in es8396_voice_startup()
2737 struct es8396_private *es8396 = snd_soc_component_get_drvdata(component); in es8396_voice_shutdown() local
2746 schedule_delayed_work(&es8396->voice_shutdown_depop_work, in es8396_voice_shutdown()
2753 es8396->aif2_select &= 0xfd; in es8396_voice_shutdown()
2763 struct es8396_private *es8396 = snd_soc_component_get_drvdata(component); in es8396_aif1_mute() local
2767 if (es8396->spk_ctl_gpio && es8396->aif2_select == 0) in es8396_aif1_mute()
2768 gpiod_set_value(es8396->spk_ctl_gpio, 0); in es8396_aif1_mute()
2769 if (es8396->lineout_ctl_gpio && es8396->aif2_select == 0) in es8396_aif1_mute()
2770 gpiod_set_value(es8396->lineout_ctl_gpio, 0); in es8396_aif1_mute()
2773 if (es8396->spk_ctl_gpio) in es8396_aif1_mute()
2774 gpiod_set_value(es8396->spk_ctl_gpio, 1); in es8396_aif1_mute()
2775 if (es8396->lineout_ctl_gpio) in es8396_aif1_mute()
2776 gpiod_set_value(es8396->lineout_ctl_gpio, 1); in es8396_aif1_mute()
2785 struct es8396_private *es8396 = snd_soc_component_get_drvdata(component); in es8396_aif2_mute() local
2790 if (es8396->spk_ctl_gpio && es8396->aif1_select == 0) in es8396_aif2_mute()
2791 gpiod_set_value(es8396->spk_ctl_gpio, 0); in es8396_aif2_mute()
2792 if (es8396->lineout_ctl_gpio && es8396->aif1_select == 0) in es8396_aif2_mute()
2793 gpiod_set_value(es8396->lineout_ctl_gpio, 0); in es8396_aif2_mute()
2796 if (es8396->spk_ctl_gpio) in es8396_aif2_mute()
2797 gpiod_set_value(es8396->spk_ctl_gpio, 1); in es8396_aif2_mute()
2798 if (es8396->lineout_ctl_gpio) in es8396_aif2_mute()
2799 gpiod_set_value(es8396->lineout_ctl_gpio, 1); in es8396_aif2_mute()
2855 struct es8396_private *es8396 = dev_get_drvdata(dev); in es8396_suspend() local
2856 struct snd_soc_component *component = es8396->component; in es8396_suspend()
2868 struct es8396_private *es8396 = dev_get_drvdata(dev); in es8396_resume() local
2869 struct snd_soc_component *component = es8396->component; in es8396_resume()
2882 struct es8396_private *es8396 = snd_soc_component_get_drvdata(component); in es8396_probe() local
2886 es8396->component = component; in es8396_probe()
2887 es8396->mclk_clock = devm_clk_get(component->dev, "mclk"); in es8396_probe()
2888 if (PTR_ERR(es8396->mclk_clock) == -EPROBE_DEFER) in es8396_probe()
2891 ret = clk_prepare_enable(es8396->mclk_clock); in es8396_probe()
2923 if (es8396_valid_analdo(es8396->ana_ldo_lvl) == false) { in es8396_probe()
2927 value = es8396->ana_ldo_lvl; in es8396_probe()
2967 if (es8396_valid_micbias(es8396->mic_bias_lvl) == false) { in es8396_probe()
2971 value = es8396->mic_bias_lvl; in es8396_probe()
2980 if (es8396->dmic_amic == MIC_AMIC) in es8396_probe()
2999 if (es8396->jackdet_enable == 1) { in es8396_probe()
3003 if (es8396->gpio_int_pol == 0) in es8396_probe()
3020 if (es8396->monoin_differential == 1) in es8396_probe()
3034 INIT_DELAYED_WORK(&es8396->adc_depop_work, adc_depop_work_events); in es8396_probe()
3035 mutex_init(&es8396->adc_depop_mlock); in es8396_probe()
3036 INIT_DELAYED_WORK(&es8396->pcm_pop_work, pcm_pop_work_events); in es8396_probe()
3037 mutex_init(&es8396->pcm_depop_mlock); in es8396_probe()
3039 INIT_DELAYED_WORK(&es8396->voice_pop_work, voice_pop_work_events); in es8396_probe()
3040 mutex_init(&es8396->voice_depop_mlock); in es8396_probe()
3042 INIT_DELAYED_WORK(&es8396->init_cali_work, init_cali_work_events); in es8396_probe()
3043 mutex_init(&es8396->init_cali_mlock); in es8396_probe()
3045 INIT_DELAYED_WORK(&es8396->pcm_shutdown_depop_work, in es8396_probe()
3047 mutex_init(&es8396->pcm_shutdown_depop_mlock); in es8396_probe()
3049 INIT_DELAYED_WORK(&es8396->voice_shutdown_depop_work, in es8396_probe()
3051 mutex_init(&es8396->voice_shutdown_depop_mlock); in es8396_probe()
3100 static int init_es8396_prv(struct es8396_private *es8396) in init_es8396_prv() argument
3102 if (!es8396) in init_es8396_prv()
3105 es8396->dvdd_pwr_vol = 0x18; in init_es8396_prv()
3106 es8396->spkmono = false; in init_es8396_prv()
3107 es8396->earpiece = true; in init_es8396_prv()
3108 es8396->monoin_differential = true; in init_es8396_prv()
3109 es8396->lno_differential = 0; in init_es8396_prv()
3110 es8396->ana_ldo_lvl = ANA_LDO_2_1V; in init_es8396_prv()
3111 es8396->spk_ldo_lvl = SPK_LDO_3V; in init_es8396_prv()
3112 es8396->mic_bias_lvl = MICBIAS_3V; in init_es8396_prv()
3113 es8396->jackdet_enable = true; in init_es8396_prv()
3114 es8396->gpio_int_pol = 0; in init_es8396_prv()
3115 es8396->dmic_amic = MIC_AMIC; in init_es8396_prv()
3116 es8396->calibrate = false; in init_es8396_prv()
3117 es8396->pcm_pop_work_retry = 1; in init_es8396_prv()
3118 es8396->output_device_selected = 0; in init_es8396_prv()
3119 es8396->aif1_select = 0; in init_es8396_prv()
3120 es8396->aif2_select = 0; in init_es8396_prv()
3127 struct es8396_private *es8396; in es8396_i2c_probe() local
3130 es8396 = devm_kzalloc(&i2c_client->dev, sizeof(struct es8396_private), in es8396_i2c_probe()
3132 if (!es8396) in es8396_i2c_probe()
3135 ret = init_es8396_prv(es8396); in es8396_i2c_probe()
3139 es8396->regmap = devm_regmap_init_i2c(i2c_client, &es8396_regmap_config); in es8396_i2c_probe()
3140 if (IS_ERR(es8396->regmap)) in es8396_i2c_probe()
3141 return PTR_ERR(es8396->regmap); in es8396_i2c_probe()
3144 i2c_set_clientdata(i2c_client, es8396); in es8396_i2c_probe()
3147 es8396->spk_ctl_gpio = devm_gpiod_get_optional(&i2c_client->dev, in es8396_i2c_probe()
3150 if (IS_ERR(es8396->spk_ctl_gpio)) in es8396_i2c_probe()
3151 return PTR_ERR(es8396->spk_ctl_gpio); in es8396_i2c_probe()
3154 es8396->lineout_ctl_gpio = devm_gpiod_get_optional(&i2c_client->dev, in es8396_i2c_probe()
3157 if (IS_ERR(es8396->lineout_ctl_gpio)) in es8396_i2c_probe()
3158 return PTR_ERR(es8396->lineout_ctl_gpio); in es8396_i2c_probe()
3167 struct es8396_private *es8396 = i2c_get_clientdata(client); in es8396_i2c_shutdown() local
3168 struct snd_soc_component *component = es8396->component; in es8396_i2c_shutdown()
3170 if (es8396->spk_ctl_gpio) in es8396_i2c_shutdown()
3171 gpiod_set_value(es8396->spk_ctl_gpio, 0); in es8396_i2c_shutdown()