summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter D'Hoye <peter.dhoye@gmail.com>2008-09-29 21:41:38 +0000
committerPeter D'Hoye <peter.dhoye@gmail.com>2008-09-29 21:41:38 +0000
commitf60c1ae0506a4407859a2e1ed97d59503c59bb1e (patch)
tree7740529effcfe3eb7d8e6a0c09115ad9239a30a8
parentb297eb9d9d1010e15937a120c4068d661966d5f8 (diff)
downloadrockbox-f60c1ae0506a4407859a2e1ed97d59503c59bb1e.tar.gz
rockbox-f60c1ae0506a4407859a2e1ed97d59503c59bb1e.zip
More samplerates for playback for ipod 1g/2g, and fix the ipod mini 1g/2g which also use WM8721.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18669 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/drivers/audio/wm8721.c28
-rw-r--r--firmware/export/config-ipod1g2g.h12
2 files changed, 35 insertions, 5 deletions
diff --git a/firmware/drivers/audio/wm8721.c b/firmware/drivers/audio/wm8721.c
index 141224a65b..1740a48d18 100644
--- a/firmware/drivers/audio/wm8721.c
+++ b/firmware/drivers/audio/wm8721.c
@@ -104,7 +104,7 @@ void audiohw_enable_output(bool enable)
104 104
105 /* DACSEL=1 */ 105 /* DACSEL=1 */
106 wmcodec_write(0x4, 0x10); 106 wmcodec_write(0x4, 0x10);
107 107
108 /* set power register to POWEROFF=0 on OUTPD=0, DACPD=0 */ 108 /* set power register to POWEROFF=0 on OUTPD=0, DACPD=0 */
109 wmcodec_write(PDCTRL, 0x67); 109 wmcodec_write(PDCTRL, 0x67);
110 110
@@ -123,7 +123,7 @@ void audiohw_enable_output(bool enable)
123 123
124 /* 5. Set DACMU = 0 to soft-un-mute the audio DACs. */ 124 /* 5. Set DACMU = 0 to soft-un-mute the audio DACs. */
125 wmcodec_write(DAPCTRL, 0x0); 125 wmcodec_write(DAPCTRL, 0x0);
126 126
127 audiohw_mute(0); 127 audiohw_mute(0);
128 } else { 128 } else {
129 audiohw_mute(1); 129 audiohw_mute(1);
@@ -168,7 +168,29 @@ void audiohw_set_nsorder(int order)
168 168
169void audiohw_set_sample_rate(int sampling_control) 169void audiohw_set_sample_rate(int sampling_control)
170{ 170{
171 int rate = 0;
172 switch(sampling_control)
173 {
174 case SAMPR_96:
175 rate = WM8721_USB24_96000HZ;
176 break;
177 case SAMPR_88:
178 rate = WM8721_USB24_88200HZ;
179 break;
180 case SAMPR_48:
181 rate = WM8721_USB24_48000HZ;
182 break;
183 case SAMPR_44:
184 rate = WM8721_USB24_44100HZ;
185 break;
186 case SAMPR_32:
187 rate = WM8721_USB24_32000HZ;
188 break;
189 case SAMPR_8:
190 rate = WM8721_USB24_8000HZ;
191 break;
192 }
171 codec_set_active(0x0); 193 codec_set_active(0x0);
172 wmcodec_write(SAMPCTRL, sampling_control); 194 wmcodec_write(SAMPCTRL, rate);
173 codec_set_active(0x1); 195 codec_set_active(0x1);
174} 196}
diff --git a/firmware/export/config-ipod1g2g.h b/firmware/export/config-ipod1g2g.h
index cbb5267331..2d3dff1edc 100644
--- a/firmware/export/config-ipod1g2g.h
+++ b/firmware/export/config-ipod1g2g.h
@@ -13,8 +13,16 @@
13/* define this if you use an ATA controller */ 13/* define this if you use an ATA controller */
14#define HAVE_ATA 14#define HAVE_ATA
15 15
16/* define this if you have recording possibility */ 16/* define this if you have recording possibility
17/*#define HAVE_RECORDING*/ 17#define HAVE_RECORDING */
18
19/* define the bitmask of hardware sample rates */
20#define HW_SAMPR_CAPS (SAMPR_CAP_96 | SAMPR_CAP_88 | SAMPR_CAP_48 | \
21 SAMPR_CAP_44 | SAMPR_CAP_32 | SAMPR_CAP_8)
22
23/* define the bitmask of recording sample rates
24#define REC_SAMPR_CAPS (SAMPR_CAP_96 | SAMPR_CAP_88 | SAMPR_CAP_48 | \
25 SAMPR_CAP_44 | SAMPR_CAP_32 | SAMPR_CAP_8) */
18 26
19/* define this if you have a bitmap LCD display */ 27/* define this if you have a bitmap LCD display */
20#define HAVE_LCD_BITMAP 28#define HAVE_LCD_BITMAP