Lines Matching defs:ad1843
17 #include <sound/ad1843.h>
172 static int ad1843_read_bits(struct snd_ad1843 *ad1843,
177 w = ad1843->read(ad1843->chip, field->reg);
185 static int ad1843_write_bits(struct snd_ad1843 *ad1843,
191 w = ad1843->read(ad1843->chip, field->reg);
196 ad1843->write(ad1843->chip, field->reg, w);
204 * ad1843 requires 256 bit times at 12.288 MHz, or nearly 20
209 * ad1843_read_multi(ad1843, nfields,
214 static void ad1843_read_multi(struct snd_ad1843 *ad1843, int argcount, ...)
226 w = ad1843->read(ad1843->chip, reg);
241 * ad1843_write_multi(ad1843, nfields,
246 static void ad1843_write_multi(struct snd_ad1843 *ad1843, int argcount, ...)
273 w = ad1843->read(ad1843->chip, reg);
277 ad1843->write(ad1843->chip, reg, w);
280 int ad1843_get_gain_max(struct snd_ad1843 *ad1843, int id)
296 int ad1843_get_gain(struct snd_ad1843 *ad1843, int id)
302 ad1843_read_multi(ad1843, 2, gp->lfield, &lg, gp->rfield, &rg);
308 ad1843_read_multi(ad1843, 2, gp->lmute, &lm, gp->rmute, &rm);
323 int ad1843_set_gain(struct snd_ad1843 *ad1843, int id, int newval)
338 ad1843_write_multi(ad1843, 2, gp->lmute, lm, gp->rmute, rm);
339 ad1843_write_multi(ad1843, 2, gp->lfield, lg, gp->rfield, rg);
340 return ad1843_get_gain(ad1843, id);
345 int ad1843_get_recsrc(struct snd_ad1843 *ad1843)
347 int val = ad1843_read_bits(ad1843, &ad1843_LSS);
351 ad1843_write_multi(ad1843, 2,
363 int ad1843_set_recsrc(struct snd_ad1843 *ad1843, int newsrc)
368 ad1843_write_multi(ad1843, 2, &ad1843_LSS, newsrc, &ad1843_RSS, newsrc);
372 /* Setup ad1843 for D/A conversion. */
374 void ad1843_setup_dac(struct snd_ad1843 *ad1843,
414 ad1843_write_bits(ad1843, &ad1843_C2C, framerate);
415 ad1843_write_multi(ad1843, 2,
419 ad1843_write_bits(ad1843, &ad1843_C1C, framerate);
420 ad1843_write_multi(ad1843, 2,
426 void ad1843_shutdown_dac(struct snd_ad1843 *ad1843, unsigned int id)
429 ad1843_write_bits(ad1843, &ad1843_DA2F, 1);
431 ad1843_write_bits(ad1843, &ad1843_DA1F, 1);
434 void ad1843_setup_adc(struct snd_ad1843 *ad1843,
450 ad1843_write_bits(ad1843, &ad1843_C3C, framerate);
451 ad1843_write_multi(ad1843, 2,
455 void ad1843_shutdown_adc(struct snd_ad1843 *ad1843)
461 * Fully initialize the ad1843. As described in the AD1843 data
468 int ad1843_init(struct snd_ad1843 *ad1843)
472 if (ad1843_read_bits(ad1843, &ad1843_INIT) != 0) {
473 printk(KERN_ERR "ad1843: AD1843 won't initialize\n");
477 ad1843_write_bits(ad1843, &ad1843_SCF, 1);
480 ad1843_write_bits(ad1843, &ad1843_PDNI, 0);
483 while (ad1843_read_bits(ad1843, &ad1843_PDNO)) {
486 "ad1843: AD1843 won't power up\n");
493 ad1843_write_multi(ad1843, 3,
501 ad1843_write_multi(ad1843, 4,
508 ad1843_write_bits(ad1843, &ad1843_ADTLK, 1);
509 ad1843_write_multi(ad1843, 7,
521 ad1843_set_gain(ad1843, AD1843_GAIN_RECLEV, 0);
522 ad1843_set_gain(ad1843, AD1843_GAIN_LINE, 0);
523 ad1843_set_gain(ad1843, AD1843_GAIN_LINE_2, 0);
524 ad1843_set_gain(ad1843, AD1843_GAIN_MIC, 0);
525 ad1843_set_gain(ad1843, AD1843_GAIN_PCM_0, 0);
526 ad1843_set_gain(ad1843, AD1843_GAIN_PCM_1, 0);
530 ad1843_write_multi(ad1843, 2, &ad1843_LDA1GM, 0, &ad1843_RDA1GM, 0);
532 ad1843_write_multi(ad1843, 2, &ad1843_LDA2GM, 0, &ad1843_RDA2GM, 0);
537 ad1843_set_recsrc(ad1843, 2);
538 ad1843_write_multi(ad1843, 2, &ad1843_LMGE, 1, &ad1843_RMGE, 1);
541 ad1843_write_multi(ad1843, 3,