diff options
Diffstat (limited to 'firmware/target')
7 files changed, 31 insertions, 0 deletions
diff --git a/firmware/target/arm/imx233/audioout-imx233.c b/firmware/target/arm/imx233/audioout-imx233.c index b27f7b37e2..26a480d05c 100644 --- a/firmware/target/arm/imx233/audioout-imx233.c +++ b/firmware/target/arm/imx233/audioout-imx233.c | |||
@@ -23,6 +23,15 @@ | |||
23 | #include "rtc-imx233.h" | 23 | #include "rtc-imx233.h" |
24 | #include "pcm_sampr.h" | 24 | #include "pcm_sampr.h" |
25 | #include "string.h" | 25 | #include "string.h" |
26 | #include "audio-target.h" | ||
27 | |||
28 | #ifndef IMX233_AUDIO_COUPLING_MODE | ||
29 | #error You must define IMX233_AUDIO_COUPLING_MODE | ||
30 | #endif | ||
31 | |||
32 | #if IMX233_AUDIO_COUPLING_MODE != ACM_CAP && IMX233_AUDIO_COUPLING_MODE != ACM_CAPLESS | ||
33 | #error Invalid value for IMX233_AUDIO_COUPLING_MODE | ||
34 | #endif | ||
26 | 35 | ||
27 | static int hp_vol_l, hp_vol_r; | 36 | static int hp_vol_l, hp_vol_r; |
28 | static bool input_line1; | 37 | static bool input_line1; |
@@ -46,7 +55,11 @@ void imx233_audioout_preinit(void) | |||
46 | /* Enable DAC */ | 55 | /* Enable DAC */ |
47 | BF_CLR(AUDIOOUT_ANACLKCTRL, CLKGATE); | 56 | BF_CLR(AUDIOOUT_ANACLKCTRL, CLKGATE); |
48 | /* Set capless mode */ | 57 | /* Set capless mode */ |
58 | #if IMX233_AUDIO_COUPLING_MODE == ACM_CAP | ||
59 | BF_SET(AUDIOOUT_PWRDN, CAPLESS); | ||
60 | #else | ||
49 | BF_CLR(AUDIOOUT_PWRDN, CAPLESS); | 61 | BF_CLR(AUDIOOUT_PWRDN, CAPLESS); |
62 | #endif | ||
50 | /* Set word-length to 16-bit */ | 63 | /* Set word-length to 16-bit */ |
51 | BF_SET(AUDIOOUT_CTRL, WORD_LENGTH); | 64 | BF_SET(AUDIOOUT_CTRL, WORD_LENGTH); |
52 | /* Power up DAC */ | 65 | /* Power up DAC */ |
diff --git a/firmware/target/arm/imx233/audioout-imx233.h b/firmware/target/arm/imx233/audioout-imx233.h index b5c16767c6..88163e7ad2 100644 --- a/firmware/target/arm/imx233/audioout-imx233.h +++ b/firmware/target/arm/imx233/audioout-imx233.h | |||
@@ -27,6 +27,14 @@ | |||
27 | 27 | ||
28 | #include "regs/regs-audioout.h" | 28 | #include "regs/regs-audioout.h" |
29 | 29 | ||
30 | /* target-defined output stage coupling method | ||
31 | * its setting is IMX233_AUDIO_COUPLING_MODE and must be set for every target | ||
32 | * Use ACM_CAP if output stage (i.e. headphones) have output capacitors, | ||
33 | * ACM_CAPLESS (DC-coupled) otherwise. | ||
34 | */ | ||
35 | #define ACM_CAPLESS 0 | ||
36 | #define ACM_CAP 1 | ||
37 | |||
30 | struct imx233_audioout_info_t | 38 | struct imx233_audioout_info_t |
31 | { | 39 | { |
32 | // NOTE there is a convention here: dac -> dacvol -> dacmute | 40 | // NOTE there is a convention here: dac -> dacvol -> dacmute |
diff --git a/firmware/target/arm/imx233/creative-zen/audio-target.h b/firmware/target/arm/imx233/creative-zen/audio-target.h index 4ee2e2f402..192539211e 100644 --- a/firmware/target/arm/imx233/creative-zen/audio-target.h +++ b/firmware/target/arm/imx233/creative-zen/audio-target.h | |||
@@ -21,5 +21,7 @@ | |||
21 | #ifndef __audio_target__ | 21 | #ifndef __audio_target__ |
22 | #define __audio_target__ | 22 | #define __audio_target__ |
23 | 23 | ||
24 | #define IMX233_AUDIO_COUPLING_MODE ACM_CAPLESS | ||
25 | |||
24 | #endif /* __audio_target__ */ | 26 | #endif /* __audio_target__ */ |
25 | 27 | ||
diff --git a/firmware/target/arm/imx233/creative-zenxfi2/audio-target.h b/firmware/target/arm/imx233/creative-zenxfi2/audio-target.h index afa3d9649b..59e8fd6f01 100644 --- a/firmware/target/arm/imx233/creative-zenxfi2/audio-target.h +++ b/firmware/target/arm/imx233/creative-zenxfi2/audio-target.h | |||
@@ -21,4 +21,6 @@ | |||
21 | #ifndef __audio_target__ | 21 | #ifndef __audio_target__ |
22 | #define __audio_target__ | 22 | #define __audio_target__ |
23 | 23 | ||
24 | #define IMX233_AUDIO_COUPLING_MODE ACM_CAPLESS | ||
25 | |||
24 | #endif /* __audio_target__ */ | 26 | #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 0b4610cd1a..bdb6b4a610 100644 --- a/firmware/target/arm/imx233/creative-zenxfi3/audio-target.h +++ b/firmware/target/arm/imx233/creative-zenxfi3/audio-target.h | |||
@@ -27,4 +27,6 @@ | |||
27 | #define IMX233_AUDIO_SPKR_GATE_BANK 1 | 27 | #define IMX233_AUDIO_SPKR_GATE_BANK 1 |
28 | #define IMX233_AUDIO_SPKR_GATE_PIN 22 | 28 | #define IMX233_AUDIO_SPKR_GATE_PIN 22 |
29 | 29 | ||
30 | #define IMX233_AUDIO_COUPLING_MODE ACM_CAPLESS | ||
31 | |||
30 | #endif /* __audio_target__ */ | 32 | #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 afa3d9649b..59e8fd6f01 100644 --- a/firmware/target/arm/imx233/sansa-fuzeplus/audio-target.h +++ b/firmware/target/arm/imx233/sansa-fuzeplus/audio-target.h | |||
@@ -21,4 +21,6 @@ | |||
21 | #ifndef __audio_target__ | 21 | #ifndef __audio_target__ |
22 | #define __audio_target__ | 22 | #define __audio_target__ |
23 | 23 | ||
24 | #define IMX233_AUDIO_COUPLING_MODE ACM_CAPLESS | ||
25 | |||
24 | #endif /* __audio_target__ */ | 26 | #endif /* __audio_target__ */ |
diff --git a/firmware/target/arm/imx233/sony-nwz/audio-target.h b/firmware/target/arm/imx233/sony-nwz/audio-target.h index afa3d9649b..59e8fd6f01 100644 --- a/firmware/target/arm/imx233/sony-nwz/audio-target.h +++ b/firmware/target/arm/imx233/sony-nwz/audio-target.h | |||
@@ -21,4 +21,6 @@ | |||
21 | #ifndef __audio_target__ | 21 | #ifndef __audio_target__ |
22 | #define __audio_target__ | 22 | #define __audio_target__ |
23 | 23 | ||
24 | #define IMX233_AUDIO_COUPLING_MODE ACM_CAPLESS | ||
25 | |||
24 | #endif /* __audio_target__ */ | 26 | #endif /* __audio_target__ */ |