diff options
Diffstat (limited to 'firmware/drivers/audio/tlv320.c')
-rw-r--r-- | firmware/drivers/audio/tlv320.c | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/firmware/drivers/audio/tlv320.c b/firmware/drivers/audio/tlv320.c index 753a2453c3..b537fd5773 100644 --- a/firmware/drivers/audio/tlv320.c +++ b/firmware/drivers/audio/tlv320.c | |||
@@ -101,6 +101,30 @@ static void tlv320_write_reg(unsigned reg, unsigned value) | |||
101 | tlv320_regs[reg] = value; | 101 | tlv320_regs[reg] = value; |
102 | } | 102 | } |
103 | 103 | ||
104 | static void audiohw_mute(bool mute) | ||
105 | { | ||
106 | unsigned value_dap = tlv320_regs[REG_DAP]; | ||
107 | unsigned value_l, value_r; | ||
108 | |||
109 | if (mute) | ||
110 | { | ||
111 | value_l = LHV_LHV(HEADPHONE_MUTE); | ||
112 | value_r = RHV_RHV(HEADPHONE_MUTE); | ||
113 | value_dap |= DAP_DACM; | ||
114 | } | ||
115 | else | ||
116 | { | ||
117 | value_l = LHV_LHV(tlv320.vol_l); | ||
118 | value_r = RHV_RHV(tlv320.vol_r); | ||
119 | if (value_l > HEADPHONE_MUTE || value_r > HEADPHONE_MUTE) | ||
120 | value_dap &= ~DAP_DACM; | ||
121 | } | ||
122 | |||
123 | tlv320_write_reg(REG_LHV, LHV_LZC | value_l); | ||
124 | tlv320_write_reg(REG_RHV, RHV_RZC | value_r); | ||
125 | tlv320_write_reg(REG_DAP, value_dap); | ||
126 | } | ||
127 | |||
104 | /* public functions */ | 128 | /* public functions */ |
105 | 129 | ||
106 | /** | 130 | /** |
@@ -238,30 +262,6 @@ void audiohw_set_recvol(int left, int right, int type) | |||
238 | } | 262 | } |
239 | #endif | 263 | #endif |
240 | 264 | ||
241 | void audiohw_mute(bool mute) | ||
242 | { | ||
243 | unsigned value_dap = tlv320_regs[REG_DAP]; | ||
244 | unsigned value_l, value_r; | ||
245 | |||
246 | if (mute) | ||
247 | { | ||
248 | value_l = LHV_LHV(HEADPHONE_MUTE); | ||
249 | value_r = RHV_RHV(HEADPHONE_MUTE); | ||
250 | value_dap |= DAP_DACM; | ||
251 | } | ||
252 | else | ||
253 | { | ||
254 | value_l = LHV_LHV(tlv320.vol_l); | ||
255 | value_r = RHV_RHV(tlv320.vol_r); | ||
256 | if (value_l > HEADPHONE_MUTE || value_r > HEADPHONE_MUTE) | ||
257 | value_dap &= ~DAP_DACM; | ||
258 | } | ||
259 | |||
260 | tlv320_write_reg(REG_LHV, LHV_LZC | value_l); | ||
261 | tlv320_write_reg(REG_RHV, RHV_RZC | value_r); | ||
262 | tlv320_write_reg(REG_DAP, value_dap); | ||
263 | } | ||
264 | |||
265 | /* Nice shutdown of TLV320 codec */ | 265 | /* Nice shutdown of TLV320 codec */ |
266 | void audiohw_close(void) | 266 | void audiohw_close(void) |
267 | { | 267 | { |