Lines Matching defs:es8316
3 * es8316.c -- es8316 ALSA SoC audio driver
24 #include "es8316.h"
367 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component);
371 es8316->sysclk = freq;
372 es8316->sysclk_constraints.list = NULL;
373 es8316->sysclk_constraints.count = 0;
378 ret = clk_set_rate(es8316->mclk, freq);
389 es8316->allowed_rates[count++] = freq / ratio;
393 es8316->sysclk_constraints.list = es8316->allowed_rates;
394 es8316->sysclk_constraints.count = count;
453 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component);
455 if (es8316->sysclk_constraints.list)
458 &es8316->sysclk_constraints);
468 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component);
478 if (es8316->sysclk % ratio != 0)
480 if (es8316->sysclk / ratio == params_rate(params))
485 lrck_divider = es8316->sysclk / params_rate(params);
590 struct es8316_priv *es8316 = data;
591 struct snd_soc_component *comp = es8316->component;
594 mutex_lock(&es8316->lock);
596 regmap_read(es8316->regmap, ES8316_GPIO_FLAG, &flags);
601 if (!es8316->jack)
604 if (es8316->jd_inverted)
610 if (es8316->jack->status & SND_JACK_MICROPHONE)
613 if (es8316->jack->status & SND_JACK_HEADPHONE) {
614 snd_soc_jack_report(es8316->jack, 0,
618 } else if (!(es8316->jack->status & SND_JACK_HEADPHONE)) {
621 regmap_read(es8316->regmap, ES8316_GPIO_FLAG, &flags);
622 if (es8316->jd_inverted)
630 snd_soc_jack_report(es8316->jack,
636 snd_soc_jack_report(es8316->jack,
642 } else if (es8316->jack->status & SND_JACK_MICROPHONE) {
646 snd_soc_jack_report(es8316->jack, 0, SND_JACK_BTN_0);
649 snd_soc_jack_report(es8316->jack,
656 mutex_unlock(&es8316->lock);
663 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component);
666 * Init es8316->jd_inverted here and not in the probe, as we cannot
667 * guarantee that the bytchr-es8316 driver, which might set this
670 es8316->jd_inverted = device_property_read_bool(component->dev,
673 mutex_lock(&es8316->lock);
675 es8316->jack = jack;
677 if (es8316->jack->status & SND_JACK_MICROPHONE)
684 mutex_unlock(&es8316->lock);
687 enable_irq(es8316->irq);
688 es8316_irq(es8316->irq, es8316);
693 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component);
695 if (!es8316->jack)
698 disable_irq(es8316->irq);
700 mutex_lock(&es8316->lock);
705 if (es8316->jack->status & SND_JACK_MICROPHONE) {
707 snd_soc_jack_report(es8316->jack, 0, SND_JACK_BTN_0);
710 es8316->jack = NULL;
712 mutex_unlock(&es8316->lock);
728 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component);
731 es8316->component = component;
733 es8316->mclk = devm_clk_get_optional(component->dev, "mclk");
734 if (IS_ERR(es8316->mclk)) {
736 return PTR_ERR(es8316->mclk);
738 if (!es8316->mclk)
741 ret = clk_prepare_enable(es8316->mclk);
771 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component);
773 clk_disable_unprepare(es8316->mclk);
778 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component);
780 regcache_cache_only(es8316->regmap, false);
781 regcache_sync(es8316->regmap);
788 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component);
790 regcache_cache_only(es8316->regmap, true);
791 regcache_mark_dirty(es8316->regmap);
835 struct es8316_priv *es8316;
838 es8316 = devm_kzalloc(&i2c_client->dev, sizeof(struct es8316_priv),
840 if (es8316 == NULL)
843 i2c_set_clientdata(i2c_client, es8316);
845 es8316->regmap = devm_regmap_init_i2c(i2c_client, &es8316_regmap);
846 if (IS_ERR(es8316->regmap))
847 return PTR_ERR(es8316->regmap);
849 es8316->irq = i2c_client->irq;
850 mutex_init(&es8316->lock);
852 if (es8316->irq > 0) {
853 ret = devm_request_threaded_irq(dev, es8316->irq, NULL, es8316_irq,
855 "es8316", es8316);
857 dev_warn(dev, "Failed to get IRQ %d: %d\n", es8316->irq, ret);
858 es8316->irq = -ENXIO;
868 {"es8316", 0 },
875 { .compatible = "everest,es8316", },
892 .name = "es8316",