Lines Matching +full:adc +full:- +full:alt +full:- +full:channel

1 // SPDX-License-Identifier: GPL-2.0-only
10 * ------------
14 * SPI 0 -> 1st PCM1796 (front)
15 * SPI 1 -> 2nd PCM1796 (surround)
16 * SPI 2 -> 3rd PCM1796 (center/LFE)
17 * SPI 4 -> 4th PCM1796 (back)
19 * GPIO 2 -> M0 of CS5381
20 * GPIO 3 -> M1 of CS5381
21 * GPIO 5 <- external power present (D2X only)
22 * GPIO 7 -> ALT
23 * GPIO 8 -> enable output to speakers
27 * LINE_OUT -> input of ADC
29 * AUX_IN <- aux
30 * VIDEO_IN <- CD
31 * FMIC_IN <- mic
33 * GPO 0 -> route line-in (0) or AC97 output (1) to CS5381 input
38 * ----------------------
42 * I²C <-> PCM1796 (addr 1001100) (front)
44 * GPI 0 <- external power present
46 * GPIO 0 -> enable HDMI (0) or speaker (1) output
47 * GPIO 2 -> M0 of CS5381
48 * GPIO 3 -> M1 of CS5381
49 * GPIO 4 <- daughterboard detection
50 * GPIO 5 <- daughterboard detection
51 * GPIO 6 -> ?
52 * GPIO 7 -> ?
53 * GPIO 8 -> route input jack to line-in (0) or mic-in (1)
55 * UART <-> HDMI controller
59 * LINE_OUT -> input of ADC
61 * AUX_IN <- aux
62 * CD_IN <- CD
63 * MIC_IN <- mic
65 * GPO 0 -> route line-in (0) or AC97 output (1) to CS5381 input
68 * ----------------
70 * GPIO 4 <- 1
73 * ----------------
75 * GPIO 4 <- 0
76 * GPIO 5 <- 0
78 * I²C <-> PCM1796 (addr 1001101) (surround)
79 * <-> PCM1796 (addr 1001110) (center/LFE)
80 * <-> PCM1796 (addr 1001111) (back)
83 * ---------------------
85 * GPIO 4 <- 0
86 * GPIO 5 <- 1
88 * I²C <-> CS4362A (addr 0011000) (surround, center/LFE, back)
93 * ----------------------------------
97 * I²C <-> PCM1792A (addr 1001100)
98 * <-> CS2000 (addr 1001110) (ST only)
100 * ADC1 MCLK -> REF_CLK of CS2000 (ST only)
102 * GPI 0 <- external power present (STX only)
104 * GPIO 0 -> enable output to speakers
105 * GPIO 1 -> route HP to front panel (0) or rear jack (1)
106 * GPIO 2 -> M0 of CS5381
107 * GPIO 3 -> M1 of CS5381
108 * GPIO 4 <- daughterboard detection
109 * GPIO 5 <- daughterboard detection
110 * GPIO 6 -> ?
111 * GPIO 7 -> route output to speaker jacks (0) or HP (1)
112 * GPIO 8 -> route input jack to line-in (0) or mic-in (1)
116 * SCK <- CLK_OUT of CS2000 (ST only)
120 * LINE_OUT -> input of ADC
122 * AUX_IN <- aux
123 * MIC_IN <- mic
125 * GPO 0 -> route line-in (0) or AC97 output (1) to CS5381 input
128 * ----------------
130 * GPIO 4 <- 0
131 * GPIO 5 <- 0
136 * -----------
140 * I²C <-> PCM1796 (addr 1001100) (front)
141 * <-> CS4362A (addr 0011000) (surround, center/LFE, back)
142 * <-> CS2000 (addr 1001110)
144 * ADC1 MCLK -> REF_CLK of CS2000
146 * GPI 0 <- external power present
148 * GPIO 0 -> enable output
149 * GPIO 1 -> route HP to front panel (0) or rear jack (1)
150 * GPIO 2 -> M0 of CS5381
151 * GPIO 3 -> M1 of CS5381
152 * GPIO 4 -> enable output
153 * GPIO 5 -> enable output
154 * GPIO 6 -> ?
155 * GPIO 7 -> route output to HP (0) or speaker (1)
156 * GPIO 8 -> route input jack to mic-in (0) or line-in (1)
160 * LINE_OUT -> input of ADC
162 * AUX_IN <- aux
163 * VIDEO_IN <- ?
164 * FMIC_IN <- mic
166 * GPO 0 -> route line-in (0) or AC97 output (1) to CS5381 input
167 * GPO 1 -> route mic-in from input jack (0) or front panel header (1)
235 /* maps ALSA channel pair number to SPI output */ in pcm1796_write_spi()
256 struct xonar_pcm179x *data = chip->model_data; in pcm1796_write()
258 if ((chip->model.function_flags & OXYGEN_FUNCTION_2WIRE_SPI_MASK) == in pcm1796_write()
263 if ((unsigned int)(reg - PCM1796_REG_BASE) in pcm1796_write()
264 < ARRAY_SIZE(data->pcm1796_regs[codec])) in pcm1796_write()
265 data->pcm1796_regs[codec][reg - PCM1796_REG_BASE] = value; in pcm1796_write()
271 struct xonar_pcm179x *data = chip->model_data; in pcm1796_write_cached()
273 if (value != data->pcm1796_regs[codec][reg - PCM1796_REG_BASE]) in pcm1796_write_cached()
279 struct xonar_pcm179x *data = chip->model_data; in cs2000_write()
282 data->cs2000_regs[reg] = value; in cs2000_write()
287 struct xonar_pcm179x *data = chip->model_data; in cs2000_write_cached()
289 if (value != data->cs2000_regs[reg]) in cs2000_write_cached()
295 struct xonar_pcm179x *data = chip->model_data; in pcm1796_registers_init()
300 gain_offset = data->hp_active ? data->hp_gain_offset : 0; in pcm1796_registers_init()
301 for (i = 0; i < data->dacs; ++i) { in pcm1796_registers_init()
304 data->pcm1796_regs[0][18 - PCM1796_REG_BASE]); in pcm1796_registers_init()
305 pcm1796_write(chip, i, 16, chip->dac_volume[i * 2] in pcm1796_registers_init()
307 pcm1796_write(chip, i, 17, chip->dac_volume[i * 2 + 1] in pcm1796_registers_init()
310 data->pcm1796_regs[0][19 - PCM1796_REG_BASE]); in pcm1796_registers_init()
312 data->pcm1796_regs[0][20 - PCM1796_REG_BASE]); in pcm1796_registers_init()
320 struct xonar_pcm179x *data = chip->model_data; in pcm1796_init()
322 data->pcm1796_regs[0][18 - PCM1796_REG_BASE] = in pcm1796_init()
324 if (!data->broken_i2c) in pcm1796_init()
325 data->pcm1796_regs[0][18 - PCM1796_REG_BASE] |= PCM1796_MUTE; in pcm1796_init()
326 data->pcm1796_regs[0][19 - PCM1796_REG_BASE] = in pcm1796_init()
328 data->pcm1796_regs[0][20 - PCM1796_REG_BASE] = in pcm1796_init()
329 data->h6 ? PCM1796_OS_64 : PCM1796_OS_128; in pcm1796_init()
331 data->current_rate = 48000; in pcm1796_init()
336 struct xonar_pcm179x *data = chip->model_data; in xonar_d2_init()
338 data->generic.anti_pop_delay = 300; in xonar_d2_init()
339 data->generic.output_enable_bit = GPIO_D2_OUTPUT_ENABLE; in xonar_d2_init()
340 data->dacs = 4; in xonar_d2_init()
352 snd_component_add(chip->card, "PCM1796"); in xonar_d2_init()
353 snd_component_add(chip->card, "CS5381"); in xonar_d2_init()
358 struct xonar_pcm179x *data = chip->model_data; in xonar_d2x_init()
360 data->generic.ext_power_reg = OXYGEN_GPIO_DATA; in xonar_d2x_init()
361 data->generic.ext_power_int_reg = OXYGEN_GPIO_INTERRUPT_MASK; in xonar_d2x_init()
362 data->generic.ext_power_bit = GPIO_D2X_EXT_POWER; in xonar_d2x_init()
370 struct xonar_hdav *data = chip->model_data; in xonar_hdav_init()
377 data->pcm179x.generic.anti_pop_delay = 100; in xonar_hdav_init()
378 data->pcm179x.generic.output_enable_bit = GPIO_HDAV_OUTPUT_ENABLE; in xonar_hdav_init()
379 data->pcm179x.generic.ext_power_reg = OXYGEN_GPI_DATA; in xonar_hdav_init()
380 data->pcm179x.generic.ext_power_int_reg = OXYGEN_GPI_INTERRUPT_MASK; in xonar_hdav_init()
381 data->pcm179x.generic.ext_power_bit = GPI_EXT_POWER; in xonar_hdav_init()
382 data->pcm179x.dacs = chip->model.dac_channels_mixer / 2; in xonar_hdav_init()
383 data->pcm179x.h6 = chip->model.dac_channels_mixer > 2; in xonar_hdav_init()
393 xonar_hdmi_init(chip, &data->hdmi); in xonar_hdav_init()
396 snd_component_add(chip->card, "PCM1796"); in xonar_hdav_init()
397 snd_component_add(chip->card, "CS5381"); in xonar_hdav_init()
410 struct xonar_pcm179x *data = chip->model_data; in xonar_st_init_common()
412 data->generic.output_enable_bit = GPIO_ST_OUTPUT_ENABLE; in xonar_st_init_common()
413 data->dacs = chip->model.dac_channels_mixer / 2; in xonar_st_init_common()
414 data->h6 = chip->model.dac_channels_mixer > 2; in xonar_st_init_common()
415 data->hp_gain_offset = 2*-18; in xonar_st_init_common()
428 snd_component_add(chip->card, "PCM1792A"); in xonar_st_init_common()
429 snd_component_add(chip->card, "CS5381"); in xonar_st_init_common()
434 struct xonar_pcm179x *data = chip->model_data; in cs2000_registers_init()
451 data->cs2000_regs[CS2000_FUN_CFG_1]); in cs2000_registers_init()
459 struct xonar_pcm179x *data = chip->model_data; in xonar_st_init()
461 data->generic.anti_pop_delay = 100; in xonar_st_init()
462 data->h6 = chip->model.dac_channels_mixer > 2; in xonar_st_init()
463 data->has_cs2000 = true; in xonar_st_init()
464 data->cs2000_regs[CS2000_FUN_CFG_1] = CS2000_REF_CLK_DIV_1; in xonar_st_init()
465 data->broken_i2c = true; in xonar_st_init()
470 OXYGEN_I2S_MCLK(data->h6 ? MCLK_256 : MCLK_512) | in xonar_st_init()
479 snd_component_add(chip->card, "CS2000"); in xonar_st_init()
484 struct xonar_pcm179x *data = chip->model_data; in xonar_stx_init()
487 data->generic.anti_pop_delay = 800; in xonar_stx_init()
488 data->generic.ext_power_reg = OXYGEN_GPI_DATA; in xonar_stx_init()
489 data->generic.ext_power_int_reg = OXYGEN_GPI_INTERRUPT_MASK; in xonar_stx_init()
490 data->generic.ext_power_bit = GPI_EXT_POWER; in xonar_stx_init()
497 struct xonar_pcm179x *data = chip->model_data; in xonar_xense_init()
499 data->generic.ext_power_reg = OXYGEN_GPI_DATA; in xonar_xense_init()
500 data->generic.ext_power_int_reg = OXYGEN_GPI_INTERRUPT_MASK; in xonar_xense_init()
501 data->generic.ext_power_bit = GPI_EXT_POWER; in xonar_xense_init()
504 data->generic.anti_pop_delay = 100; in xonar_xense_init()
505 data->has_cs2000 = true; in xonar_xense_init()
506 data->cs2000_regs[CS2000_FUN_CFG_1] = CS2000_REF_CLK_DIV_1; in xonar_xense_init()
519 data->generic.output_enable_bit = GPIO_XENSE_OUTPUT_ENABLE; in xonar_xense_init()
520 data->dacs = 1; in xonar_xense_init()
521 data->hp_gain_offset = 2*-18; in xonar_xense_init()
535 snd_component_add(chip->card, "PCM1796"); in xonar_xense_init()
536 snd_component_add(chip->card, "CS5381"); in xonar_xense_init()
537 snd_component_add(chip->card, "CS2000"); in xonar_xense_init()
580 struct xonar_hdav *data = chip->model_data; in xonar_hdav_resume()
583 xonar_hdmi_resume(chip, &data->hdmi); in xonar_hdav_resume()
601 struct xonar_pcm179x *data = chip->model_data; in update_pcm1796_oversampling()
605 if (data->current_rate <= 48000 && !data->h6) in update_pcm1796_oversampling()
609 for (i = 0; i < data->dacs; ++i) in update_pcm1796_oversampling()
615 struct xonar_pcm179x *data = chip->model_data; in update_pcm1796_deemph()
619 reg = data->pcm1796_regs[0][18 - PCM1796_REG_BASE] & ~PCM1796_DMF_MASK; in update_pcm1796_deemph()
620 if (data->current_rate == 48000) in update_pcm1796_deemph()
622 else if (data->current_rate == 44100) in update_pcm1796_deemph()
624 else if (data->current_rate == 32000) in update_pcm1796_deemph()
626 for (i = 0; i < data->dacs; ++i) in update_pcm1796_deemph()
633 struct xonar_pcm179x *data = chip->model_data; in set_pcm1796_params()
636 data->current_rate = params_rate(params); in set_pcm1796_params()
643 struct xonar_pcm179x *data = chip->model_data; in update_pcm1796_volume()
647 gain_offset = data->hp_active ? data->hp_gain_offset : 0; in update_pcm1796_volume()
648 for (i = 0; i < data->dacs; ++i) { in update_pcm1796_volume()
649 pcm1796_write_cached(chip, i, 16, chip->dac_volume[i * 2] in update_pcm1796_volume()
651 pcm1796_write_cached(chip, i, 17, chip->dac_volume[i * 2 + 1] in update_pcm1796_volume()
659 struct xonar_pcm179x *data = chip->model_data; in update_pcm1796_mute()
663 value = data->pcm1796_regs[0][18 - PCM1796_REG_BASE]; in update_pcm1796_mute()
664 if (chip->dac_mute) in update_pcm1796_mute()
668 for (i = 0; i < data->dacs; ++i) in update_pcm1796_mute()
674 struct xonar_pcm179x *data = chip->model_data; in update_cs2000_rate()
695 if (rate <= 96000 && (rate > 48000 || data->h6)) { in update_cs2000_rate()
719 struct xonar_hdav *data = chip->model_data; in set_hdav_params()
722 xonar_set_hdmi_params(chip, &data->hdmi, params); in set_hdav_params()
738 "Sharp Roll-off", "Slow Roll-off" in rolloff_info()
747 struct oxygen *chip = ctl->private_data; in rolloff_get()
748 struct xonar_pcm179x *data = chip->model_data; in rolloff_get()
750 value->value.enumerated.item[0] = in rolloff_get()
751 (data->pcm1796_regs[0][19 - PCM1796_REG_BASE] & in rolloff_get()
759 struct oxygen *chip = ctl->private_data; in rolloff_put()
760 struct xonar_pcm179x *data = chip->model_data; in rolloff_put()
765 mutex_lock(&chip->mutex); in rolloff_put()
766 reg = data->pcm1796_regs[0][19 - PCM1796_REG_BASE]; in rolloff_put()
768 if (!value->value.enumerated.item[0]) in rolloff_put()
772 changed = reg != data->pcm1796_regs[0][19 - PCM1796_REG_BASE]; in rolloff_put()
774 for (i = 0; i < data->dacs; ++i) in rolloff_put()
777 mutex_unlock(&chip->mutex); in rolloff_put()
792 struct oxygen *chip = ctl->private_data; in deemph_get()
793 struct xonar_pcm179x *data = chip->model_data; in deemph_get()
795 value->value.integer.value[0] = in deemph_get()
796 !!(data->pcm1796_regs[0][18 - PCM1796_REG_BASE] & PCM1796_DME); in deemph_get()
803 struct oxygen *chip = ctl->private_data; in deemph_put()
804 struct xonar_pcm179x *data = chip->model_data; in deemph_put()
809 mutex_lock(&chip->mutex); in deemph_put()
810 reg = data->pcm1796_regs[0][18 - PCM1796_REG_BASE]; in deemph_put()
811 if (!value->value.integer.value[0]) in deemph_put()
815 changed = reg != data->pcm1796_regs[0][18 - PCM1796_REG_BASE]; in deemph_put()
817 for (i = 0; i < data->dacs; ++i) in deemph_put()
820 mutex_unlock(&chip->mutex); in deemph_put()
826 .name = "De-emphasis Playback Switch",
854 struct oxygen *chip = ctl->private_data; in st_output_switch_get()
859 value->value.enumerated.item[0] = 0; in st_output_switch_get()
861 value->value.enumerated.item[0] = 1; in st_output_switch_get()
863 value->value.enumerated.item[0] = 2; in st_output_switch_get()
871 struct oxygen *chip = ctl->private_data; in st_output_switch_put()
872 struct xonar_pcm179x *data = chip->model_data; in st_output_switch_put()
875 mutex_lock(&chip->mutex); in st_output_switch_put()
878 switch (value->value.enumerated.item[0]) { in st_output_switch_put()
890 data->hp_active = gpio & GPIO_ST_HP; in st_output_switch_put()
892 mutex_unlock(&chip->mutex); in st_output_switch_put()
900 "< 32 ohms", "32-64 ohms", "64-300 ohms", "300-600 ohms" in st_hp_volume_offset_info()
909 struct oxygen *chip = ctl->private_data; in st_hp_volume_offset_get()
910 struct xonar_pcm179x *data = chip->model_data; in st_hp_volume_offset_get()
912 mutex_lock(&chip->mutex); in st_hp_volume_offset_get()
913 if (data->hp_gain_offset < 2*-12) in st_hp_volume_offset_get()
914 value->value.enumerated.item[0] = 0; in st_hp_volume_offset_get()
915 else if (data->hp_gain_offset < 2*-6) in st_hp_volume_offset_get()
916 value->value.enumerated.item[0] = 1; in st_hp_volume_offset_get()
917 else if (data->hp_gain_offset < 0) in st_hp_volume_offset_get()
918 value->value.enumerated.item[0] = 2; in st_hp_volume_offset_get()
920 value->value.enumerated.item[0] = 3; in st_hp_volume_offset_get()
921 mutex_unlock(&chip->mutex); in st_hp_volume_offset_get()
929 static const s8 offsets[] = { 2*-18, 2*-12, 2*-6, 0 }; in st_hp_volume_offset_put()
930 struct oxygen *chip = ctl->private_data; in st_hp_volume_offset_put()
931 struct xonar_pcm179x *data = chip->model_data; in st_hp_volume_offset_put()
935 if (value->value.enumerated.item[0] > 3) in st_hp_volume_offset_put()
936 return -EINVAL; in st_hp_volume_offset_put()
937 offset = offsets[value->value.enumerated.item[0]]; in st_hp_volume_offset_put()
938 mutex_lock(&chip->mutex); in st_hp_volume_offset_put()
939 changed = offset != data->hp_gain_offset; in st_hp_volume_offset_put()
941 data->hp_gain_offset = offset; in st_hp_volume_offset_put()
944 mutex_unlock(&chip->mutex); in st_hp_volume_offset_put()
968 struct oxygen *chip = ctl->private_data; in xense_output_switch_get()
973 value->value.enumerated.item[0] = 0; in xense_output_switch_get()
975 value->value.enumerated.item[0] = 1; in xense_output_switch_get()
977 value->value.enumerated.item[0] = 2; in xense_output_switch_get()
984 struct oxygen *chip = ctl->private_data; in xense_output_switch_put()
985 struct xonar_pcm179x *data = chip->model_data; in xense_output_switch_put()
988 mutex_lock(&chip->mutex); in xense_output_switch_put()
991 switch (value->value.enumerated.item[0]) { in xense_output_switch_put()
1003 data->hp_active = !(gpio & GPIO_XENSE_SPEAKERS); in xense_output_switch_put()
1005 mutex_unlock(&chip->mutex); in xense_output_switch_put()
1030 spin_lock_irq(&chip->reg_lock); in xonar_line_mic_ac97_switch()
1034 spin_unlock_irq(&chip->reg_lock); in xonar_line_mic_ac97_switch()
1038 static const DECLARE_TLV_DB_SCALE(pcm1796_db_scale, -6000, 50, 0);
1042 if (!strncmp(template->name, "CD Capture ", 11)) in xonar_d2_control_filter()
1044 template->private_value ^= AC97_CD ^ AC97_VIDEO; in xonar_d2_control_filter()
1050 if (!strncmp(template->name, "Master Playback ", 16)) in xonar_st_h6_control_filter()
1058 struct xonar_pcm179x *data = chip->model_data; in add_pcm1796_controls()
1061 if (!data->broken_i2c) { in add_pcm1796_controls()
1062 err = snd_ctl_add(chip->card, in add_pcm1796_controls()
1066 err = snd_ctl_add(chip->card, in add_pcm1796_controls()
1078 err = snd_ctl_add(chip->card, snd_ctl_new1(&alt_switch, chip)); in xonar_d2_mixer_init()
1091 err = snd_ctl_add(chip->card, snd_ctl_new1(&hdav_hdmi_control, chip)); in xonar_hdav_mixer_init()
1106 err = snd_ctl_add(chip->card, in xonar_st_mixer_init()
1123 err = snd_ctl_add(chip->card, in xonar_xense_mixer_init()
1137 struct xonar_pcm179x *data = chip->model_data; in dump_pcm1796_registers()
1140 for (dac = 0; dac < data->dacs; ++dac) { in dump_pcm1796_registers()
1144 data->pcm1796_regs[dac][i]); in dump_pcm1796_registers()
1152 struct xonar_pcm179x *data = chip->model_data; in dump_cs2000_registers()
1155 if (data->has_cs2000) { in dump_cs2000_registers()
1158 snd_iprintf(buffer, " %02x", data->cs2000_regs[i]); in dump_cs2000_registers()
1161 snd_iprintf(buffer, " %02x", data->cs2000_regs[i]); in dump_cs2000_registers()
1198 .dac_volume_min = 255 - 2*60,
1233 .dac_volume_min = 255 - 2*60,
1266 .dac_volume_min = 255 - 2*60,
1278 switch (id->subdevice) { in get_xonar_pcm179x_model()
1280 chip->model = model_xonar_d2; in get_xonar_pcm179x_model()
1281 chip->model.shortname = "Xonar D2"; in get_xonar_pcm179x_model()
1284 chip->model = model_xonar_d2; in get_xonar_pcm179x_model()
1285 chip->model.shortname = "Xonar D2X"; in get_xonar_pcm179x_model()
1286 chip->model.init = xonar_d2x_init; in get_xonar_pcm179x_model()
1289 chip->model = model_xonar_hdav; in get_xonar_pcm179x_model()
1293 chip->model.shortname = "Xonar HDAV1.3"; in get_xonar_pcm179x_model()
1296 chip->model.shortname = "Xonar HDAV1.3+H6"; in get_xonar_pcm179x_model()
1297 chip->model.dac_channels_mixer = 8; in get_xonar_pcm179x_model()
1298 chip->model.dac_mclks = OXYGEN_MCLKS(256, 128, 128); in get_xonar_pcm179x_model()
1303 chip->model = model_xonar_st; in get_xonar_pcm179x_model()
1307 chip->model.shortname = "Xonar ST"; in get_xonar_pcm179x_model()
1310 chip->model.shortname = "Xonar ST+H6"; in get_xonar_pcm179x_model()
1311 chip->model.control_filter = xonar_st_h6_control_filter; in get_xonar_pcm179x_model()
1312 chip->model.dac_channels_pcm = 8; in get_xonar_pcm179x_model()
1313 chip->model.dac_channels_mixer = 8; in get_xonar_pcm179x_model()
1314 chip->model.dac_volume_min = 255; in get_xonar_pcm179x_model()
1315 chip->model.dac_mclks = OXYGEN_MCLKS(256, 128, 128); in get_xonar_pcm179x_model()
1320 chip->model = model_xonar_st; in get_xonar_pcm179x_model()
1321 chip->model.shortname = "Xonar STX"; in get_xonar_pcm179x_model()
1322 chip->model.init = xonar_stx_init; in get_xonar_pcm179x_model()
1323 chip->model.resume = xonar_stx_resume; in get_xonar_pcm179x_model()
1324 chip->model.set_dac_params = set_pcm1796_params; in get_xonar_pcm179x_model()
1327 chip->model = model_xonar_st; in get_xonar_pcm179x_model()
1331 chip->model.shortname = "Xonar STX II"; in get_xonar_pcm179x_model()
1334 chip->model.shortname = "Xonar STX II+H6"; in get_xonar_pcm179x_model()
1335 chip->model.dac_channels_pcm = 8; in get_xonar_pcm179x_model()
1336 chip->model.dac_channels_mixer = 8; in get_xonar_pcm179x_model()
1337 chip->model.dac_mclks = OXYGEN_MCLKS(256, 128, 128); in get_xonar_pcm179x_model()
1340 chip->model.init = xonar_stx_init; in get_xonar_pcm179x_model()
1341 chip->model.resume = xonar_stx_resume; in get_xonar_pcm179x_model()
1342 chip->model.set_dac_params = set_pcm1796_params; in get_xonar_pcm179x_model()
1345 chip->model = model_xonar_st; in get_xonar_pcm179x_model()
1346 chip->model.shortname = "Xonar Xense"; in get_xonar_pcm179x_model()
1347 chip->model.chip = "AV100"; in get_xonar_pcm179x_model()
1348 chip->model.init = xonar_xense_init; in get_xonar_pcm179x_model()
1349 chip->model.mixer_init = xonar_xense_mixer_init; in get_xonar_pcm179x_model()
1352 return -EINVAL; in get_xonar_pcm179x_model()