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.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/firmware/drivers/audio/wm8721.c b/firmware/drivers/audio/wm8721.c
index 9b58454ca8..c175d2d74a 100644
--- a/firmware/drivers/audio/wm8721.c
+++ b/firmware/drivers/audio/wm8721.c
@@ -82,10 +82,10 @@ void audiohw_mute(bool mute)
82 if (mute) 82 if (mute)
83 { 83 {
84 /* Set DACMU = 1 to soft-mute the audio DACs. */ 84 /* Set DACMU = 1 to soft-mute the audio DACs. */
85 wmcodec_write(DACCTRL, 0x8); 85 wmcodec_write(DAPCTRL, 0x8);
86 } else { 86 } else {
87 /* Set DACMU = 0 to soft-un-mute the audio DACs. */ 87 /* Set DACMU = 0 to soft-un-mute the audio DACs. */
88 wmcodec_write(DACCTRL, 0x0); 88 wmcodec_write(DAPCTRL, 0x0);
89 } 89 }
90} 90}
91 91
@@ -117,7 +117,7 @@ void audiohw_enable_output(bool enable)
117 wmcodec_write(0x4, 0x10); 117 wmcodec_write(0x4, 0x10);
118 118
119 /* set power register to POWEROFF=0 on OUTPD=0, DACPD=0 */ 119 /* set power register to POWEROFF=0 on OUTPD=0, DACPD=0 */
120 wmcodec_write(PWRMGMT, 0x67); 120 wmcodec_write(PDCTRL, 0x67);
121 121
122 /* BCLKINV=0(Dont invert BCLK) MS=1(Enable Master) LRSWAP=0 LRP=0 */ 122 /* BCLKINV=0(Dont invert BCLK) MS=1(Enable Master) LRSWAP=0 LRP=0 */
123 /* IWL=00(16 bit) FORMAT=10(I2S format) */ 123 /* IWL=00(16 bit) FORMAT=10(I2S format) */
@@ -133,7 +133,7 @@ void audiohw_enable_output(bool enable)
133 codec_set_active(1); 133 codec_set_active(1);
134 134
135 /* 5. Set DACMU = 0 to soft-un-mute the audio DACs. */ 135 /* 5. Set DACMU = 0 to soft-un-mute the audio DACs. */
136 wmcodec_write(DACCTRL, 0x0); 136 wmcodec_write(DAPCTRL, 0x0);
137 137
138 audiohw_mute(0); 138 audiohw_mute(0);
139 } else { 139 } else {
@@ -158,22 +158,19 @@ int audiohw_set_master_vol(int vol_l, int vol_r)
158void audiohw_close(void) 158void audiohw_close(void)
159{ 159{
160 /* set DACMU=1 DEEMPH=0 */ 160 /* set DACMU=1 DEEMPH=0 */
161 wmcodec_write(DACCTRL, 0x8); 161 wmcodec_write(DAPCTRL, 0x8);
162 162
163 /* ACTIVE=0 */ 163 /* ACTIVE=0 */
164 codec_set_active(0x0); 164 codec_set_active(0x0);
165 165
166 /* line in mute left & right*/
167 wmcodec_write(LINVOL, 0x100 | 0x80);
168
169 /* set DACSEL=0, MUTEMIC=1 */ 166 /* set DACSEL=0, MUTEMIC=1 */
170 wmcodec_write(0x4, 0x2); 167 wmcodec_write(0x4, 0x2);
171 168
172 /* set POWEROFF=0 OUTPD=0 DACPD=1 */ 169 /* set POWEROFF=0 OUTPD=0 DACPD=1 */
173 wmcodec_write(PWRMGMT, 0x6f); 170 wmcodec_write(PDCTRL, 0x6f);
174 171
175 /* set POWEROFF=1 OUTPD=1 DACPD=1 */ 172 /* set POWEROFF=1 OUTPD=1 DACPD=1 */
176 wmcodec_write(PWRMGMT, 0xff); 173 wmcodec_write(PDCTRL, 0xff);
177} 174}
178 175
179/* Change the order of the noise shaper, 5th order is recommended above 32kHz */ 176/* Change the order of the noise shaper, 5th order is recommended above 32kHz */