diff options
author | Rafaël Carré <rafael.carre@gmail.com> | 2010-03-29 19:48:18 +0000 |
---|---|---|
committer | Rafaël Carré <rafael.carre@gmail.com> | 2010-03-29 19:48:18 +0000 |
commit | 17eca7bfa0cb7af7cf432463c772ff572ebb7018 (patch) | |
tree | e96c0651169d9f17730f359823edcc7ac193dbc2 | |
parent | 10023adf727391cd165be7b5290e83a4710d0129 (diff) | |
download | rockbox-17eca7bfa0cb7af7cf432463c772ff572ebb7018.tar.gz rockbox-17eca7bfa0cb7af7cf432463c772ff572ebb7018.zip |
as3525v2: FM playback (only tested on Clip+)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25383 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | firmware/drivers/audio/as3514.c | 17 | ||||
-rw-r--r-- | firmware/export/as3514.h | 7 |
2 files changed, 21 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 | } |
diff --git a/firmware/export/as3514.h b/firmware/export/as3514.h index c7353a2e97..afc982da39 100644 --- a/firmware/export/as3514.h +++ b/firmware/export/as3514.h | |||
@@ -102,10 +102,17 @@ extern void audiohw_set_lineout_vol(int vol_l, int vol_r); | |||
102 | 102 | ||
103 | /* HPH_OUT_R (0x02) */ | 103 | /* HPH_OUT_R (0x02) */ |
104 | #define HPH_OUT_R_HP_OVC_TO (0x3 << 6) | 104 | #define HPH_OUT_R_HP_OVC_TO (0x3 << 6) |
105 | /* AS3514/AS3517 */ | ||
105 | #define HPH_OUT_R_HP_OVC_TO_0MS (0x3 << 6) | 106 | #define HPH_OUT_R_HP_OVC_TO_0MS (0x3 << 6) |
106 | #define HPH_OUT_R_HP_OVC_TO_128MS (0x1 << 6) | 107 | #define HPH_OUT_R_HP_OVC_TO_128MS (0x1 << 6) |
107 | #define HPH_OUT_R_HP_OVC_TO_256MS (0x0 << 6) | 108 | #define HPH_OUT_R_HP_OVC_TO_256MS (0x0 << 6) |
108 | #define HPH_OUT_R_HP_OVC_TO_512MS (0x2 << 6) | 109 | #define HPH_OUT_R_HP_OVC_TO_512MS (0x2 << 6) |
110 | /* AS3543 */ | ||
111 | #define HPH_OUT_R_HP_OUT_SUM (0x0 << 5) | ||
112 | #define HPH_OUT_R_HP_OUT_DAC (0x1 << 5) | ||
113 | #define HPH_OUT_R_HP_OUT_LINE (0x2 << 5) | ||
114 | #define HPH_OUT_R_HP_OUT_MIC (0x3 << 5) | ||
115 | #define HPH_OUT_R_HP_OUT_MASK (0x3 << 5) | ||
109 | /* Use AS3514_VOL_MASK */ | 116 | /* Use AS3514_VOL_MASK */ |
110 | 117 | ||
111 | /* HPH_OUT_L (0x03) */ | 118 | /* HPH_OUT_L (0x03) */ |