Lines Matching defs:cs42l51
3 * cs42l51.c
29 #include "cs42l51.h"
261 struct cs42l51_private *cs42l51 = snd_soc_component_get_drvdata(comp);
265 return clk_prepare_enable(cs42l51->mclk_handle);
269 clk_disable_unprepare(cs42l51->mclk_handle);
314 struct cs42l51_private *cs42l51 = snd_soc_component_get_drvdata(component);
320 cs42l51->audio_mode = format & SND_SOC_DAIFMT_FORMAT_MASK;
329 cs42l51->func = MODE_MASTER;
332 cs42l51->func = MODE_SLAVE_AUTO;
390 struct cs42l51_private *cs42l51 = snd_soc_component_get_drvdata(component);
392 cs42l51->mclk = freq;
401 struct cs42l51_private *cs42l51 = snd_soc_component_get_drvdata(component);
410 switch (cs42l51->func) {
427 ratio = cs42l51->mclk / rate; /* MCLK/LRCK ratio */
447 switch (cs42l51->func) {
469 switch (cs42l51->audio_mode) {
548 .name = "cs42l51-hifi",
570 struct cs42l51_private *cs42l51;
572 cs42l51 = snd_soc_component_get_drvdata(component);
575 if (cs42l51->mclk_handle)
716 struct cs42l51_private *cs42l51;
723 cs42l51 = devm_kzalloc(dev, sizeof(struct cs42l51_private),
725 if (!cs42l51)
728 dev_set_drvdata(dev, cs42l51);
729 cs42l51->regmap = regmap;
731 cs42l51->mclk_handle = devm_clk_get(dev, "MCLK");
732 if (IS_ERR(cs42l51->mclk_handle)) {
733 if (PTR_ERR(cs42l51->mclk_handle) != -ENOENT)
734 return PTR_ERR(cs42l51->mclk_handle);
735 cs42l51->mclk_handle = NULL;
738 for (i = 0; i < ARRAY_SIZE(cs42l51->supplies); i++)
739 cs42l51->supplies[i].supply = cs42l51_supply_names[i];
741 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(cs42l51->supplies),
742 cs42l51->supplies);
748 ret = regulator_bulk_enable(ARRAY_SIZE(cs42l51->supplies),
749 cs42l51->supplies);
755 cs42l51->reset_gpio = devm_gpiod_get_optional(dev, "reset",
757 if (IS_ERR(cs42l51->reset_gpio))
758 return PTR_ERR(cs42l51->reset_gpio);
760 if (cs42l51->reset_gpio) {
762 gpiod_set_value_cansleep(cs42l51->reset_gpio, 0);
790 regulator_bulk_disable(ARRAY_SIZE(cs42l51->supplies),
791 cs42l51->supplies);
798 struct cs42l51_private *cs42l51 = dev_get_drvdata(dev);
800 gpiod_set_value_cansleep(cs42l51->reset_gpio, 1);
802 return regulator_bulk_disable(ARRAY_SIZE(cs42l51->supplies),
803 cs42l51->supplies);
809 struct cs42l51_private *cs42l51 = dev_get_drvdata(dev);
811 regcache_cache_only(cs42l51->regmap, true);
812 regcache_mark_dirty(cs42l51->regmap);
820 struct cs42l51_private *cs42l51 = dev_get_drvdata(dev);
822 regcache_cache_only(cs42l51->regmap, false);
824 return regcache_sync(cs42l51->regmap);