diff options
Diffstat (limited to 'firmware/sound.c')
-rw-r--r-- | firmware/sound.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/firmware/sound.c b/firmware/sound.c index 332cca02e8..9ab545f51d 100644 --- a/firmware/sound.c +++ b/firmware/sound.c | |||
@@ -84,6 +84,12 @@ static const struct sound_settings_info sound_settings_table[] = { | |||
84 | [SOUND_LEFT_GAIN] = {"dB", 1, 1, 0, 15, 8, NULL}, | 84 | [SOUND_LEFT_GAIN] = {"dB", 1, 1, 0, 15, 8, NULL}, |
85 | [SOUND_RIGHT_GAIN] = {"dB", 1, 1, 0, 15, 8, NULL}, | 85 | [SOUND_RIGHT_GAIN] = {"dB", 1, 1, 0, 15, 8, NULL}, |
86 | [SOUND_MIC_GAIN] = {"dB", 1, 1, 0, 15, 2, NULL}, | 86 | [SOUND_MIC_GAIN] = {"dB", 1, 1, 0, 15, 2, NULL}, |
87 | #elif defined(HAVE_UDA1380) | ||
88 | [SOUND_LEFT_GAIN] = {"dB", 1, 1, 0, 8, 8, NULL}, | ||
89 | [SOUND_RIGHT_GAIN] = {"dB", 1, 1, 0, 8, 8, NULL}, | ||
90 | [SOUND_MIC_GAIN] = {"dB", 1, 1, 0, 15, 2, NULL}, | ||
91 | [SOUND_ADC_LEFT_GAIN] = {"dB", 1, 1,-128, 48, 0, NULL}, | ||
92 | [SOUND_ADC_RIGHT_GAIN]= {"dB", 1, 1,-128, 48, 0, NULL}, | ||
87 | #endif | 93 | #endif |
88 | }; | 94 | }; |
89 | 95 | ||
@@ -668,6 +674,30 @@ int sound_val2phys(int setting, int value) | |||
668 | break; | 674 | break; |
669 | } | 675 | } |
670 | return result; | 676 | return result; |
677 | #elif defined(HAVE_UDA1380) | ||
678 | int result = 0; | ||
679 | |||
680 | switch(setting) | ||
681 | { | ||
682 | case SOUND_LEFT_GAIN: | ||
683 | case SOUND_RIGHT_GAIN: | ||
684 | result = value * 30; /* (24/8) *10 */ | ||
685 | break; | ||
686 | |||
687 | case SOUND_MIC_GAIN: | ||
688 | result = value * 20; /* (30/15) *10 */ | ||
689 | break; | ||
690 | |||
691 | case SOUND_ADC_LEFT_GAIN: | ||
692 | case SOUND_ADC_RIGHT_GAIN: | ||
693 | result = value * 5; /* (1/2) *10 */ | ||
694 | break; | ||
695 | |||
696 | default: | ||
697 | result = value; | ||
698 | break; | ||
699 | } | ||
700 | return result; | ||
671 | #else | 701 | #else |
672 | (void)setting; | 702 | (void)setting; |
673 | return value; | 703 | return value; |