summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/arm/imx233/audio-imx233.h8
-rw-r--r--firmware/target/arm/imx233/audioin-imx233.c22
-rw-r--r--firmware/target/arm/imx233/creative-zen/audio-target.h6
-rw-r--r--firmware/target/arm/imx233/creative-zenxfi2/audio-target.h4
-rw-r--r--firmware/target/arm/imx233/creative-zenxfi3/audio-target.h4
-rw-r--r--firmware/target/arm/imx233/sansa-fuzeplus/audio-target.h4
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
41void imx233_audio_preinit(void); 47void 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)
46void imx233_audio_enable_spkr(bool en); 52void 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 */
30static int audioin_vol[2][4]; /* 0=left, 1=right */ 44static int audioin_vol[2][4]; /* 0=left, 1=right */
31static int audioin_select[2]; /* idem */ 45static int audioin_select[2]; /* idem */
@@ -58,7 +72,7 @@ void imx233_audioin_open(void)
58 72
59void imx233_audioin_close(void) 73void 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__ */