Lines Matching refs:codec

37 	struct snd_soc_codec *codec;  member
63 static inline unsigned int uda1380_read_reg_cache(struct snd_soc_codec *codec, in uda1380_read_reg_cache() argument
66 u16 *cache = codec->reg_cache; in uda1380_read_reg_cache()
77 static inline void uda1380_write_reg_cache(struct snd_soc_codec *codec, in uda1380_write_reg_cache() argument
80 u16 *cache = codec->reg_cache; in uda1380_write_reg_cache()
92 static int uda1380_write(struct snd_soc_codec *codec, unsigned int reg, in uda1380_write() argument
106 uda1380_write_reg_cache(codec, reg, value); in uda1380_write()
111 if (!snd_soc_codec_is_active(codec) && (reg >= UDA1380_MVOL)) in uda1380_write()
114 if (codec->hw_write(codec->control_data, data, 3) == 3) { in uda1380_write()
116 i2c_master_send(codec->control_data, data, 1); in uda1380_write()
117 i2c_master_recv(codec->control_data, data, 2); in uda1380_write()
131 static void uda1380_sync_cache(struct snd_soc_codec *codec) in uda1380_sync_cache() argument
135 u16 *cache = codec->reg_cache; in uda1380_sync_cache()
142 if (codec->hw_write(codec->control_data, data, 3) != 3) in uda1380_sync_cache()
143 dev_err(codec->dev, "%s: write to reg 0x%x failed\n", in uda1380_sync_cache()
148 static int uda1380_reset(struct snd_soc_codec *codec) in uda1380_reset() argument
150 struct uda1380_platform_data *pdata = codec->dev->platform_data; in uda1380_reset()
163 if (codec->hw_write(codec->control_data, data, 3) != 3) { in uda1380_reset()
164 dev_err(codec->dev, "%s: failed\n", __func__); in uda1380_reset()
175 struct snd_soc_codec *uda1380_codec = uda1380->codec; in uda1380_flush_work()
418 struct snd_soc_codec *codec = codec_dai->codec; in uda1380_set_dai_fmt_both() local
422 iface = uda1380_read_reg_cache(codec, UDA1380_IFACE); in uda1380_set_dai_fmt_both()
440 uda1380_write_reg_cache(codec, UDA1380_IFACE, iface); in uda1380_set_dai_fmt_both()
448 struct snd_soc_codec *codec = codec_dai->codec; in uda1380_set_dai_fmt_playback() local
452 iface = uda1380_read_reg_cache(codec, UDA1380_IFACE); in uda1380_set_dai_fmt_playback()
470 uda1380_write(codec, UDA1380_IFACE, iface); in uda1380_set_dai_fmt_playback()
478 struct snd_soc_codec *codec = codec_dai->codec; in uda1380_set_dai_fmt_capture() local
482 iface = uda1380_read_reg_cache(codec, UDA1380_IFACE); in uda1380_set_dai_fmt_capture()
499 uda1380_write(codec, UDA1380_IFACE, iface); in uda1380_set_dai_fmt_capture()
507 struct snd_soc_codec *codec = dai->codec; in uda1380_trigger() local
508 struct uda1380_priv *uda1380 = snd_soc_codec_get_drvdata(codec); in uda1380_trigger()
509 int mixer = uda1380_read_reg_cache(codec, UDA1380_MIXER); in uda1380_trigger()
514 uda1380_write_reg_cache(codec, UDA1380_MIXER, in uda1380_trigger()
520 uda1380_write_reg_cache(codec, UDA1380_MIXER, in uda1380_trigger()
532 struct snd_soc_codec *codec = dai->codec; in uda1380_pcm_hw_params() local
533 u16 clk = uda1380_read_reg_cache(codec, UDA1380_CLK); in uda1380_pcm_hw_params()
538 u16 pm = uda1380_read_reg_cache(codec, UDA1380_PM); in uda1380_pcm_hw_params()
554 uda1380_write(codec, UDA1380_PM, R02_PON_PLL | pm); in uda1380_pcm_hw_params()
562 uda1380_write(codec, UDA1380_CLK, clk); in uda1380_pcm_hw_params()
569 struct snd_soc_codec *codec = dai->codec; in uda1380_pcm_shutdown() local
570 u16 clk = uda1380_read_reg_cache(codec, UDA1380_CLK); in uda1380_pcm_shutdown()
574 u16 pm = uda1380_read_reg_cache(codec, UDA1380_PM); in uda1380_pcm_shutdown()
575 uda1380_write(codec, UDA1380_PM, ~R02_PON_PLL & pm); in uda1380_pcm_shutdown()
583 uda1380_write(codec, UDA1380_CLK, clk); in uda1380_pcm_shutdown()
586 static int uda1380_set_bias_level(struct snd_soc_codec *codec, in uda1380_set_bias_level() argument
589 int pm = uda1380_read_reg_cache(codec, UDA1380_PM); in uda1380_set_bias_level()
591 struct uda1380_platform_data *pdata = codec->dev->platform_data; in uda1380_set_bias_level()
593 if (codec->dapm.bias_level == level) in uda1380_set_bias_level()
600 uda1380_write(codec, UDA1380_PM, R02_PON_BIAS | pm); in uda1380_set_bias_level()
603 if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) { in uda1380_set_bias_level()
607 uda1380_reset(codec); in uda1380_set_bias_level()
610 uda1380_sync_cache(codec); in uda1380_set_bias_level()
612 uda1380_write(codec, UDA1380_PM, 0x0); in uda1380_set_bias_level()
626 codec->dapm.bias_level = level; in uda1380_set_bias_level()
696 static int uda1380_probe(struct snd_soc_codec *codec) in uda1380_probe() argument
698 struct uda1380_platform_data *pdata =codec->dev->platform_data; in uda1380_probe()
699 struct uda1380_priv *uda1380 = snd_soc_codec_get_drvdata(codec); in uda1380_probe()
702 uda1380->codec = codec; in uda1380_probe()
704 codec->hw_write = (hw_write_t)i2c_master_send; in uda1380_probe()
705 codec->control_data = uda1380->control_data; in uda1380_probe()
723 ret = uda1380_reset(codec); in uda1380_probe()
733 uda1380_write_reg_cache(codec, UDA1380_CLK, 0); in uda1380_probe()
736 uda1380_write_reg_cache(codec, UDA1380_CLK, in uda1380_probe()
751 static int uda1380_remove(struct snd_soc_codec *codec) in uda1380_remove() argument
753 struct uda1380_platform_data *pdata =codec->dev->platform_data; in uda1380_remove()