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()
416 struct snd_soc_codec *codec = codec_dai->codec; in uda1380_set_dai_fmt_both() local
420 iface = uda1380_read_reg_cache(codec, UDA1380_IFACE); in uda1380_set_dai_fmt_both()
438 uda1380_write_reg_cache(codec, UDA1380_IFACE, iface); in uda1380_set_dai_fmt_both()
446 struct snd_soc_codec *codec = codec_dai->codec; in uda1380_set_dai_fmt_playback() local
450 iface = uda1380_read_reg_cache(codec, UDA1380_IFACE); in uda1380_set_dai_fmt_playback()
468 uda1380_write(codec, UDA1380_IFACE, iface); in uda1380_set_dai_fmt_playback()
476 struct snd_soc_codec *codec = codec_dai->codec; in uda1380_set_dai_fmt_capture() local
480 iface = uda1380_read_reg_cache(codec, UDA1380_IFACE); in uda1380_set_dai_fmt_capture()
497 uda1380_write(codec, UDA1380_IFACE, iface); in uda1380_set_dai_fmt_capture()
505 struct snd_soc_codec *codec = dai->codec; in uda1380_trigger() local
506 struct uda1380_priv *uda1380 = snd_soc_codec_get_drvdata(codec); in uda1380_trigger()
507 int mixer = uda1380_read_reg_cache(codec, UDA1380_MIXER); in uda1380_trigger()
512 uda1380_write_reg_cache(codec, UDA1380_MIXER, in uda1380_trigger()
518 uda1380_write_reg_cache(codec, UDA1380_MIXER, in uda1380_trigger()
530 struct snd_soc_codec *codec = dai->codec; in uda1380_pcm_hw_params() local
531 u16 clk = uda1380_read_reg_cache(codec, UDA1380_CLK); in uda1380_pcm_hw_params()
536 u16 pm = uda1380_read_reg_cache(codec, UDA1380_PM); in uda1380_pcm_hw_params()
552 uda1380_write(codec, UDA1380_PM, R02_PON_PLL | pm); in uda1380_pcm_hw_params()
560 uda1380_write(codec, UDA1380_CLK, clk); in uda1380_pcm_hw_params()
567 struct snd_soc_codec *codec = dai->codec; in uda1380_pcm_shutdown() local
568 u16 clk = uda1380_read_reg_cache(codec, UDA1380_CLK); in uda1380_pcm_shutdown()
572 u16 pm = uda1380_read_reg_cache(codec, UDA1380_PM); in uda1380_pcm_shutdown()
573 uda1380_write(codec, UDA1380_PM, ~R02_PON_PLL & pm); in uda1380_pcm_shutdown()
581 uda1380_write(codec, UDA1380_CLK, clk); in uda1380_pcm_shutdown()
584 static int uda1380_set_bias_level(struct snd_soc_codec *codec, in uda1380_set_bias_level() argument
587 int pm = uda1380_read_reg_cache(codec, UDA1380_PM); in uda1380_set_bias_level()
589 struct uda1380_platform_data *pdata = codec->dev->platform_data; in uda1380_set_bias_level()
595 uda1380_write(codec, UDA1380_PM, R02_PON_BIAS | pm); in uda1380_set_bias_level()
598 if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF) { in uda1380_set_bias_level()
602 uda1380_reset(codec); in uda1380_set_bias_level()
605 uda1380_sync_cache(codec); in uda1380_set_bias_level()
607 uda1380_write(codec, UDA1380_PM, 0x0); in uda1380_set_bias_level()
690 static int uda1380_probe(struct snd_soc_codec *codec) in uda1380_probe() argument
692 struct uda1380_platform_data *pdata =codec->dev->platform_data; in uda1380_probe()
693 struct uda1380_priv *uda1380 = snd_soc_codec_get_drvdata(codec); in uda1380_probe()
696 uda1380->codec = codec; in uda1380_probe()
698 codec->hw_write = (hw_write_t)i2c_master_send; in uda1380_probe()
699 codec->control_data = uda1380->control_data; in uda1380_probe()
717 ret = uda1380_reset(codec); in uda1380_probe()
727 uda1380_write_reg_cache(codec, UDA1380_CLK, 0); in uda1380_probe()
730 uda1380_write_reg_cache(codec, UDA1380_CLK, in uda1380_probe()
745 static int uda1380_remove(struct snd_soc_codec *codec) in uda1380_remove() argument
747 struct uda1380_platform_data *pdata =codec->dev->platform_data; in uda1380_remove()