diff options
Diffstat (limited to 'firmware/target/arm/s5l8702/ipod6g')
-rw-r--r-- | firmware/target/arm/s5l8702/ipod6g/audio-ipod6g.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/firmware/target/arm/s5l8702/ipod6g/audio-ipod6g.c b/firmware/target/arm/s5l8702/ipod6g/audio-ipod6g.c index 6ede3d0c30..6a3bab06d6 100644 --- a/firmware/target/arm/s5l8702/ipod6g/audio-ipod6g.c +++ b/firmware/target/arm/s5l8702/ipod6g/audio-ipod6g.c | |||
@@ -22,6 +22,9 @@ | |||
22 | #include "cpu.h" | 22 | #include "cpu.h" |
23 | #include "audio.h" | 23 | #include "audio.h" |
24 | #include "sound.h" | 24 | #include "sound.h" |
25 | #include "pmu-target.h" | ||
26 | |||
27 | extern int rec_hw_ver; | ||
25 | 28 | ||
26 | #if INPUT_SRC_CAPS != 0 | 29 | #if INPUT_SRC_CAPS != 0 |
27 | void audio_set_output_source(int source) | 30 | void audio_set_output_source(int source) |
@@ -46,13 +49,42 @@ void audio_input_mux(int source, unsigned flags) | |||
46 | { | 49 | { |
47 | audiohw_set_monitor(false); | 50 | audiohw_set_monitor(false); |
48 | audiohw_disable_recording(); | 51 | audiohw_disable_recording(); |
52 | |||
53 | /* Vcodec = 1800mV (900mV + value*100mV) */ | ||
54 | pmu_ldo_set_voltage(3, 0x9); | ||
55 | |||
56 | if (rec_hw_ver == 1) | ||
57 | GPIOCMD = 0xe070e; | ||
49 | } | 58 | } |
50 | #endif | 59 | #endif |
51 | break; | 60 | break; |
61 | |||
62 | #ifdef HAVE_MIC_REC | ||
63 | case AUDIO_SRC_MIC: /* recording only */ | ||
64 | if (source != last_source) | ||
65 | { | ||
66 | if (rec_hw_ver == 1) | ||
67 | GPIOCMD = 0xe070f; | ||
68 | |||
69 | /* Vcodec = 2400mV (900mV + value*100mV) */ | ||
70 | pmu_ldo_set_voltage(3, 0xf); | ||
71 | |||
72 | audiohw_set_monitor(false); | ||
73 | audiohw_enable_recording(true); /* source mic */ | ||
74 | } | ||
75 | break; | ||
76 | #endif | ||
77 | |||
52 | #ifdef HAVE_LINE_REC | 78 | #ifdef HAVE_LINE_REC |
53 | case AUDIO_SRC_LINEIN: /* recording only */ | 79 | case AUDIO_SRC_LINEIN: /* recording only */ |
54 | if (source != last_source) | 80 | if (source != last_source) |
55 | { | 81 | { |
82 | if (rec_hw_ver == 1) | ||
83 | GPIOCMD = 0xe070e; | ||
84 | |||
85 | /* Vcodec = 2400mV (900mV + value*100mV) */ | ||
86 | pmu_ldo_set_voltage(3, 0xf); | ||
87 | |||
56 | audiohw_set_monitor(false); | 88 | audiohw_set_monitor(false); |
57 | audiohw_enable_recording(false); /* source line */ | 89 | audiohw_enable_recording(false); /* source line */ |
58 | } | 90 | } |