Lines Matching refs:es8326

100 static int es8326_set_gpio(struct es8326_priv *es8326, int gpio, bool level)  in es8326_set_gpio()  argument
102 if (!es8326) in es8326_set_gpio()
105 if ((gpio & ES8326_CODEC_SET_SPK) && es8326->spk_ctl_gpio) in es8326_set_gpio()
106 gpiod_set_value(es8326->spk_ctl_gpio, level); in es8326_set_gpio()
108 if ((gpio & ES8326_CODEC_SET_HP) && es8326->hp_ctl_gpio) in es8326_set_gpio()
109 gpiod_set_value(es8326->hp_ctl_gpio, level); in es8326_set_gpio()
116 struct es8326_priv *es8326 = in es8326_hpdetect_work() local
118 struct device *dev = es8326->component->dev; in es8326_hpdetect_work()
121 mutex_lock(&es8326->lock); in es8326_hpdetect_work()
122 if (!es8326->jack) in es8326_hpdetect_work()
125 snd_soc_component_write(es8326->component, 0x1b, 0x7c); in es8326_hpdetect_work()
128 iface = snd_soc_component_read(es8326->component, 0xfb); in es8326_hpdetect_work()
134 snd_soc_jack_report(es8326->jack, 0, SND_JACK_HEADSET); in es8326_hpdetect_work()
135 snd_soc_component_write(es8326->component, ES8326_ADC1_SRC_2A, in es8326_hpdetect_work()
136 es8326->mic2_src); in es8326_hpdetect_work()
138 es8326_set_gpio(es8326, ES8326_CODEC_SET_SPK, 1); in es8326_hpdetect_work()
139 es8326_set_gpio(es8326, ES8326_CODEC_SET_HP, 1); in es8326_hpdetect_work()
140 es8326->hp_inserted = 0; in es8326_hpdetect_work()
145 snd_soc_jack_report(es8326->jack, SND_JACK_HEADSET, in es8326_hpdetect_work()
147 snd_soc_component_write(es8326->component, in es8326_hpdetect_work()
149 es8326->mic1_src); in es8326_hpdetect_work()
153 snd_soc_jack_report(es8326->jack, SND_JACK_HEADPHONE, in es8326_hpdetect_work()
157 es8326_set_gpio(es8326, ES8326_CODEC_SET_SPK, 0); in es8326_hpdetect_work()
158 es8326_set_gpio(es8326, ES8326_CODEC_SET_HP, 0); in es8326_hpdetect_work()
159 es8326->hp_inserted = 1; in es8326_hpdetect_work()
163 mutex_unlock(&es8326->lock); in es8326_hpdetect_work()
164 snd_soc_component_write(es8326->component, 0x1b, 0x70); in es8326_hpdetect_work()
169 struct es8326_priv *es8326 = dev_id; in es8326_irq() local
176 &es8326->hpdet_work, msecs_to_jiffies(10)); in es8326_irq()
431 struct es8326_priv *es8326 = snd_soc_component_get_drvdata(component); in es8326_set_dai_sysclk() local
432 unsigned int freq2 = es8326->mclk_rate; in es8326_set_dai_sysclk()
435 es8326->sysclk_constraints->list = NULL; in es8326_set_dai_sysclk()
436 es8326->sysclk_constraints->count = 0; in es8326_set_dai_sysclk()
445 es8326->sysclk_constraints = &constraints_112896; in es8326_set_dai_sysclk()
452 es8326->sysclk_constraints = &constraints_12288; in es8326_set_dai_sysclk()
458 es8326->sysclk_constraints = &constraints_12; in es8326_set_dai_sysclk()
498 struct es8326_priv *es8326 = snd_soc_component_get_drvdata(component); in es8326_pcm_hw_params() local
500 int coeff = get_coeff(es8326->mclk_rate, params_rate(params)); in es8326_pcm_hw_params()
547 struct es8326_priv *es8326 = snd_soc_component_get_drvdata(component); in es8326_mute() local
552 if (es8326->hp_inserted) in es8326_mute()
556 es8326_set_gpio(es8326, ES8326_CODEC_SET_SPK, 0); in es8326_mute()
557 es8326_set_gpio(es8326, ES8326_CODEC_SET_HP, 0); in es8326_mute()
559 es8326_set_gpio(es8326, ES8326_CODEC_SET_SPK, 1); in es8326_mute()
560 es8326_set_gpio(es8326, ES8326_CODEC_SET_HP, 1); in es8326_mute()
568 struct es8326_priv *es8326 = snd_soc_component_get_drvdata(component); in es8326_set_bias_level() local
577 if (!IS_ERR(es8326->mclk)) { in es8326_set_bias_level()
580 clk_disable_unprepare(es8326->mclk); in es8326_set_bias_level()
582 ret = clk_prepare_enable(es8326->mclk); in es8326_set_bias_level()
685 struct es8326_priv *es8326; in es8326_probe() local
691 es8326 = snd_soc_component_get_drvdata(component); in es8326_probe()
692 es8326->component = component; in es8326_probe()
694 es8326->mclk = devm_clk_get_optional(component->dev, "mclk"); in es8326_probe()
695 if (IS_ERR(es8326->mclk)) { in es8326_probe()
697 return PTR_ERR(es8326->mclk); in es8326_probe()
699 if (!es8326->mclk) in es8326_probe()
702 ret = clk_prepare_enable(es8326->mclk); in es8326_probe()
734 snd_soc_component_write(component, 0x2A, es8326->mic2_src); in es8326_probe()
735 snd_soc_component_write(component, 0x2B, es8326->mic2_src); in es8326_probe()
745 snd_soc_component_write(component, 0x57, 0x10 | es8326->jack_pol); in es8326_probe()
767 struct es8326_priv *es8326 = snd_soc_component_get_drvdata(component); in es8326_enable_jack_detect() local
769 mutex_lock(&es8326->lock); in es8326_enable_jack_detect()
770 es8326->jack = jack; in es8326_enable_jack_detect()
771 mutex_unlock(&es8326->lock); in es8326_enable_jack_detect()
774 enable_irq(es8326->irq); in es8326_enable_jack_detect()
776 &es8326->hpdet_work, msecs_to_jiffies(10)); in es8326_enable_jack_detect()
781 struct es8326_priv *es8326 = snd_soc_component_get_drvdata(component); in es8326_disable_jack_detect() local
783 if (!es8326->jack) in es8326_disable_jack_detect()
786 disable_irq(es8326->irq); in es8326_disable_jack_detect()
788 mutex_lock(&es8326->lock); in es8326_disable_jack_detect()
789 if (es8326->jack->status & SND_JACK_MICROPHONE) in es8326_disable_jack_detect()
790 snd_soc_jack_report(es8326->jack, 0, SND_JACK_BTN_0); in es8326_disable_jack_detect()
791 es8326->jack = NULL; in es8326_disable_jack_detect()
792 mutex_unlock(&es8326->lock); in es8326_disable_jack_detect()
826 struct es8326_priv *es8326; in es8326_i2c_probe() local
836 es8326 = devm_kzalloc(&i2c->dev, sizeof(struct es8326_priv), GFP_KERNEL); in es8326_i2c_probe()
837 if (es8326 == NULL) in es8326_i2c_probe()
840 i2c_set_clientdata(i2c, es8326); in es8326_i2c_probe()
841 es8326->i2c = i2c; in es8326_i2c_probe()
842 es8326->hp_inserted = 0; in es8326_i2c_probe()
844 mutex_init(&es8326->lock); in es8326_i2c_probe()
845 es8326->regmap = devm_regmap_init_i2c(i2c, &es8326_regmap_config); in es8326_i2c_probe()
846 if (IS_ERR(es8326->regmap)) { in es8326_i2c_probe()
847 ret = PTR_ERR(es8326->regmap); in es8326_i2c_probe()
852 es8326->spk_ctl_gpio = devm_gpiod_get_optional(&i2c->dev, in es8326_i2c_probe()
855 if (IS_ERR(es8326->spk_ctl_gpio)) in es8326_i2c_probe()
856 return PTR_ERR(es8326->spk_ctl_gpio); in es8326_i2c_probe()
858 es8326->hp_ctl_gpio = devm_gpiod_get_optional(&i2c->dev, in es8326_i2c_probe()
860 if (IS_ERR(es8326->hp_ctl_gpio)) in es8326_i2c_probe()
861 return PTR_ERR(es8326->hp_ctl_gpio); in es8326_i2c_probe()
870 es8326->mastermode = device_property_read_bool(&i2c->dev, "mastermode"); in es8326_i2c_probe()
871 dev_dbg(&i2c->dev, "master mode %d", es8326->mastermode); in es8326_i2c_probe()
874 &es8326->mic1_src); in es8326_i2c_probe()
877 es8326->mic1_src = 0x22; in es8326_i2c_probe()
879 dev_dbg(&i2c->dev, "mic1-src %x", es8326->mic1_src); in es8326_i2c_probe()
882 &es8326->mic2_src); in es8326_i2c_probe()
885 es8326->mic2_src = 0x44; in es8326_i2c_probe()
887 dev_dbg(&i2c->dev, "mic2-src %x", es8326->mic2_src); in es8326_i2c_probe()
890 &es8326->jack_pol); in es8326_i2c_probe()
893 es8326->jack_pol = 0x0f; in es8326_i2c_probe()
895 dev_dbg(&i2c->dev, "jack-pol %x", es8326->jack_pol); in es8326_i2c_probe()
898 &es8326->mclk_rate); in es8326_i2c_probe()
901 es8326->mclk_rate = 12288000; in es8326_i2c_probe()
903 dev_dbg(&i2c->dev, "mclk-rate %u", es8326->mclk_rate); in es8326_i2c_probe()
905 INIT_DELAYED_WORK(&es8326->hpdet_work, es8326_hpdetect_work); in es8326_i2c_probe()
907 es8326->irq = i2c->irq; in es8326_i2c_probe()
908 ret = devm_request_threaded_irq(&i2c->dev, es8326->irq, NULL, es8326_irq, in es8326_i2c_probe()
912 "es8326", es8326); in es8326_i2c_probe()
918 disable_irq(es8326->irq); in es8326_i2c_probe()