• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/sound/soc/codecs/

Lines Matching refs:codec

2  * DA7210 ALSA Soc codec driver
151 struct snd_soc_codec codec;
183 static inline u32 da7210_read_reg_cache(struct snd_soc_codec *codec, u32 reg)
185 u8 *cache = codec->reg_cache;
193 static int da7210_write(struct snd_soc_codec *codec, u32 reg, u32 value)
195 u8 *cache = codec->reg_cache;
198 BUG_ON(codec->volatile_register);
203 if (reg >= codec->reg_cache_size)
206 if (2 != codec->hw_write(codec->control_data, data, 2))
216 static inline u32 da7210_read(struct snd_soc_codec *codec, u32 reg)
219 return i2c_smbus_read_byte_data(codec->control_data, reg);
221 return da7210_read_reg_cache(codec, reg);
228 struct snd_soc_codec *codec = dai->codec;
232 snd_soc_update_bits(codec, DA7210_OUTMIX_L, 0x1F, 0x10);
233 snd_soc_update_bits(codec, DA7210_OUTMIX_R, 0x1F, 0x10);
237 snd_soc_update_bits(codec, DA7210_MIC_L, 0x7, 0x7);
238 snd_soc_update_bits(codec, DA7210_MIC_R, 0x7, 0x7);
241 snd_soc_update_bits(codec, DA7210_INMIX_L, 0x1F, 0x1);
242 snd_soc_update_bits(codec, DA7210_INMIX_R, 0x1F, 0x1);
257 struct snd_soc_codec *codec = socdev->card->codec;
263 da7210_write(codec, DA7210_DAI_SRC_SEL,
267 da7210_write(codec, DA7210_DAI_CFG3, DA7210_DAI_OE | DA7210_DAI_EN);
269 dai_cfg1 = 0xFC & da7210_read(codec, DA7210_DAI_CFG1);
282 da7210_write(codec, DA7210_DAI_CFG1, dai_cfg1);
353 snd_soc_update_bits(codec, DA7210_STARTUP1, DA7210_SC_MST_EN, 0);
355 snd_soc_update_bits(codec, hpf_reg, hpf_mask, hpf_value);
356 snd_soc_update_bits(codec, DA7210_PLL, DA7210_PLL_FS_MASK, fs);
357 snd_soc_update_bits(codec, DA7210_PLL_DIV3, DA7210_PLL_BYP, bypass);
360 snd_soc_update_bits(codec, DA7210_STARTUP1,
371 struct snd_soc_codec *codec = codec_dai->codec;
375 dai_cfg1 = 0x7f & da7210_read(codec, DA7210_DAI_CFG1);
376 dai_cfg3 = 0xfc & da7210_read(codec, DA7210_DAI_CFG3);
396 da7210_write(codec, DA7210_DAI_CFG1, dai_cfg1);
397 da7210_write(codec, DA7210_DAI_CFG3, dai_cfg3);
441 struct snd_soc_codec *codec = &da7210->codec;
445 dev_err(codec->dev, "Another da7210 is registered\n");
449 mutex_init(&codec->mutex);
450 INIT_LIST_HEAD(&codec->dapm_widgets);
451 INIT_LIST_HEAD(&codec->dapm_paths);
453 snd_soc_codec_set_drvdata(codec, da7210);
454 codec->name = "DA7210";
455 codec->owner = THIS_MODULE;
456 codec->read = da7210_read;
457 codec->write = da7210_write;
458 codec->dai = &da7210_dai;
459 codec->num_dai = 1;
460 codec->hw_write = (hw_write_t)i2c_master_send;
461 codec->reg_cache_size = ARRAY_SIZE(da7210_reg);
462 codec->reg_cache = kmemdup(da7210_reg,
465 if (!codec->reg_cache)
468 da7210_dai.dev = codec->dev;
469 da7210_codec = codec;
471 ret = snd_soc_register_codec(codec);
473 dev_err(codec->dev, "Failed to register CODEC: %d\n", ret);
479 dev_err(codec->dev, "Failed to register DAI: %d\n", ret);
487 da7210_write(codec, DA7210_STARTUP1, 0);
488 da7210_write(codec, DA7210_PLL_DIV3,
496 da7210_write(codec, DA7210_MIC_L, DA7210_MIC_L_EN | DA7210_MICBIAS_EN);
497 da7210_write(codec, DA7210_MIC_R, DA7210_MIC_R_EN);
500 da7210_write(codec, DA7210_INMIX_L, DA7210_IN_L_EN);
501 da7210_write(codec, DA7210_INMIX_R, DA7210_IN_R_EN);
504 da7210_write(codec, DA7210_ADC, DA7210_ADC_L_EN | DA7210_ADC_R_EN);
511 da7210_write(codec, DA7210_DAC_SEL,
516 da7210_write(codec, DA7210_OUTMIX_L, DA7210_OUT_L_EN);
517 da7210_write(codec, DA7210_OUTMIX_R, DA7210_OUT_R_EN);
520 da7210_write(codec, DA7210_HP_CFG,
525 da7210_write(codec, DA7210_PLL, DA7210_PLL_FS_48000);
536 da7210_write(codec, DA7210_PLL_DIV1, 0xE5); /* MCLK = 12.288MHz */
537 da7210_write(codec, DA7210_PLL_DIV2, 0x99);
538 da7210_write(codec, DA7210_PLL_DIV3, 0x0A |
540 snd_soc_update_bits(codec, DA7210_PLL, DA7210_PLL_EN, DA7210_PLL_EN);
543 da7210_write(codec, DA7210_A_HID_UNLOCK, 0x8B); /* unlock */
544 da7210_write(codec, DA7210_A_TEST_UNLOCK, 0xB4);
545 da7210_write(codec, DA7210_A_PLL1, 0x01);
546 da7210_write(codec, DA7210_A_CP_MODE, 0x7C);
547 da7210_write(codec, DA7210_A_HID_UNLOCK, 0x00); /* re-lock */
548 da7210_write(codec, DA7210_A_TEST_UNLOCK, 0x00);
551 da7210_write(codec, DA7210_STARTUP1, DA7210_SC_MST_EN);
556 snd_soc_unregister_codec(codec);
558 kfree(codec->reg_cache);
559 codec->reg_cache = NULL;
570 struct snd_soc_codec *codec;
577 codec = &da7210->codec;
578 codec->dev = &i2c->dev;
581 codec->control_data = i2c;
585 pr_err("Failed to initialise da7210 audio codec\n");
597 kfree(da7210->codec.reg_cache);
610 /* I2C codec control layer */
625 struct snd_soc_codec *codec;
633 socdev->card->codec = da7210_codec;
634 codec = da7210_codec;