Загрузка данных


        case AUDIO_PROPERTY_INPUT_VOLUME:
            /* Map linear volume (0-100%) to SGTL5000 Mic Preamp Gain (0x0024) */
            /* 0x0 = 0dB, 0x1 = +20dB, 0x2 = +30dB, 0x3 = +40dB */
            {
                uint16_t mic_gain_bits;

                if (val.vol < 25) {
                    mic_gain_bits = 0x0; /* 0 dB */
                } else if (val.vol < 50) {
                    mic_gain_bits = 0x1; /* +20 dB */
                } else if (val.vol < 75) {
                    mic_gain_bits = 0x2; /* +30 dB */
                } else {
                    mic_gain_bits = 0x3; /* +40 dB */
                }

                /* Address 0x0024: CHIP_MIC_CTRL. Mask 0x0003 affects only PREAMP_GAIN */
                ret = sgtl5000_update_reg(dev, 0x0024, 0x0003, mic_gain_bits);
            }
            break;