Lines Matching defs:chip

66 static void cs4398_write(struct oxygen *chip, u8 reg, u8 value)
68 struct xonar_cs43xx *data = chip->model_data;
70 oxygen_write_i2c(chip, I2C_DEVICE_CS4398, reg, value);
75 static void cs4398_write_cached(struct oxygen *chip, u8 reg, u8 value)
77 struct xonar_cs43xx *data = chip->model_data;
80 cs4398_write(chip, reg, value);
83 static void cs4362a_write(struct oxygen *chip, u8 reg, u8 value)
85 struct xonar_cs43xx *data = chip->model_data;
87 oxygen_write_i2c(chip, I2C_DEVICE_CS4362A, reg, value);
92 static void cs4362a_write_cached(struct oxygen *chip, u8 reg, u8 value)
94 struct xonar_cs43xx *data = chip->model_data;
97 cs4362a_write(chip, reg, value);
100 static void cs43xx_registers_init(struct oxygen *chip)
102 struct xonar_cs43xx *data = chip->model_data;
106 cs4398_write(chip, 8, CS4398_CPEN | CS4398_PDN);
107 cs4362a_write(chip, 0x01, CS4362A_PDN | CS4362A_CPEN);
109 cs4398_write(chip, 2, data->cs4398_regs[2]);
110 cs4398_write(chip, 3, CS4398_ATAPI_B_R | CS4398_ATAPI_A_L);
111 cs4398_write(chip, 4, data->cs4398_regs[4]);
112 cs4398_write(chip, 5, data->cs4398_regs[5]);
113 cs4398_write(chip, 6, data->cs4398_regs[6]);
114 cs4398_write(chip, 7, data->cs4398_regs[7]);
115 cs4362a_write(chip, 0x02, CS4362A_DIF_LJUST);
116 cs4362a_write(chip, 0x03, CS4362A_MUTEC_6 | CS4362A_AMUTE |
118 cs4362a_write(chip, 0x04, data->cs4362a_regs[0x04]);
119 cs4362a_write(chip, 0x05, 0);
121 cs4362a_write(chip, i, data->cs4362a_regs[i]);
123 cs4398_write(chip, 8, CS4398_CPEN);
124 cs4362a_write(chip, 0x01, CS4362A_CPEN);
127 static void xonar_d1_init(struct oxygen *chip)
129 struct xonar_cs43xx *data = chip->model_data;
153 oxygen_write16(chip, OXYGEN_2WIRE_BUS_STATUS,
158 cs43xx_registers_init(chip);
160 oxygen_set_bits16(chip, OXYGEN_GPIO_CONTROL,
164 oxygen_clear_bits16(chip, OXYGEN_GPIO_DATA,
167 xonar_init_cs53x1(chip);
168 xonar_enable_output(chip);
170 snd_component_add(chip->card, "CS4398");
171 snd_component_add(chip->card, "CS4362A");
172 snd_component_add(chip->card, "CS5361");
175 static void xonar_dx_init(struct oxygen *chip)
177 struct xonar_cs43xx *data = chip->model_data;
182 xonar_init_ext_power(chip);
183 xonar_d1_init(chip);
186 static void xonar_d1_cleanup(struct oxygen *chip)
188 xonar_disable_output(chip);
189 cs4362a_write(chip, 0x01, CS4362A_PDN | CS4362A_CPEN);
190 oxygen_clear_bits8(chip, OXYGEN_FUNCTION, OXYGEN_FUNCTION_RESET_CODEC);
193 static void xonar_d1_suspend(struct oxygen *chip)
195 xonar_d1_cleanup(chip);
198 static void xonar_d1_resume(struct oxygen *chip)
200 oxygen_set_bits8(chip, OXYGEN_FUNCTION, OXYGEN_FUNCTION_RESET_CODEC);
202 cs43xx_registers_init(chip);
203 xonar_enable_output(chip);
206 static void set_cs43xx_params(struct oxygen *chip,
209 struct xonar_cs43xx *data = chip->model_data;
223 cs4398_write_cached(chip, 2, cs4398_fm);
225 cs4362a_write_cached(chip, 6, cs4362a_fm);
226 cs4362a_write_cached(chip, 12, cs4362a_fm);
229 cs4362a_write_cached(chip, 9, cs4362a_fm);
232 static void update_cs4362a_volumes(struct oxygen *chip)
237 mute = chip->dac_mute ? CS4362A_MUTE : 0;
239 cs4362a_write_cached(chip, 7 + i + i / 2,
240 (127 - chip->dac_volume[2 + i]) | mute);
243 static void update_cs43xx_volume(struct oxygen *chip)
245 cs4398_write_cached(chip, 5, (127 - chip->dac_volume[0]) * 2);
246 cs4398_write_cached(chip, 6, (127 - chip->dac_volume[1]) * 2);
247 update_cs4362a_volumes(chip);
250 static void update_cs43xx_mute(struct oxygen *chip)
255 if (chip->dac_mute)
257 cs4398_write_cached(chip, 4, reg);
258 update_cs4362a_volumes(chip);
261 static void update_cs43xx_center_lfe_mix(struct oxygen *chip, bool mixed)
263 struct xonar_cs43xx *data = chip->model_data;
271 cs4362a_write_cached(chip, 9, reg);
296 struct oxygen *chip = ctl->private_data;
297 struct xonar_cs43xx *data = chip->model_data;
307 struct oxygen *chip = ctl->private_data;
308 struct xonar_cs43xx *data = chip->model_data;
312 mutex_lock(&chip->mutex);
320 cs4398_write(chip, 7, reg);
325 cs4362a_write(chip, 0x04, reg);
327 mutex_unlock(&chip->mutex);
339 static void xonar_d1_line_mic_ac97_switch(struct oxygen *chip,
343 spin_lock_irq(&chip->reg_lock);
344 oxygen_write16_masked(chip, OXYGEN_GPIO_DATA,
347 spin_unlock_irq(&chip->reg_lock);
353 static int xonar_d1_mixer_init(struct oxygen *chip)
357 err = snd_ctl_add(chip->card, snd_ctl_new1(&front_panel_switch, chip));
360 err = snd_ctl_add(chip->card, snd_ctl_new1(&rolloff_control, chip));
377 static void dump_d1_registers(struct oxygen *chip,
380 struct xonar_cs43xx *data = chip->model_data;
392 .chip = "AV200",
423 int get_xonar_cs43xx_model(struct oxygen *chip,
428 chip->model = model_xonar_d1;
429 chip->model.shortname = "Xonar D1";
433 chip->model = model_xonar_d1;
434 chip->model.shortname = "Xonar DX";
435 chip->model.init = xonar_dx_init;