diff options
Diffstat (limited to 'firmware/drivers/audio/as3514.c')
-rw-r--r-- | firmware/drivers/audio/as3514.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/firmware/drivers/audio/as3514.c b/firmware/drivers/audio/as3514.c index 14c6e43909..11adddc0f1 100644 --- a/firmware/drivers/audio/as3514.c +++ b/firmware/drivers/audio/as3514.c | |||
@@ -183,15 +183,16 @@ void audiohw_preinit(void) | |||
183 | as3514_write(AS3514_LSP_OUT_L, LSP_OUT_L_SP_MUTE | 0x00); | 183 | as3514_write(AS3514_LSP_OUT_L, LSP_OUT_L_SP_MUTE | 0x00); |
184 | #else | 184 | #else |
185 | as3514_clear(AS3543_DAC_IF, 0x80); | 185 | as3514_clear(AS3543_DAC_IF, 0x80); |
186 | as3514_set(AS3514_LINE_IN1_R, 1<<6); // Select Line-in 2 | ||
186 | #endif | 187 | #endif |
187 | 188 | ||
188 | /* Set headphone over-current to 0, Min volume */ | ||
189 | #if CONFIG_CPU != AS3525v2 | 189 | #if CONFIG_CPU != AS3525v2 |
190 | /* Set headphone over-current to 0, Min volume */ | ||
190 | as3514_write(AS3514_HPH_OUT_R, | 191 | as3514_write(AS3514_HPH_OUT_R, |
191 | HPH_OUT_R_HP_OVC_TO_0MS | 0x00); | 192 | HPH_OUT_R_HP_OVC_TO_0MS | 0x00); |
192 | #else | 193 | #else |
193 | as3514_write(AS3514_HPH_OUT_R, (0<<7) /* out */ | (1<<5) /* dac */ | 194 | as3514_write(AS3514_HPH_OUT_R, (0<<7) /* out */ | HPH_OUT_R_HP_OUT_DAC | |
194 | | 0x1f /* vol */); | 195 | 0x00); |
195 | #endif | 196 | #endif |
196 | /* Headphone ON, MUTE, Min volume */ | 197 | /* Headphone ON, MUTE, Min volume */ |
197 | as3514_write(AS3514_HPH_OUT_L, | 198 | as3514_write(AS3514_HPH_OUT_L, |
@@ -429,13 +430,23 @@ void audiohw_set_monitor(bool enable) | |||
429 | LINE_IN1_R_LI1R_MUTE_off); | 430 | LINE_IN1_R_LI1R_MUTE_off); |
430 | as3514_set((LINE_INPUT == 1) ? AS3514_LINE_IN1_L : AS3514_LINE_IN2_L, | 431 | as3514_set((LINE_INPUT == 1) ? AS3514_LINE_IN1_L : AS3514_LINE_IN2_L, |
431 | LINE_IN1_L_LI1L_MUTE_off); | 432 | LINE_IN1_L_LI1L_MUTE_off); |
433 | |||
434 | #if CONFIG_CPU == AS3525v2 | ||
435 | as3514_write_masked(AS3514_HPH_OUT_R, | ||
436 | HPH_OUT_R_HP_OUT_LINE, HPH_OUT_R_HP_OUT_MASK); | ||
437 | #endif | ||
432 | } | 438 | } |
433 | else { | 439 | else { |
434 | /* turn off both LIN1 and LIN2 */ | 440 | /* turn off both LIN1 and LIN2 */ |
435 | as3514_clear(AS3514_LINE_IN1_R, LINE_IN1_R_LI1R_MUTE_off); | 441 | as3514_clear(AS3514_LINE_IN1_R, LINE_IN1_R_LI1R_MUTE_off); |
436 | as3514_clear(AS3514_LINE_IN1_L, LINE_IN1_L_LI1L_MUTE_off); | 442 | as3514_clear(AS3514_LINE_IN1_L, LINE_IN1_L_LI1L_MUTE_off); |
443 | #if CONFIG_CPU != AS3525v2 /* not in as3543 */ | ||
437 | as3514_clear(AS3514_LINE_IN2_R, LINE_IN2_R_LI2R_MUTE_off); | 444 | as3514_clear(AS3514_LINE_IN2_R, LINE_IN2_R_LI2R_MUTE_off); |
438 | as3514_clear(AS3514_LINE_IN2_L, LINE_IN2_L_LI2L_MUTE_off); | 445 | as3514_clear(AS3514_LINE_IN2_L, LINE_IN2_L_LI2L_MUTE_off); |
446 | #else | ||
447 | as3514_write_masked(AS3514_HPH_OUT_R, | ||
448 | HPH_OUT_R_HP_OUT_DAC, HPH_OUT_R_HP_OUT_MASK); | ||
449 | #endif | ||
439 | as3514_clear(AS3514_AUDIOSET1, AUDIOSET1_LIN1_on | AUDIOSET1_LIN2_on); | 450 | as3514_clear(AS3514_AUDIOSET1, AUDIOSET1_LIN1_on | AUDIOSET1_LIN2_on); |
440 | } | 451 | } |
441 | } | 452 | } |