summaryrefslogtreecommitdiff
path: root/firmware/drivers/audio/wm8721.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers/audio/wm8721.c')
-rw-r--r--firmware/drivers/audio/wm8721.c28
1 files changed, 25 insertions, 3 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}