diff options
6 files changed, 43 insertions, 5 deletions
diff --git a/firmware/target/arm/imx233/audio-imx233.h b/firmware/target/arm/imx233/audio-imx233.h index 035bf357e1..2596e81bac 100644 --- a/firmware/target/arm/imx233/audio-imx233.h +++ b/firmware/target/arm/imx233/audio-imx233.h | |||
@@ -36,6 +36,12 @@ | |||
36 | * IMX233_AUDIO_SPKR_GATE_BANK (gpio bank) | 36 | * IMX233_AUDIO_SPKR_GATE_BANK (gpio bank) |
37 | * IMX233_AUDIO_SPKR_GATE_PIN (gpio pin) | 37 | * IMX233_AUDIO_SPKR_GATE_PIN (gpio pin) |
38 | * IMX233_AUDIO_SPKR_GATE_INVERTED (define if inverted) | 38 | * IMX233_AUDIO_SPKR_GATE_INVERTED (define if inverted) |
39 | * | ||
40 | * target can override those to control microphone parameters | ||
41 | * NOTE by default, mic select is 1, mic bias is 0 and mic resistor is 2KOhm | ||
42 | * IMX233_AUDIO_MIC_SELECT (mic bias pin: 0=lradc0, 1=lradc1) | ||
43 | * IMX233_AUDIO_MIC_BIAS (mic bias, 0=1.21V, 1=1.46, ..., 7=2.96V (0.25mV inc) | ||
44 | * IMX233_AUDIO_MIC_RESISTOR (mic resistor: 2KOhm, 4KOhm, 8KOhm) | ||
39 | */ | 45 | */ |
40 | // do some initialisation related to next functions | 46 | // do some initialisation related to next functions |
41 | void imx233_audio_preinit(void); | 47 | void imx233_audio_preinit(void); |
@@ -45,4 +51,4 @@ void imx233_audio_enable_hp(bool en); | |||
45 | // enable/disable the speaker audio gate (typically using a GPIO) | 51 | // enable/disable the speaker audio gate (typically using a GPIO) |
46 | void imx233_audio_enable_spkr(bool en); | 52 | void imx233_audio_enable_spkr(bool en); |
47 | 53 | ||
48 | #endif /* __audio_imx233__ */ \ No newline at end of file | 54 | #endif /* __audio_imx233__ */ |
diff --git a/firmware/target/arm/imx233/audioin-imx233.c b/firmware/target/arm/imx233/audioin-imx233.c index e538765244..e221ac07e9 100644 --- a/firmware/target/arm/imx233/audioin-imx233.c +++ b/firmware/target/arm/imx233/audioin-imx233.c | |||
@@ -26,6 +26,20 @@ | |||
26 | /* some audioout registers impact audioin */ | 26 | /* some audioout registers impact audioin */ |
27 | #include "regs/audioout.h" | 27 | #include "regs/audioout.h" |
28 | 28 | ||
29 | #include "audio-target.h" | ||
30 | |||
31 | #ifndef IMX233_AUDIO_MIC_SELECT | ||
32 | #define IMX233_AUDIO_MIC_SELECT 1 /* lradc1 */ | ||
33 | #endif | ||
34 | |||
35 | #ifndef IMX233_AUDIO_MIC_BIAS | ||
36 | #define IMX233_AUDIO_MIC_BIAS 0 /* 1.21V */ | ||
37 | #endif | ||
38 | |||
39 | #ifndef IMX233_AUDIO_MIC_RESISTOR | ||
40 | #define IMX233_AUDIO_MIC_RESISTOR 2KOhm | ||
41 | #endif | ||
42 | |||
29 | /* values in half-dB, one for each setting */ | 43 | /* values in half-dB, one for each setting */ |
30 | static int audioin_vol[2][4]; /* 0=left, 1=right */ | 44 | static int audioin_vol[2][4]; /* 0=left, 1=right */ |
31 | static int audioin_select[2]; /* idem */ | 45 | static int audioin_select[2]; /* idem */ |
@@ -58,7 +72,7 @@ void imx233_audioin_open(void) | |||
58 | 72 | ||
59 | void imx233_audioin_close(void) | 73 | void imx233_audioin_close(void) |
60 | { | 74 | { |
61 | /* Stop ADC (doc says it gate off the module but that's not the case) */ | 75 | /* Stop ADC (doc says it gates off the module but that's not the case) */ |
62 | BF_CLR(AUDIOIN_CTRL, RUN); | 76 | BF_CLR(AUDIOIN_CTRL, RUN); |
63 | /* Disable ADC clock */ | 77 | /* Disable ADC clock */ |
64 | BF_SET(AUDIOIN_ANACLKCTRL, CLKGATE); | 78 | BF_SET(AUDIOIN_ANACLKCTRL, CLKGATE); |
@@ -157,9 +171,9 @@ void imx233_audioin_enable_mic(bool enable) | |||
157 | { | 171 | { |
158 | if(enable) | 172 | if(enable) |
159 | { | 173 | { |
160 | BF_WR(AUDIOIN_MICLINE, MIC_RESISTOR_V(2KOhm)); | 174 | BF_WR(AUDIOIN_MICLINE, MIC_RESISTOR_V(IMX233_AUDIO_MIC_RESISTOR)); |
161 | BF_WR(AUDIOIN_MICLINE, MIC_BIAS(4)); | 175 | BF_WR(AUDIOIN_MICLINE, MIC_BIAS(IMX233_AUDIO_MIC_BIAS)); |
162 | BF_WR(AUDIOIN_MICLINE, MIC_SELECT(1)); | 176 | BF_WR(AUDIOIN_MICLINE, MIC_SELECT(IMX233_AUDIO_MIC_SELECT)); |
163 | } | 177 | } |
164 | else | 178 | else |
165 | BF_WR(AUDIOIN_MICLINE, MIC_RESISTOR_V(Off)); | 179 | BF_WR(AUDIOIN_MICLINE, MIC_RESISTOR_V(Off)); |
diff --git a/firmware/target/arm/imx233/creative-zen/audio-target.h b/firmware/target/arm/imx233/creative-zen/audio-target.h index 38e0dea0af..807a7b4966 100644 --- a/firmware/target/arm/imx233/creative-zen/audio-target.h +++ b/firmware/target/arm/imx233/creative-zen/audio-target.h | |||
@@ -28,5 +28,11 @@ | |||
28 | #define IMX233_AUDIO_SPKR_GATE_PIN 12 | 28 | #define IMX233_AUDIO_SPKR_GATE_PIN 12 |
29 | #endif | 29 | #endif |
30 | 30 | ||
31 | #if defined(CREATIVE_ZENXFISTYLE) | ||
32 | #define IMX233_AUDIO_MIC_SELECT 0 /* lradc0 */ | ||
33 | #define IMX233_AUDIO_MIC_BIAS 0 /* 1.21V */ | ||
34 | #define IMX233_AUDIO_MIC_RESISTOR 2KOhm | ||
35 | #endif | ||
36 | |||
31 | #endif /* __audio_target__ */ | 37 | #endif /* __audio_target__ */ |
32 | 38 | ||
diff --git a/firmware/target/arm/imx233/creative-zenxfi2/audio-target.h b/firmware/target/arm/imx233/creative-zenxfi2/audio-target.h index d38d58bada..4179fe910e 100644 --- a/firmware/target/arm/imx233/creative-zenxfi2/audio-target.h +++ b/firmware/target/arm/imx233/creative-zenxfi2/audio-target.h | |||
@@ -26,4 +26,8 @@ | |||
26 | #define IMX233_AUDIO_SPKR_GATE_BANK 0 | 26 | #define IMX233_AUDIO_SPKR_GATE_BANK 0 |
27 | #define IMX233_AUDIO_SPKR_GATE_PIN 12 | 27 | #define IMX233_AUDIO_SPKR_GATE_PIN 12 |
28 | 28 | ||
29 | #define IMX233_AUDIO_MIC_SELECT 0 /* lradc0 */ | ||
30 | #define IMX233_AUDIO_MIC_BIAS 0 /* 1.21V */ | ||
31 | #define IMX233_AUDIO_MIC_RESISTOR 2KOhm | ||
32 | |||
29 | #endif /* __audio_target__ */ | 33 | #endif /* __audio_target__ */ |
diff --git a/firmware/target/arm/imx233/creative-zenxfi3/audio-target.h b/firmware/target/arm/imx233/creative-zenxfi3/audio-target.h index bdb6b4a610..7286900331 100644 --- a/firmware/target/arm/imx233/creative-zenxfi3/audio-target.h +++ b/firmware/target/arm/imx233/creative-zenxfi3/audio-target.h | |||
@@ -29,4 +29,8 @@ | |||
29 | 29 | ||
30 | #define IMX233_AUDIO_COUPLING_MODE ACM_CAPLESS | 30 | #define IMX233_AUDIO_COUPLING_MODE ACM_CAPLESS |
31 | 31 | ||
32 | #define IMX233_AUDIO_MIC_SELECT 1 /* lradc1 */ | ||
33 | #define IMX233_AUDIO_MIC_BIAS 0 /* 1.21V */ | ||
34 | #define IMX233_AUDIO_MIC_RESISTOR 2KOhm | ||
35 | |||
32 | #endif /* __audio_target__ */ | 36 | #endif /* __audio_target__ */ |
diff --git a/firmware/target/arm/imx233/sansa-fuzeplus/audio-target.h b/firmware/target/arm/imx233/sansa-fuzeplus/audio-target.h index 59e8fd6f01..46ae86ae94 100644 --- a/firmware/target/arm/imx233/sansa-fuzeplus/audio-target.h +++ b/firmware/target/arm/imx233/sansa-fuzeplus/audio-target.h | |||
@@ -23,4 +23,8 @@ | |||
23 | 23 | ||
24 | #define IMX233_AUDIO_COUPLING_MODE ACM_CAPLESS | 24 | #define IMX233_AUDIO_COUPLING_MODE ACM_CAPLESS |
25 | 25 | ||
26 | #define IMX233_AUDIO_MIC_SELECT 1 /* lradc1 */ | ||
27 | #define IMX233_AUDIO_MIC_BIAS 4 /* 2.21V */ | ||
28 | #define IMX233_AUDIO_MIC_RESISTOR 2KOhm | ||
29 | |||
26 | #endif /* __audio_target__ */ | 30 | #endif /* __audio_target__ */ |