diff options
Diffstat (limited to 'firmware/drivers/audio/uda1341.c')
-rw-r--r-- | firmware/drivers/audio/uda1341.c | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/firmware/drivers/audio/uda1341.c b/firmware/drivers/audio/uda1341.c index 6b38353afe..ac3bcedb7d 100644 --- a/firmware/drivers/audio/uda1341.c +++ b/firmware/drivers/audio/uda1341.c | |||
@@ -28,23 +28,8 @@ | |||
28 | 28 | ||
29 | #include "audiohw.h" | 29 | #include "audiohw.h" |
30 | 30 | ||
31 | 31 | /* convert tenth of dB volume (-600..0) to volume register value */ | |
32 | const struct sound_settings_info audiohw_settings[] = { | 32 | static int vol_tenthdb2hw(int db) |
33 | [SOUND_VOLUME] = {"dB", 0, 1, -84, 0, -25}, | ||
34 | [SOUND_BASS] = {"dB", 0, 2, 0, 24, 0}, | ||
35 | [SOUND_TREBLE] = {"dB", 0, 2, 0, 6, 0}, | ||
36 | [SOUND_BALANCE] = {"%", 0, 1,-100, 100, 0}, /* not used */ | ||
37 | [SOUND_CHANNELS] = {"", 0, 1, 0, 5, 0}, /* not used */ | ||
38 | [SOUND_STEREO_WIDTH] = {"%", 0, 5, 0, 250, 100}, /* not used */ | ||
39 | #ifdef HAVE_RECORDING | ||
40 | [SOUND_LEFT_GAIN] = {"dB", 1, 1,-128, 96, 0}, | ||
41 | [SOUND_RIGHT_GAIN] = {"dB", 1, 1,-128, 96, 0}, | ||
42 | [SOUND_MIC_GAIN] = {"dB", 1, 1,-128, 108, 16}, | ||
43 | #endif | ||
44 | }; | ||
45 | |||
46 | /* convert tenth of dB volume (-600..0) to master volume register value */ | ||
47 | int tenthdb2master(int db) | ||
48 | { | 33 | { |
49 | if (db < -600) | 34 | if (db < -600) |
50 | return 63; | 35 | return 63; |
@@ -229,11 +214,12 @@ void audiohw_set_prescaler(int val) | |||
229 | #endif /* AUDIOHW_HAVE_PRESCALER */ | 214 | #endif /* AUDIOHW_HAVE_PRESCALER */ |
230 | 215 | ||
231 | /** | 216 | /** |
232 | * Sets left and right master volume (1(max) to 62(muted)) | 217 | * Set master volume (1(max) to 62(muted)) |
233 | */ | 218 | */ |
234 | void audiohw_set_master_vol(int vol_l, int vol_r) | 219 | void audiohw_set_volume(int volume) |
235 | { | 220 | { |
236 | uda_regs[UDA_REG_ID_CTRL0] = (vol_l + vol_r) / 2; | 221 | volume = vol_tenthdb2hw(volume) / 2; |
222 | uda_regs[UDA_REG_ID_CTRL0] = volume; | ||
237 | udacodec_write (UDA_REG_DATA0, UDA_DATA_CTRL0 | uda_regs[UDA_REG_ID_CTRL0]); | 223 | udacodec_write (UDA_REG_DATA0, UDA_DATA_CTRL0 | uda_regs[UDA_REG_ID_CTRL0]); |
238 | } | 224 | } |
239 | 225 | ||