Created
June 18, 2013 17:13
-
-
Save AndreiLux/5807343 to your computer and use it in GitHub Desktop.
Equalizer controls for WM5102 sound control
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/sound/soc/codecs/arizona-control.c b/sound/soc/codecs/arizona-control.c | |
index 05614dc..dbd56a4 100644 | |
--- a/sound/soc/codecs/arizona-control.c | |
+++ b/sound/soc/codecs/arizona-control.c | |
@@ -84,6 +84,62 @@ struct arizona_control sound_controls[] = { | |
_control("speaker_volume" , ARIZONA_DAC_DIGITAL_VOLUME_4L, ARIZONA_OUT4L_VOL_MASK, | |
ARIZONA_OUT4L_VOL_SHIFT, ARIZONA_OUT4L_VOL_WIDTH, delta_override ), | |
+ | |
+ /* Master switches */ | |
+ | |
+ _control("eq1_switch", ARIZONA_EQ1_1, ARIZONA_EQ1_ENA_MASK, ARIZONA_EQ1_ENA_SHIFT, ARIZONA_EQ1_ENA_WIDTH, generic_override ), | |
+ _control("eq2_switch", ARIZONA_EQ2_1, ARIZONA_EQ2_ENA_MASK, ARIZONA_EQ2_ENA_SHIFT, ARIZONA_EQ2_ENA_WIDTH, generic_override ), | |
+ _control("eq3_switch", ARIZONA_EQ3_1, ARIZONA_EQ3_ENA_MASK, ARIZONA_EQ3_ENA_SHIFT, ARIZONA_EQ3_ENA_WIDTH, generic_override ), | |
+ _control("eq4_switch", ARIZONA_EQ4_1, ARIZONA_EQ4_ENA_MASK, ARIZONA_EQ4_ENA_SHIFT, ARIZONA_EQ4_ENA_WIDTH, generic_override ), | |
+ | |
+ /* EQ Configurables */ | |
+ | |
+ _control("eq1_band1_gain" , ARIZONA_EQ1_1, ARIZONA_EQ1_B1_GAIN_MASK, ARIZONA_EQ1_B1_GAIN_SHIFT, ARIZONA_EQ1_B1_GAIN_WIDTH, generic_override ), | |
+ _control("eq1_band2_gain" , ARIZONA_EQ1_1, ARIZONA_EQ1_B2_GAIN_MASK, ARIZONA_EQ1_B2_GAIN_SHIFT, ARIZONA_EQ1_B2_GAIN_WIDTH, generic_override ), | |
+ _control("eq1_band3_gain" , ARIZONA_EQ1_1, ARIZONA_EQ1_B3_GAIN_MASK, ARIZONA_EQ1_B3_GAIN_SHIFT, ARIZONA_EQ1_B3_GAIN_WIDTH, generic_override ), | |
+ _control("eq1_band4_gain" , ARIZONA_EQ1_2, ARIZONA_EQ1_B4_GAIN_MASK, ARIZONA_EQ1_B4_GAIN_SHIFT, ARIZONA_EQ1_B4_GAIN_WIDTH, generic_override ), | |
+ _control("eq1_band5_gain" , ARIZONA_EQ1_2, ARIZONA_EQ1_B5_GAIN_MASK, ARIZONA_EQ1_B5_GAIN_SHIFT, ARIZONA_EQ1_B5_GAIN_WIDTH, generic_override ), | |
+ | |
+ _control("eq1_band1_freq_A" , ARIZONA_EQ1_3, ARIZONA_EQ1_B1_A_MASK, ARIZONA_EQ1_B1_A_SHIFT, ARIZONA_EQ1_B1_A_WIDTH, generic_override ), | |
+ _control("eq1_band1_freq_B" , ARIZONA_EQ1_4, ARIZONA_EQ1_B1_B_MASK, ARIZONA_EQ1_B1_B_SHIFT, ARIZONA_EQ1_B1_B_WIDTH, generic_override ), | |
+ _control("eq1_band1_freq_PG" , ARIZONA_EQ1_5, ARIZONA_EQ1_B1_PG_MASK, ARIZONA_EQ1_B1_PG_SHIFT, ARIZONA_EQ1_B1_PG_WIDTH, generic_override ), | |
+ | |
+ _control("eq1_band2_freq_A" , ARIZONA_EQ1_6, ARIZONA_EQ1_B2_A_MASK, ARIZONA_EQ1_B2_A_SHIFT, ARIZONA_EQ1_B2_A_WIDTH, generic_override ), | |
+ _control("eq1_band2_freq_B" , ARIZONA_EQ1_7, ARIZONA_EQ1_B2_B_MASK, ARIZONA_EQ1_B2_B_SHIFT, ARIZONA_EQ1_B2_B_WIDTH, generic_override ), | |
+ _control("eq1_band2_freq_C" , ARIZONA_EQ1_8, ARIZONA_EQ1_B2_C_MASK, ARIZONA_EQ1_B2_C_SHIFT, ARIZONA_EQ1_B2_C_WIDTH, generic_override ), | |
+ _control("eq1_band2_freq_PG" , ARIZONA_EQ1_9, ARIZONA_EQ1_B2_PG_MASK, ARIZONA_EQ1_B2_PG_SHIFT, ARIZONA_EQ1_B2_PG_WIDTH, generic_override ), | |
+ | |
+ _control("eq1_band3_freq_A" , ARIZONA_EQ1_10, ARIZONA_EQ1_B3_A_MASK, ARIZONA_EQ1_B3_A_SHIFT, ARIZONA_EQ1_B3_A_WIDTH, generic_override ), | |
+ _control("eq1_band3_freq_B" , ARIZONA_EQ1_11, ARIZONA_EQ1_B3_B_MASK, ARIZONA_EQ1_B3_B_SHIFT, ARIZONA_EQ1_B3_B_WIDTH, generic_override ), | |
+ _control("eq1_band3_freq_C" , ARIZONA_EQ1_12, ARIZONA_EQ1_B3_C_MASK, ARIZONA_EQ1_B3_C_SHIFT, ARIZONA_EQ1_B3_C_WIDTH, generic_override ), | |
+ _control("eq1_band3_freq_PG" , ARIZONA_EQ1_13, ARIZONA_EQ1_B3_PG_MASK, ARIZONA_EQ1_B3_PG_SHIFT, ARIZONA_EQ1_B3_PG_WIDTH, generic_override ), | |
+ | |
+ _control("eq1_band4_freq_A" , ARIZONA_EQ1_14, ARIZONA_EQ1_B4_A_MASK, ARIZONA_EQ1_B4_A_SHIFT, ARIZONA_EQ1_B4_A_WIDTH, generic_override ), | |
+ _control("eq1_band4_freq_B" , ARIZONA_EQ1_15, ARIZONA_EQ1_B4_B_MASK, ARIZONA_EQ1_B4_B_SHIFT, ARIZONA_EQ1_B4_B_WIDTH, generic_override ), | |
+ _control("eq1_band4_freq_C" , ARIZONA_EQ1_16, ARIZONA_EQ1_B4_C_MASK, ARIZONA_EQ1_B4_C_SHIFT, ARIZONA_EQ1_B4_C_WIDTH, generic_override ), | |
+ _control("eq1_band4_freq_PG" , ARIZONA_EQ1_17, ARIZONA_EQ1_B4_PG_MASK, ARIZONA_EQ1_B4_PG_SHIFT, ARIZONA_EQ1_B4_PG_WIDTH, generic_override ), | |
+ | |
+ _control("eq1_band5_freq_A" , ARIZONA_EQ1_18, ARIZONA_EQ1_B5_A_MASK, ARIZONA_EQ1_B5_A_SHIFT, ARIZONA_EQ1_B5_A_WIDTH, generic_override ), | |
+ _control("eq1_band5_freq_B" , ARIZONA_EQ1_19, ARIZONA_EQ1_B5_B_MASK, ARIZONA_EQ1_B5_B_SHIFT, ARIZONA_EQ1_B5_B_WIDTH, generic_override ), | |
+ _control("eq1_band5_freq_PG" , ARIZONA_EQ1_20, ARIZONA_EQ1_B5_PG_MASK, ARIZONA_EQ1_B5_PG_SHIFT, ARIZONA_EQ1_B5_PG_WIDTH, generic_override ), | |
+ | |
+ _control("eq2_band1_gain" , ARIZONA_EQ2_1, ARIZONA_EQ2_B1_GAIN_MASK, ARIZONA_EQ2_B1_GAIN_SHIFT, ARIZONA_EQ2_B1_GAIN_WIDTH, generic_override ), | |
+ _control("eq2_band2_gain" , ARIZONA_EQ2_1, ARIZONA_EQ2_B2_GAIN_MASK, ARIZONA_EQ2_B2_GAIN_SHIFT, ARIZONA_EQ2_B2_GAIN_WIDTH, generic_override ), | |
+ _control("eq2_band3_gain" , ARIZONA_EQ2_1, ARIZONA_EQ2_B3_GAIN_MASK, ARIZONA_EQ2_B3_GAIN_SHIFT, ARIZONA_EQ2_B3_GAIN_WIDTH, generic_override ), | |
+ _control("eq2_band4_gain" , ARIZONA_EQ2_2, ARIZONA_EQ2_B4_GAIN_MASK, ARIZONA_EQ2_B4_GAIN_SHIFT, ARIZONA_EQ2_B4_GAIN_WIDTH, generic_override ), | |
+ _control("eq2_band5_gain" , ARIZONA_EQ2_2, ARIZONA_EQ2_B5_GAIN_MASK, ARIZONA_EQ2_B5_GAIN_SHIFT, ARIZONA_EQ2_B5_GAIN_WIDTH, generic_override ), | |
+ | |
+ _control("eq3_band1_gain" , ARIZONA_EQ3_1, ARIZONA_EQ3_B1_GAIN_MASK, ARIZONA_EQ3_B1_GAIN_SHIFT, ARIZONA_EQ3_B1_GAIN_WIDTH, generic_override ), | |
+ _control("eq3_band2_gain" , ARIZONA_EQ3_1, ARIZONA_EQ3_B2_GAIN_MASK, ARIZONA_EQ3_B2_GAIN_SHIFT, ARIZONA_EQ3_B2_GAIN_WIDTH, generic_override ), | |
+ _control("eq3_band3_gain" , ARIZONA_EQ3_1, ARIZONA_EQ3_B3_GAIN_MASK, ARIZONA_EQ3_B3_GAIN_SHIFT, ARIZONA_EQ3_B3_GAIN_WIDTH, generic_override ), | |
+ _control("eq3_band4_gain" , ARIZONA_EQ3_2, ARIZONA_EQ3_B4_GAIN_MASK, ARIZONA_EQ3_B4_GAIN_SHIFT, ARIZONA_EQ3_B4_GAIN_WIDTH, generic_override ), | |
+ _control("eq3_band5_gain" , ARIZONA_EQ3_2, ARIZONA_EQ3_B5_GAIN_MASK, ARIZONA_EQ3_B5_GAIN_SHIFT, ARIZONA_EQ3_B5_GAIN_WIDTH, generic_override ), | |
+ | |
+ _control("eq4_band1_gain" , ARIZONA_EQ4_1, ARIZONA_EQ4_B1_GAIN_MASK, ARIZONA_EQ4_B1_GAIN_SHIFT, ARIZONA_EQ4_B1_GAIN_WIDTH, generic_override ), | |
+ _control("eq4_band2_gain" , ARIZONA_EQ4_1, ARIZONA_EQ4_B2_GAIN_MASK, ARIZONA_EQ4_B2_GAIN_SHIFT, ARIZONA_EQ4_B2_GAIN_WIDTH, generic_override ), | |
+ _control("eq4_band3_gain" , ARIZONA_EQ4_1, ARIZONA_EQ4_B3_GAIN_MASK, ARIZONA_EQ4_B3_GAIN_SHIFT, ARIZONA_EQ4_B3_GAIN_WIDTH, generic_override ), | |
+ _control("eq4_band4_gain" , ARIZONA_EQ4_2, ARIZONA_EQ4_B4_GAIN_MASK, ARIZONA_EQ4_B4_GAIN_SHIFT, ARIZONA_EQ4_B4_GAIN_WIDTH, generic_override ), | |
+ _control("eq4_band5_gain" , ARIZONA_EQ4_2, ARIZONA_EQ4_B5_GAIN_MASK, ARIZONA_EQ4_B5_GAIN_SHIFT, ARIZONA_EQ4_B5_GAIN_WIDTH, generic_override ), | |
}; | |
void arizona_control_regmap_hook(struct regmap *pmap, unsigned int reg, | |
@@ -135,6 +191,8 @@ static ssize_t show_arizona_property(struct device *dev, | |
if (ctl->value == -1) | |
ctl->ctlval = ctl->value = (codec->read(codec, ctl->reg) & ctl->mask) >> ctl->shift; | |
+ return sprintf(buf, "%d %d %u", ctl->value, (codec->read(codec, ctl->reg) & ctl->mask) >> ctl->shift, ctl->ctlval); | |
+ | |
return sprintf(buf, "%d", ctl->value); | |
}; | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment