Merge tag 'v3.13-rc1' into asoc-arizona
Linux 3.13-rc1
This commit is contained in:
@@ -37,6 +37,47 @@ struct wm5110_priv {
|
||||
struct arizona_fll fll[2];
|
||||
};
|
||||
|
||||
static const struct reg_default wm5110_sysclk_revd_patch[] = {
|
||||
{ 0x3093, 0x1001 },
|
||||
{ 0x30E3, 0x1301 },
|
||||
{ 0x3133, 0x1201 },
|
||||
{ 0x3183, 0x1501 },
|
||||
{ 0x31D3, 0x1401 },
|
||||
};
|
||||
|
||||
static int wm5110_sysclk_ev(struct snd_soc_dapm_widget *w,
|
||||
struct snd_kcontrol *kcontrol, int event)
|
||||
{
|
||||
struct snd_soc_codec *codec = w->codec;
|
||||
struct arizona *arizona = dev_get_drvdata(codec->dev->parent);
|
||||
struct regmap *regmap = codec->control_data;
|
||||
const struct reg_default *patch = NULL;
|
||||
int i, patch_size;
|
||||
|
||||
switch (arizona->rev) {
|
||||
case 3:
|
||||
patch = wm5110_sysclk_revd_patch;
|
||||
patch_size = ARRAY_SIZE(wm5110_sysclk_revd_patch);
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (event) {
|
||||
case SND_SOC_DAPM_POST_PMU:
|
||||
if (patch)
|
||||
for (i = 0; i < patch_size; i++)
|
||||
regmap_write(regmap, patch[i].reg,
|
||||
patch[i].def);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static DECLARE_TLV_DB_SCALE(ana_tlv, 0, 100, 0);
|
||||
static DECLARE_TLV_DB_SCALE(eq_tlv, -1200, 100, 0);
|
||||
static DECLARE_TLV_DB_SCALE(digital_tlv, -6400, 50, 0);
|
||||
@@ -120,13 +161,13 @@ ARIZONA_MIXER_CONTROLS("EQ2", ARIZONA_EQ2MIX_INPUT_1_SOURCE),
|
||||
ARIZONA_MIXER_CONTROLS("EQ3", ARIZONA_EQ3MIX_INPUT_1_SOURCE),
|
||||
ARIZONA_MIXER_CONTROLS("EQ4", ARIZONA_EQ4MIX_INPUT_1_SOURCE),
|
||||
|
||||
SND_SOC_BYTES_MASK("EQ1 Coefficeints", ARIZONA_EQ1_1, 21,
|
||||
SND_SOC_BYTES_MASK("EQ1 Coefficients", ARIZONA_EQ1_1, 21,
|
||||
ARIZONA_EQ1_ENA_MASK),
|
||||
SND_SOC_BYTES_MASK("EQ2 Coefficeints", ARIZONA_EQ2_1, 21,
|
||||
SND_SOC_BYTES_MASK("EQ2 Coefficients", ARIZONA_EQ2_1, 21,
|
||||
ARIZONA_EQ2_ENA_MASK),
|
||||
SND_SOC_BYTES_MASK("EQ3 Coefficeints", ARIZONA_EQ3_1, 21,
|
||||
SND_SOC_BYTES_MASK("EQ3 Coefficients", ARIZONA_EQ3_1, 21,
|
||||
ARIZONA_EQ3_ENA_MASK),
|
||||
SND_SOC_BYTES_MASK("EQ4 Coefficeints", ARIZONA_EQ4_1, 21,
|
||||
SND_SOC_BYTES_MASK("EQ4 Coefficients", ARIZONA_EQ4_1, 21,
|
||||
ARIZONA_EQ4_ENA_MASK),
|
||||
|
||||
SOC_SINGLE_TLV("EQ1 B1 Volume", ARIZONA_EQ1_1, ARIZONA_EQ1_B1_GAIN_SHIFT,
|
||||
@@ -427,7 +468,7 @@ static const struct snd_kcontrol_new wm5110_aec_loopback_mux =
|
||||
|
||||
static const struct snd_soc_dapm_widget wm5110_dapm_widgets[] = {
|
||||
SND_SOC_DAPM_SUPPLY("SYSCLK", ARIZONA_SYSTEM_CLOCK_1, ARIZONA_SYSCLK_ENA_SHIFT,
|
||||
0, NULL, 0),
|
||||
0, wm5110_sysclk_ev, SND_SOC_DAPM_POST_PMU),
|
||||
SND_SOC_DAPM_SUPPLY("ASYNCCLK", ARIZONA_ASYNC_CLOCK_1,
|
||||
ARIZONA_ASYNC_CLK_ENA_SHIFT, 0, NULL, 0),
|
||||
SND_SOC_DAPM_SUPPLY("OPCLK", ARIZONA_OUTPUT_SYSTEM_CLOCK,
|
||||
@@ -1046,24 +1087,36 @@ static const struct snd_soc_dapm_route wm5110_dapm_routes[] = {
|
||||
ARIZONA_MUX_ROUTES("ASRC2L", "ASRC2L"),
|
||||
ARIZONA_MUX_ROUTES("ASRC2R", "ASRC2R"),
|
||||
|
||||
{ "AEC Loopback", "HPOUT1L", "OUT1L" },
|
||||
{ "AEC Loopback", "HPOUT1R", "OUT1R" },
|
||||
{ "HPOUT1L", NULL, "OUT1L" },
|
||||
{ "HPOUT1R", NULL, "OUT1R" },
|
||||
|
||||
{ "AEC Loopback", "HPOUT2L", "OUT2L" },
|
||||
{ "AEC Loopback", "HPOUT2R", "OUT2R" },
|
||||
{ "HPOUT2L", NULL, "OUT2L" },
|
||||
{ "HPOUT2R", NULL, "OUT2R" },
|
||||
|
||||
{ "AEC Loopback", "HPOUT3L", "OUT3L" },
|
||||
{ "AEC Loopback", "HPOUT3R", "OUT3R" },
|
||||
{ "HPOUT3L", NULL, "OUT3L" },
|
||||
{ "HPOUT3R", NULL, "OUT3L" },
|
||||
|
||||
{ "AEC Loopback", "SPKOUTL", "OUT4L" },
|
||||
{ "SPKOUTLN", NULL, "OUT4L" },
|
||||
{ "SPKOUTLP", NULL, "OUT4L" },
|
||||
|
||||
{ "AEC Loopback", "SPKOUTR", "OUT4R" },
|
||||
{ "SPKOUTRN", NULL, "OUT4R" },
|
||||
{ "SPKOUTRP", NULL, "OUT4R" },
|
||||
|
||||
{ "AEC Loopback", "SPKDAT1L", "OUT5L" },
|
||||
{ "AEC Loopback", "SPKDAT1R", "OUT5R" },
|
||||
{ "SPKDAT1L", NULL, "OUT5L" },
|
||||
{ "SPKDAT1R", NULL, "OUT5R" },
|
||||
|
||||
{ "AEC Loopback", "SPKDAT2L", "OUT6L" },
|
||||
{ "AEC Loopback", "SPKDAT2R", "OUT6R" },
|
||||
{ "SPKDAT2L", NULL, "OUT6L" },
|
||||
{ "SPKDAT2R", NULL, "OUT6R" },
|
||||
|
||||
|
Reference in New Issue
Block a user