Lines Matching refs:ice
41 static void revo_i2s_mclk_changed(struct snd_ice1712 *ice) in revo_i2s_mclk_changed() argument
44 outb(inb(ICEMT1724(ice, AC97_CMD)) | 0x80, ICEMT1724(ice, AC97_CMD)); in revo_i2s_mclk_changed()
47 outb(inb(ICEMT1724(ice, AC97_CMD)) & ~0x80, ICEMT1724(ice, AC97_CMD)); in revo_i2s_mclk_changed()
97 struct snd_ice1712 *ice = bus->private_data; in revo_i2c_start() local
98 snd_ice1712_save_gpio_status(ice); in revo_i2c_start()
103 struct snd_ice1712 *ice = bus->private_data; in revo_i2c_stop() local
104 snd_ice1712_restore_gpio_status(ice); in revo_i2c_stop()
109 struct snd_ice1712 *ice = bus->private_data; in revo_i2c_direction() local
118 ice->gpio.direction &= ~mask; in revo_i2c_direction()
119 ice->gpio.direction |= val; in revo_i2c_direction()
120 snd_ice1712_gpio_set_dir(ice, ice->gpio.direction); in revo_i2c_direction()
121 snd_ice1712_gpio_set_mask(ice, ~mask); in revo_i2c_direction()
126 struct snd_ice1712 *ice = bus->private_data; in revo_i2c_setlines() local
133 snd_ice1712_gpio_write_bits(ice, in revo_i2c_setlines()
141 struct snd_ice1712 *ice = bus->private_data; in revo_i2c_getdata() local
146 bit = snd_ice1712_gpio_read_bits(ice, VT1724_REVO_I2C_DATA) ? 1 : 0; in revo_i2c_getdata()
158 static int revo51_i2c_init(struct snd_ice1712 *ice, in revo51_i2c_init() argument
167 ice->spec = spec; in revo51_i2c_init()
170 err = snd_i2c_bus_create(ice->card, "ICE1724 GPIO6", NULL, &ice->i2c); in revo51_i2c_init()
174 ice->i2c->private_data = ice; in revo51_i2c_init()
175 ice->i2c->hw_ops.bit = &revo51_bit_ops; in revo51_i2c_init()
178 err = snd_i2c_device_create(ice->i2c, "PT2258", 0x40, &spec->dev); in revo51_i2c_init()
182 pt->card = ice->card; in revo51_i2c_init()
183 pt->i2c_bus = ice->i2c; in revo51_i2c_init()
325 struct snd_ice1712 *ice = ak->private_data[0]; in ap192_set_rate_val() local
331 snd_ice1712_gpio_write_bits(ice, 1 << 8, rate > 96000 ? 1 << 8 : 0); in ap192_set_rate_val()
339 snd_ice1712_gpio_write_bits(ice, 3 << 9, dfs << 9); in ap192_set_rate_val()
341 snd_ice1712_gpio_write_bits(ice, 1 << 11, 0); in ap192_set_rate_val()
342 snd_ice1712_gpio_write_bits(ice, 1 << 11, 1 << 11); in ap192_set_rate_val()
378 static void write_data(struct snd_ice1712 *ice, unsigned int gpio, in write_data() argument
384 snd_ice1712_gpio_write(ice, gpio); in write_data()
391 snd_ice1712_gpio_write(ice, gpio); in write_data()
395 snd_ice1712_gpio_write(ice, gpio); in write_data()
400 static unsigned char read_data(struct snd_ice1712 *ice, unsigned int gpio, in read_data() argument
408 snd_ice1712_gpio_write(ice, gpio); in read_data()
411 if (snd_ice1712_gpio_read(ice) & VT1724_REVO_CDIN) in read_data()
416 snd_ice1712_gpio_write(ice, gpio); in read_data()
422 static unsigned int ap192_4wire_start(struct snd_ice1712 *ice) in ap192_4wire_start() argument
426 snd_ice1712_save_gpio_status(ice); in ap192_4wire_start()
427 tmp = snd_ice1712_gpio_read(ice); in ap192_4wire_start()
431 snd_ice1712_gpio_write(ice, tmp); in ap192_4wire_start()
436 static void ap192_4wire_finish(struct snd_ice1712 *ice, unsigned int tmp) in ap192_4wire_finish() argument
440 snd_ice1712_gpio_write(ice, tmp); in ap192_4wire_finish()
442 snd_ice1712_restore_gpio_status(ice); in ap192_4wire_finish()
448 struct snd_ice1712 *ice = private_data; in ap192_ak4114_write() local
451 tmp = ap192_4wire_start(ice); in ap192_ak4114_write()
454 write_data(ice, tmp, addrdata, 15); in ap192_ak4114_write()
455 ap192_4wire_finish(ice, tmp); in ap192_ak4114_write()
460 struct snd_ice1712 *ice = private_data; in ap192_ak4114_read() local
464 tmp = ap192_4wire_start(ice); in ap192_ak4114_read()
465 write_data(ice, tmp, (AK4114_ADDR << 6) | (addr & 0x1f), 7); in ap192_ak4114_read()
466 data = read_data(ice, tmp, 7); in ap192_ak4114_read()
467 ap192_4wire_finish(ice, tmp); in ap192_ak4114_read()
471 static int ap192_ak4114_init(struct snd_ice1712 *ice) in ap192_ak4114_init() argument
490 ice->spec = spec; in ap192_ak4114_init()
492 err = snd_ak4114_create(ice->card, in ap192_ak4114_init()
496 ice, &spec->ak4114); in ap192_ak4114_init()
506 static int revo_init(struct snd_ice1712 *ice) in revo_init() argument
512 switch (ice->eeprom.subvendor) { in revo_init()
514 ice->num_total_dacs = 8; in revo_init()
515 ice->num_total_adcs = 2; in revo_init()
516 ice->gpio.i2s_mclk_changed = revo_i2s_mclk_changed; in revo_init()
519 ice->num_total_dacs = 8; in revo_init()
520 ice->num_total_adcs = 2; in revo_init()
523 ice->num_total_dacs = 2; in revo_init()
524 ice->num_total_adcs = 2; in revo_init()
532 ak = ice->akm = kcalloc(2, sizeof(struct snd_akm4xxx), GFP_KERNEL); in revo_init()
535 switch (ice->eeprom.subvendor) { in revo_init()
537 ice->akm_codecs = 2; in revo_init()
539 &akm_revo_front_priv, ice); in revo_init()
543 &akm_revo_surround_priv, ice); in revo_init()
547 snd_ice1712_gpio_write_bits(ice, VT1724_REVO_MUTE, in revo_init()
551 ice->akm_codecs = 2; in revo_init()
553 &akm_revo51_priv, ice); in revo_init()
557 &akm_revo51_adc_priv, ice); in revo_init()
560 err = revo51_i2c_init(ice, &ptc_revo51_volume); in revo_init()
564 snd_ice1712_gpio_write_bits(ice, VT1724_REVO_MUTE, in revo_init()
568 ice->akm_codecs = 1; in revo_init()
570 ice); in revo_init()
573 err = ap192_ak4114_init(ice); in revo_init()
578 snd_ice1712_gpio_write_bits(ice, VT1724_REVO_MUTE, in revo_init()
587 static int revo_add_controls(struct snd_ice1712 *ice) in revo_add_controls() argument
589 struct revo51_spec *spec = ice->spec; in revo_add_controls()
592 switch (ice->eeprom.subvendor) { in revo_add_controls()
594 err = snd_ice1712_akm4xxx_build_controls(ice); in revo_add_controls()
599 err = snd_ice1712_akm4xxx_build_controls(ice); in revo_add_controls()
602 spec = ice->spec; in revo_add_controls()
608 err = snd_ice1712_akm4xxx_build_controls(ice); in revo_add_controls()
613 ice->pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream); in revo_add_controls()