Loading sound/soc/codecs/max98088.c +32 −0 Original line number Diff line number Diff line Loading @@ -1566,6 +1566,36 @@ static int max98088_dai2_set_fmt(struct snd_soc_dai *codec_dai, return 0; } static int max98088_dai1_digital_mute(struct snd_soc_dai *codec_dai, int mute) { struct snd_soc_codec *codec = codec_dai->codec; int reg; if (mute) reg = M98088_DAI_MUTE; else reg = 0; snd_soc_update_bits(codec, M98088_REG_2F_LVL_DAI1_PLAY, M98088_DAI_MUTE_MASK, reg); return 0; } static int max98088_dai2_digital_mute(struct snd_soc_dai *codec_dai, int mute) { struct snd_soc_codec *codec = codec_dai->codec; int reg; if (mute) reg = M98088_DAI_MUTE; else reg = 0; snd_soc_update_bits(codec, M98088_REG_31_LVL_DAI2_PLAY, M98088_DAI_MUTE_MASK, reg); return 0; } static void max98088_sync_cache(struct snd_soc_codec *codec) { u16 *reg_cache = codec->reg_cache; Loading Loading @@ -1627,12 +1657,14 @@ static struct snd_soc_dai_ops max98088_dai1_ops = { .set_sysclk = max98088_dai_set_sysclk, .set_fmt = max98088_dai1_set_fmt, .hw_params = max98088_dai1_hw_params, .digital_mute = max98088_dai1_digital_mute, }; static struct snd_soc_dai_ops max98088_dai2_ops = { .set_sysclk = max98088_dai_set_sysclk, .set_fmt = max98088_dai2_set_fmt, .hw_params = max98088_dai2_hw_params, .digital_mute = max98088_dai2_digital_mute, }; static struct snd_soc_dai_driver max98088_dai[] = { Loading sound/soc/codecs/max98088.h +13 −0 Original line number Diff line number Diff line Loading @@ -133,6 +133,19 @@ #define M98088_REC_LINEMODE (1<<7) #define M98088_REC_LINEMODE_MASK (1<<7) /* M98088_REG_2D_MIX_SPK_CNTL */ #define M98088_MIX_SPKR_GAIN_MASK (3<<2) #define M98088_MIX_SPKR_GAIN_SHIFT 2 #define M98088_MIX_SPKL_GAIN_MASK (3<<0) #define M98088_MIX_SPKL_GAIN_SHIFT 0 /* M98088_REG_2F_LVL_DAI1_PLAY, M98088_REG_31_LVL_DAI2_PLAY */ #define M98088_DAI_MUTE (1<<7) #define M98088_DAI_MUTE_MASK (1<<7) #define M98088_DAI_VOICE_GAIN_MASK (3<<4) #define M98088_DAI_ATTENUATION_MASK (0xF<<0) #define M98088_DAI_ATTENUATION_SHIFT 0 /* M98088_REG_35_LVL_MIC1, M98088_REG_36_LVL_MIC2 */ #define M98088_MICPRE_MASK (3<<5) #define M98088_MICPRE_SHIFT 5 Loading Loading
sound/soc/codecs/max98088.c +32 −0 Original line number Diff line number Diff line Loading @@ -1566,6 +1566,36 @@ static int max98088_dai2_set_fmt(struct snd_soc_dai *codec_dai, return 0; } static int max98088_dai1_digital_mute(struct snd_soc_dai *codec_dai, int mute) { struct snd_soc_codec *codec = codec_dai->codec; int reg; if (mute) reg = M98088_DAI_MUTE; else reg = 0; snd_soc_update_bits(codec, M98088_REG_2F_LVL_DAI1_PLAY, M98088_DAI_MUTE_MASK, reg); return 0; } static int max98088_dai2_digital_mute(struct snd_soc_dai *codec_dai, int mute) { struct snd_soc_codec *codec = codec_dai->codec; int reg; if (mute) reg = M98088_DAI_MUTE; else reg = 0; snd_soc_update_bits(codec, M98088_REG_31_LVL_DAI2_PLAY, M98088_DAI_MUTE_MASK, reg); return 0; } static void max98088_sync_cache(struct snd_soc_codec *codec) { u16 *reg_cache = codec->reg_cache; Loading Loading @@ -1627,12 +1657,14 @@ static struct snd_soc_dai_ops max98088_dai1_ops = { .set_sysclk = max98088_dai_set_sysclk, .set_fmt = max98088_dai1_set_fmt, .hw_params = max98088_dai1_hw_params, .digital_mute = max98088_dai1_digital_mute, }; static struct snd_soc_dai_ops max98088_dai2_ops = { .set_sysclk = max98088_dai_set_sysclk, .set_fmt = max98088_dai2_set_fmt, .hw_params = max98088_dai2_hw_params, .digital_mute = max98088_dai2_digital_mute, }; static struct snd_soc_dai_driver max98088_dai[] = { Loading
sound/soc/codecs/max98088.h +13 −0 Original line number Diff line number Diff line Loading @@ -133,6 +133,19 @@ #define M98088_REC_LINEMODE (1<<7) #define M98088_REC_LINEMODE_MASK (1<<7) /* M98088_REG_2D_MIX_SPK_CNTL */ #define M98088_MIX_SPKR_GAIN_MASK (3<<2) #define M98088_MIX_SPKR_GAIN_SHIFT 2 #define M98088_MIX_SPKL_GAIN_MASK (3<<0) #define M98088_MIX_SPKL_GAIN_SHIFT 0 /* M98088_REG_2F_LVL_DAI1_PLAY, M98088_REG_31_LVL_DAI2_PLAY */ #define M98088_DAI_MUTE (1<<7) #define M98088_DAI_MUTE_MASK (1<<7) #define M98088_DAI_VOICE_GAIN_MASK (3<<4) #define M98088_DAI_ATTENUATION_MASK (0xF<<0) #define M98088_DAI_ATTENUATION_SHIFT 0 /* M98088_REG_35_LVL_MIC1, M98088_REG_36_LVL_MIC2 */ #define M98088_MICPRE_MASK (3<<5) #define M98088_MICPRE_SHIFT 5 Loading