• Home
  • Raw
  • Download

Lines Matching full:max98927

3  * max98927.c  --  MAX98927 ALSA Soc Audio driver
21 #include "max98927.h"
142 struct max98927_priv *max98927 = snd_soc_component_get_drvdata(component); in max98927_dai_set_fmt() local
155 max98927->master = true; in max98927_dai_set_fmt()
163 regmap_update_bits(max98927->regmap, in max98927_dai_set_fmt()
179 regmap_update_bits(max98927->regmap, in max98927_dai_set_fmt()
204 max98927->iface = fmt & SND_SOC_DAIFMT_FORMAT_MASK; in max98927_dai_set_fmt()
208 regmap_update_bits(max98927->regmap, in max98927_dai_set_fmt()
213 regmap_update_bits(max98927->regmap, in max98927_dai_set_fmt()
218 regmap_update_bits(max98927->regmap, in max98927_dai_set_fmt()
222 regmap_update_bits(max98927->regmap, in max98927_dai_set_fmt()
227 regmap_update_bits(max98927->regmap, in max98927_dai_set_fmt()
231 regmap_update_bits(max98927->regmap, in max98927_dai_set_fmt()
235 regmap_update_bits(max98927->regmap, in max98927_dai_set_fmt()
264 static int max98927_set_clock(struct max98927_priv *max98927, in max98927_set_clock() argument
267 struct snd_soc_component *component = max98927->component; in max98927_set_clock()
269 int blr_clk_ratio = params_channels(params) * max98927->ch_size; in max98927_set_clock()
272 if (max98927->master) { in max98927_set_clock()
276 if (rate_table[i] >= max98927->sysclk) in max98927_set_clock()
283 regmap_update_bits(max98927->regmap, in max98927_set_clock()
289 if (!max98927->tdm_mode) { in max98927_set_clock()
298 regmap_update_bits(max98927->regmap, in max98927_set_clock()
311 struct max98927_priv *max98927 = snd_soc_component_get_drvdata(component); in max98927_dai_hw_params() local
332 max98927->ch_size = snd_pcm_format_width(params_format(params)); in max98927_dai_hw_params()
334 regmap_update_bits(max98927->regmap, in max98927_dai_hw_params()
376 regmap_update_bits(max98927->regmap, in max98927_dai_hw_params()
380 regmap_update_bits(max98927->regmap, in max98927_dai_hw_params()
386 if (max98927->interleave_mode && in max98927_dai_hw_params()
388 regmap_update_bits(max98927->regmap, in max98927_dai_hw_params()
393 regmap_update_bits(max98927->regmap, in max98927_dai_hw_params()
397 return max98927_set_clock(max98927, params); in max98927_dai_hw_params()
407 struct max98927_priv *max98927 = snd_soc_component_get_drvdata(component); in max98927_dai_tdm_slot() local
411 max98927->tdm_mode = true; in max98927_dai_tdm_slot()
421 regmap_update_bits(max98927->regmap, in max98927_dai_tdm_slot()
443 regmap_update_bits(max98927->regmap, in max98927_dai_tdm_slot()
448 regmap_write(max98927->regmap, in max98927_dai_tdm_slot()
451 regmap_write(max98927->regmap, in max98927_dai_tdm_slot()
456 regmap_write(max98927->regmap, in max98927_dai_tdm_slot()
459 regmap_write(max98927->regmap, in max98927_dai_tdm_slot()
464 regmap_write(max98927->regmap, in max98927_dai_tdm_slot()
467 regmap_write(max98927->regmap, in max98927_dai_tdm_slot()
483 struct max98927_priv *max98927 = snd_soc_component_get_drvdata(component); in max98927_dai_set_sysclk() local
485 max98927->sysclk = freq; in max98927_dai_set_sysclk()
500 struct max98927_priv *max98927 = snd_soc_component_get_drvdata(component); in max98927_dac_event() local
504 max98927->tdm_mode = false; in max98927_dac_event()
507 regmap_update_bits(max98927->regmap, in max98927_dac_event()
510 regmap_update_bits(max98927->regmap, in max98927_dac_event()
515 regmap_update_bits(max98927->regmap, in max98927_dac_event()
518 regmap_update_bits(max98927->regmap, in max98927_dac_event()
657 .name = "max98927-aif1",
678 struct max98927_priv *max98927 = snd_soc_component_get_drvdata(component); in max98927_probe() local
680 max98927->component = component; in max98927_probe()
683 regmap_write(max98927->regmap, in max98927_probe()
687 regmap_write(max98927->regmap, in max98927_probe()
690 regmap_write(max98927->regmap, in max98927_probe()
693 regmap_write(max98927->regmap, in max98927_probe()
696 regmap_write(max98927->regmap, in max98927_probe()
700 regmap_write(max98927->regmap, in max98927_probe()
703 regmap_write(max98927->regmap, in max98927_probe()
707 regmap_write(max98927->regmap, in max98927_probe()
711 regmap_write(max98927->regmap, in max98927_probe()
715 regmap_write(max98927->regmap, in max98927_probe()
718 regmap_write(max98927->regmap, in max98927_probe()
722 regmap_write(max98927->regmap, in max98927_probe()
725 regmap_write(max98927->regmap, in max98927_probe()
728 regmap_write(max98927->regmap, in max98927_probe()
732 regmap_write(max98927->regmap, in max98927_probe()
736 regmap_write(max98927->regmap, in max98927_probe()
739 regmap_write(max98927->regmap, in max98927_probe()
742 regmap_write(max98927->regmap, in max98927_probe()
747 regmap_write(max98927->regmap, in max98927_probe()
749 (max98927->i_l_slot<<MAX98927_PCM_TX_CH_SRC_A_I_SHIFT| in max98927_probe()
750 max98927->v_l_slot)&0xFF); in max98927_probe()
752 if (max98927->v_l_slot < 8) { in max98927_probe()
753 regmap_update_bits(max98927->regmap, in max98927_probe()
755 1 << max98927->v_l_slot, 0); in max98927_probe()
756 regmap_update_bits(max98927->regmap, in max98927_probe()
758 1 << max98927->v_l_slot, in max98927_probe()
759 1 << max98927->v_l_slot); in max98927_probe()
761 regmap_update_bits(max98927->regmap, in max98927_probe()
763 1 << (max98927->v_l_slot - 8), 0); in max98927_probe()
764 regmap_update_bits(max98927->regmap, in max98927_probe()
766 1 << (max98927->v_l_slot - 8), in max98927_probe()
767 1 << (max98927->v_l_slot - 8)); in max98927_probe()
770 if (max98927->i_l_slot < 8) { in max98927_probe()
771 regmap_update_bits(max98927->regmap, in max98927_probe()
773 1 << max98927->i_l_slot, 0); in max98927_probe()
774 regmap_update_bits(max98927->regmap, in max98927_probe()
776 1 << max98927->i_l_slot, in max98927_probe()
777 1 << max98927->i_l_slot); in max98927_probe()
779 regmap_update_bits(max98927->regmap, in max98927_probe()
781 1 << (max98927->i_l_slot - 8), 0); in max98927_probe()
782 regmap_update_bits(max98927->regmap, in max98927_probe()
784 1 << (max98927->i_l_slot - 8), in max98927_probe()
785 1 << (max98927->i_l_slot - 8)); in max98927_probe()
789 if (max98927->interleave_mode) in max98927_probe()
790 regmap_update_bits(max98927->regmap, in max98927_probe()
800 struct max98927_priv *max98927 = dev_get_drvdata(dev); in max98927_suspend() local
802 regcache_cache_only(max98927->regmap, true); in max98927_suspend()
803 regcache_mark_dirty(max98927->regmap); in max98927_suspend()
808 struct max98927_priv *max98927 = dev_get_drvdata(dev); in max98927_resume() local
810 regmap_write(max98927->regmap, in max98927_resume()
812 regcache_cache_only(max98927->regmap, false); in max98927_resume()
813 regcache_sync(max98927->regmap); in max98927_resume()
848 struct max98927_priv *max98927) in max98927_slot_config() argument
854 max98927->v_l_slot = value & 0xF; in max98927_slot_config()
856 max98927->v_l_slot = 0; in max98927_slot_config()
859 max98927->i_l_slot = value & 0xF; in max98927_slot_config()
861 max98927->i_l_slot = 1; in max98927_slot_config()
870 struct max98927_priv *max98927 = NULL; in max98927_i2c_probe() local
872 max98927 = devm_kzalloc(&i2c->dev, in max98927_i2c_probe()
873 sizeof(*max98927), GFP_KERNEL); in max98927_i2c_probe()
875 if (!max98927) { in max98927_i2c_probe()
879 i2c_set_clientdata(i2c, max98927); in max98927_i2c_probe()
885 max98927->interleave_mode = true; in max98927_i2c_probe()
887 max98927->interleave_mode = false; in max98927_i2c_probe()
889 max98927->interleave_mode = false; in max98927_i2c_probe()
892 max98927->regmap in max98927_i2c_probe()
894 if (IS_ERR(max98927->regmap)) { in max98927_i2c_probe()
895 ret = PTR_ERR(max98927->regmap); in max98927_i2c_probe()
902 ret = regmap_read(max98927->regmap, in max98927_i2c_probe()
909 dev_info(&i2c->dev, "MAX98927 revisionID: 0x%02X\n", reg); in max98927_i2c_probe()
912 max98927_slot_config(i2c, max98927); in max98927_i2c_probe()
925 { "max98927", 0},
933 { .compatible = "maxim,max98927", },
949 .name = "max98927",
960 MODULE_DESCRIPTION("ALSA SoC MAX98927 driver");