Lines Matching refs:es8316

368 	struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component);  in es8316_set_dai_sysclk()  local
372 es8316->sysclk = freq; in es8316_set_dai_sysclk()
373 es8316->sysclk_constraints.list = NULL; in es8316_set_dai_sysclk()
374 es8316->sysclk_constraints.count = 0; in es8316_set_dai_sysclk()
379 ret = clk_set_rate(es8316->mclk, freq); in es8316_set_dai_sysclk()
390 es8316->allowed_rates[count++] = freq / ratio; in es8316_set_dai_sysclk()
396 es8316->allowed_rates[count++] = freq / ratio / 2; in es8316_set_dai_sysclk()
400 es8316->sysclk_constraints.list = es8316->allowed_rates; in es8316_set_dai_sysclk()
401 es8316->sysclk_constraints.count = count; in es8316_set_dai_sysclk()
460 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component); in es8316_pcm_startup() local
462 if (es8316->sysclk_constraints.list) in es8316_pcm_startup()
465 &es8316->sysclk_constraints); in es8316_pcm_startup()
475 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component); in es8316_pcm_hw_params() local
480 unsigned int clk = es8316->sysclk / 2; in es8316_pcm_hw_params()
501 if (clk == es8316->sysclk) in es8316_pcm_hw_params()
503 clk = es8316->sysclk; in es8316_pcm_hw_params()
509 if (clk != es8316->sysclk) { in es8316_pcm_hw_params()
620 struct es8316_priv *es8316 = data; in es8316_irq() local
621 struct snd_soc_component *comp = es8316->component; in es8316_irq()
624 mutex_lock(&es8316->lock); in es8316_irq()
626 regmap_read(es8316->regmap, ES8316_GPIO_FLAG, &flags); in es8316_irq()
631 if (!es8316->jack) in es8316_irq()
634 if (es8316->jd_inverted) in es8316_irq()
640 if (es8316->jack->status & SND_JACK_MICROPHONE) in es8316_irq()
643 if (es8316->jack->status & SND_JACK_HEADPHONE) { in es8316_irq()
644 snd_soc_jack_report(es8316->jack, 0, in es8316_irq()
648 } else if (!(es8316->jack->status & SND_JACK_HEADPHONE)) { in es8316_irq()
651 regmap_read(es8316->regmap, ES8316_GPIO_FLAG, &flags); in es8316_irq()
652 if (es8316->jd_inverted) in es8316_irq()
660 snd_soc_jack_report(es8316->jack, in es8316_irq()
666 snd_soc_jack_report(es8316->jack, in es8316_irq()
672 } else if (es8316->jack->status & SND_JACK_MICROPHONE) { in es8316_irq()
676 snd_soc_jack_report(es8316->jack, 0, SND_JACK_BTN_0); in es8316_irq()
679 snd_soc_jack_report(es8316->jack, in es8316_irq()
686 mutex_unlock(&es8316->lock); in es8316_irq()
693 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component); in es8316_enable_jack_detect() local
700 es8316->jd_inverted = device_property_read_bool(component->dev, in es8316_enable_jack_detect()
703 mutex_lock(&es8316->lock); in es8316_enable_jack_detect()
705 es8316->jack = jack; in es8316_enable_jack_detect()
707 if (es8316->jack->status & SND_JACK_MICROPHONE) in es8316_enable_jack_detect()
714 mutex_unlock(&es8316->lock); in es8316_enable_jack_detect()
717 enable_irq(es8316->irq); in es8316_enable_jack_detect()
718 es8316_irq(es8316->irq, es8316); in es8316_enable_jack_detect()
723 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component); in es8316_disable_jack_detect() local
725 if (!es8316->jack) in es8316_disable_jack_detect()
728 disable_irq(es8316->irq); in es8316_disable_jack_detect()
730 mutex_lock(&es8316->lock); in es8316_disable_jack_detect()
735 if (es8316->jack->status & SND_JACK_MICROPHONE) { in es8316_disable_jack_detect()
737 snd_soc_jack_report(es8316->jack, 0, SND_JACK_BTN_0); in es8316_disable_jack_detect()
740 es8316->jack = NULL; in es8316_disable_jack_detect()
742 mutex_unlock(&es8316->lock); in es8316_disable_jack_detect()
758 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component); in es8316_probe() local
761 es8316->component = component; in es8316_probe()
763 es8316->mclk = devm_clk_get_optional(component->dev, "mclk"); in es8316_probe()
764 if (IS_ERR(es8316->mclk)) { in es8316_probe()
766 return PTR_ERR(es8316->mclk); in es8316_probe()
768 if (!es8316->mclk) in es8316_probe()
771 ret = clk_prepare_enable(es8316->mclk); in es8316_probe()
801 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component); in es8316_remove() local
803 clk_disable_unprepare(es8316->mclk); in es8316_remove()
808 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component); in es8316_resume() local
810 regcache_cache_only(es8316->regmap, false); in es8316_resume()
811 regcache_sync(es8316->regmap); in es8316_resume()
818 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component); in es8316_suspend() local
820 regcache_cache_only(es8316->regmap, true); in es8316_suspend()
821 regcache_mark_dirty(es8316->regmap); in es8316_suspend()
865 struct es8316_priv *es8316; in es8316_i2c_probe() local
868 es8316 = devm_kzalloc(&i2c_client->dev, sizeof(struct es8316_priv), in es8316_i2c_probe()
870 if (es8316 == NULL) in es8316_i2c_probe()
873 i2c_set_clientdata(i2c_client, es8316); in es8316_i2c_probe()
875 es8316->regmap = devm_regmap_init_i2c(i2c_client, &es8316_regmap); in es8316_i2c_probe()
876 if (IS_ERR(es8316->regmap)) in es8316_i2c_probe()
877 return PTR_ERR(es8316->regmap); in es8316_i2c_probe()
879 es8316->irq = i2c_client->irq; in es8316_i2c_probe()
880 mutex_init(&es8316->lock); in es8316_i2c_probe()
882 if (es8316->irq > 0) { in es8316_i2c_probe()
883 ret = devm_request_threaded_irq(dev, es8316->irq, NULL, es8316_irq, in es8316_i2c_probe()
885 "es8316", es8316); in es8316_i2c_probe()
887 dev_warn(dev, "Failed to get IRQ %d: %d\n", es8316->irq, ret); in es8316_i2c_probe()
888 es8316->irq = -ENXIO; in es8316_i2c_probe()