summaryrefslogtreecommitdiff
path: root/firmware/target/arm/s5l8702/ipod6g
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/s5l8702/ipod6g')
-rw-r--r--firmware/target/arm/s5l8702/ipod6g/audio-ipod6g.c32
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
27extern int rec_hw_ver;
25 28
26#if INPUT_SRC_CAPS != 0 29#if INPUT_SRC_CAPS != 0
27void audio_set_output_source(int source) 30void 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 }