|
@@ -118,7 +118,6 @@ WM8996_REGULATOR_EVENT(1)
|
|
WM8996_REGULATOR_EVENT(2)
|
|
WM8996_REGULATOR_EVENT(2)
|
|
|
|
|
|
static struct reg_default wm8996_reg[] = {
|
|
static struct reg_default wm8996_reg[] = {
|
|
- { WM8996_SOFTWARE_RESET, 0x8996 },
|
|
|
|
{ WM8996_POWER_MANAGEMENT_1, 0x0 },
|
|
{ WM8996_POWER_MANAGEMENT_1, 0x0 },
|
|
{ WM8996_POWER_MANAGEMENT_2, 0x0 },
|
|
{ WM8996_POWER_MANAGEMENT_2, 0x0 },
|
|
{ WM8996_POWER_MANAGEMENT_3, 0x0 },
|
|
{ WM8996_POWER_MANAGEMENT_3, 0x0 },
|
|
@@ -153,7 +152,6 @@ static struct reg_default wm8996_reg[] = {
|
|
{ WM8996_CHARGE_PUMP_1, 0x1f25 },
|
|
{ WM8996_CHARGE_PUMP_1, 0x1f25 },
|
|
{ WM8996_CHARGE_PUMP_2, 0xab19 },
|
|
{ WM8996_CHARGE_PUMP_2, 0xab19 },
|
|
{ WM8996_DC_SERVO_1, 0x0 },
|
|
{ WM8996_DC_SERVO_1, 0x0 },
|
|
- { WM8996_DC_SERVO_2, 0x0 },
|
|
|
|
{ WM8996_DC_SERVO_3, 0x0 },
|
|
{ WM8996_DC_SERVO_3, 0x0 },
|
|
{ WM8996_DC_SERVO_5, 0x2a2a },
|
|
{ WM8996_DC_SERVO_5, 0x2a2a },
|
|
{ WM8996_DC_SERVO_6, 0x0 },
|
|
{ WM8996_DC_SERVO_6, 0x0 },
|
|
@@ -892,8 +890,8 @@ static void wm8996_seq_notifier(struct snd_soc_dapm_context *dapm,
|
|
val = 0;
|
|
val = 0;
|
|
mask = 0;
|
|
mask = 0;
|
|
if (wm8996->hpout_pending & HPOUT1L) {
|
|
if (wm8996->hpout_pending & HPOUT1L) {
|
|
- val |= WM8996_HPOUT1L_RMV_SHORT;
|
|
|
|
- mask |= WM8996_HPOUT1L_RMV_SHORT;
|
|
|
|
|
|
+ val |= WM8996_HPOUT1L_RMV_SHORT | WM8996_HPOUT1L_OUTP;
|
|
|
|
+ mask |= WM8996_HPOUT1L_RMV_SHORT | WM8996_HPOUT1L_OUTP;
|
|
} else {
|
|
} else {
|
|
mask |= WM8996_HPOUT1L_RMV_SHORT |
|
|
mask |= WM8996_HPOUT1L_RMV_SHORT |
|
|
WM8996_HPOUT1L_OUTP |
|
|
WM8996_HPOUT1L_OUTP |
|
|
@@ -901,8 +899,8 @@ static void wm8996_seq_notifier(struct snd_soc_dapm_context *dapm,
|
|
}
|
|
}
|
|
|
|
|
|
if (wm8996->hpout_pending & HPOUT1R) {
|
|
if (wm8996->hpout_pending & HPOUT1R) {
|
|
- val |= WM8996_HPOUT1R_RMV_SHORT;
|
|
|
|
- mask |= WM8996_HPOUT1R_RMV_SHORT;
|
|
|
|
|
|
+ val |= WM8996_HPOUT1R_RMV_SHORT | WM8996_HPOUT1R_OUTP;
|
|
|
|
+ mask |= WM8996_HPOUT1R_RMV_SHORT | WM8996_HPOUT1R_OUTP;
|
|
} else {
|
|
} else {
|
|
mask |= WM8996_HPOUT1R_RMV_SHORT |
|
|
mask |= WM8996_HPOUT1R_RMV_SHORT |
|
|
WM8996_HPOUT1R_OUTP |
|
|
WM8996_HPOUT1R_OUTP |
|
|
@@ -914,8 +912,8 @@ static void wm8996_seq_notifier(struct snd_soc_dapm_context *dapm,
|
|
val = 0;
|
|
val = 0;
|
|
mask = 0;
|
|
mask = 0;
|
|
if (wm8996->hpout_pending & HPOUT2L) {
|
|
if (wm8996->hpout_pending & HPOUT2L) {
|
|
- val |= WM8996_HPOUT2L_RMV_SHORT;
|
|
|
|
- mask |= WM8996_HPOUT2L_RMV_SHORT;
|
|
|
|
|
|
+ val |= WM8996_HPOUT2L_RMV_SHORT | WM8996_HPOUT2L_OUTP;
|
|
|
|
+ mask |= WM8996_HPOUT2L_RMV_SHORT | WM8996_HPOUT2L_OUTP;
|
|
} else {
|
|
} else {
|
|
mask |= WM8996_HPOUT2L_RMV_SHORT |
|
|
mask |= WM8996_HPOUT2L_RMV_SHORT |
|
|
WM8996_HPOUT2L_OUTP |
|
|
WM8996_HPOUT2L_OUTP |
|
|
@@ -923,8 +921,8 @@ static void wm8996_seq_notifier(struct snd_soc_dapm_context *dapm,
|
|
}
|
|
}
|
|
|
|
|
|
if (wm8996->hpout_pending & HPOUT2R) {
|
|
if (wm8996->hpout_pending & HPOUT2R) {
|
|
- val |= WM8996_HPOUT2R_RMV_SHORT;
|
|
|
|
- mask |= WM8996_HPOUT2R_RMV_SHORT;
|
|
|
|
|
|
+ val |= WM8996_HPOUT2R_RMV_SHORT | WM8996_HPOUT2R_OUTP;
|
|
|
|
+ mask |= WM8996_HPOUT2R_RMV_SHORT | WM8996_HPOUT2R_OUTP;
|
|
} else {
|
|
} else {
|
|
mask |= WM8996_HPOUT2R_RMV_SHORT |
|
|
mask |= WM8996_HPOUT2R_RMV_SHORT |
|
|
WM8996_HPOUT2R_OUTP |
|
|
WM8996_HPOUT2R_OUTP |
|
|
@@ -1216,7 +1214,6 @@ SND_SOC_DAPM_PGA_S("HPOUT2L PGA", 0, WM8996_POWER_MANAGEMENT_1, 7, 0, NULL, 0),
|
|
SND_SOC_DAPM_PGA_S("HPOUT2L_DLY", 1, WM8996_ANALOGUE_HP_2, 5, 0, NULL, 0),
|
|
SND_SOC_DAPM_PGA_S("HPOUT2L_DLY", 1, WM8996_ANALOGUE_HP_2, 5, 0, NULL, 0),
|
|
SND_SOC_DAPM_PGA_S("HPOUT2L_DCS", 2, WM8996_DC_SERVO_1, 2, 0, dcs_start,
|
|
SND_SOC_DAPM_PGA_S("HPOUT2L_DCS", 2, WM8996_DC_SERVO_1, 2, 0, dcs_start,
|
|
SND_SOC_DAPM_POST_PMU),
|
|
SND_SOC_DAPM_POST_PMU),
|
|
-SND_SOC_DAPM_PGA_S("HPOUT2L_OUTP", 3, WM8996_ANALOGUE_HP_2, 6, 0, NULL, 0),
|
|
|
|
SND_SOC_DAPM_PGA_S("HPOUT2L_RMV_SHORT", 3, SND_SOC_NOPM, HPOUT2L, 0,
|
|
SND_SOC_DAPM_PGA_S("HPOUT2L_RMV_SHORT", 3, SND_SOC_NOPM, HPOUT2L, 0,
|
|
rmv_short_event,
|
|
rmv_short_event,
|
|
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_PRE_PMD),
|
|
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_PRE_PMD),
|
|
@@ -1225,7 +1222,6 @@ SND_SOC_DAPM_PGA_S("HPOUT2R PGA", 0, WM8996_POWER_MANAGEMENT_1, 6, 0,NULL, 0),
|
|
SND_SOC_DAPM_PGA_S("HPOUT2R_DLY", 1, WM8996_ANALOGUE_HP_2, 1, 0, NULL, 0),
|
|
SND_SOC_DAPM_PGA_S("HPOUT2R_DLY", 1, WM8996_ANALOGUE_HP_2, 1, 0, NULL, 0),
|
|
SND_SOC_DAPM_PGA_S("HPOUT2R_DCS", 2, WM8996_DC_SERVO_1, 3, 0, dcs_start,
|
|
SND_SOC_DAPM_PGA_S("HPOUT2R_DCS", 2, WM8996_DC_SERVO_1, 3, 0, dcs_start,
|
|
SND_SOC_DAPM_POST_PMU),
|
|
SND_SOC_DAPM_POST_PMU),
|
|
-SND_SOC_DAPM_PGA_S("HPOUT2R_OUTP", 3, WM8996_ANALOGUE_HP_2, 2, 0, NULL, 0),
|
|
|
|
SND_SOC_DAPM_PGA_S("HPOUT2R_RMV_SHORT", 3, SND_SOC_NOPM, HPOUT2R, 0,
|
|
SND_SOC_DAPM_PGA_S("HPOUT2R_RMV_SHORT", 3, SND_SOC_NOPM, HPOUT2R, 0,
|
|
rmv_short_event,
|
|
rmv_short_event,
|
|
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_PRE_PMD),
|
|
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_PRE_PMD),
|
|
@@ -1234,7 +1230,6 @@ SND_SOC_DAPM_PGA_S("HPOUT1L PGA", 0, WM8996_POWER_MANAGEMENT_1, 5, 0, NULL, 0),
|
|
SND_SOC_DAPM_PGA_S("HPOUT1L_DLY", 1, WM8996_ANALOGUE_HP_1, 5, 0, NULL, 0),
|
|
SND_SOC_DAPM_PGA_S("HPOUT1L_DLY", 1, WM8996_ANALOGUE_HP_1, 5, 0, NULL, 0),
|
|
SND_SOC_DAPM_PGA_S("HPOUT1L_DCS", 2, WM8996_DC_SERVO_1, 0, 0, dcs_start,
|
|
SND_SOC_DAPM_PGA_S("HPOUT1L_DCS", 2, WM8996_DC_SERVO_1, 0, 0, dcs_start,
|
|
SND_SOC_DAPM_POST_PMU),
|
|
SND_SOC_DAPM_POST_PMU),
|
|
-SND_SOC_DAPM_PGA_S("HPOUT1L_OUTP", 3, WM8996_ANALOGUE_HP_1, 6, 0, NULL, 0),
|
|
|
|
SND_SOC_DAPM_PGA_S("HPOUT1L_RMV_SHORT", 3, SND_SOC_NOPM, HPOUT1L, 0,
|
|
SND_SOC_DAPM_PGA_S("HPOUT1L_RMV_SHORT", 3, SND_SOC_NOPM, HPOUT1L, 0,
|
|
rmv_short_event,
|
|
rmv_short_event,
|
|
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_PRE_PMD),
|
|
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_PRE_PMD),
|
|
@@ -1243,7 +1238,6 @@ SND_SOC_DAPM_PGA_S("HPOUT1R PGA", 0, WM8996_POWER_MANAGEMENT_1, 4, 0, NULL, 0),
|
|
SND_SOC_DAPM_PGA_S("HPOUT1R_DLY", 1, WM8996_ANALOGUE_HP_1, 1, 0, NULL, 0),
|
|
SND_SOC_DAPM_PGA_S("HPOUT1R_DLY", 1, WM8996_ANALOGUE_HP_1, 1, 0, NULL, 0),
|
|
SND_SOC_DAPM_PGA_S("HPOUT1R_DCS", 2, WM8996_DC_SERVO_1, 1, 0, dcs_start,
|
|
SND_SOC_DAPM_PGA_S("HPOUT1R_DCS", 2, WM8996_DC_SERVO_1, 1, 0, dcs_start,
|
|
SND_SOC_DAPM_POST_PMU),
|
|
SND_SOC_DAPM_POST_PMU),
|
|
-SND_SOC_DAPM_PGA_S("HPOUT1R_OUTP", 3, WM8996_ANALOGUE_HP_1, 2, 0, NULL, 0),
|
|
|
|
SND_SOC_DAPM_PGA_S("HPOUT1R_RMV_SHORT", 3, SND_SOC_NOPM, HPOUT1R, 0,
|
|
SND_SOC_DAPM_PGA_S("HPOUT1R_RMV_SHORT", 3, SND_SOC_NOPM, HPOUT1R, 0,
|
|
rmv_short_event,
|
|
rmv_short_event,
|
|
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_PRE_PMD),
|
|
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_PRE_PMD),
|
|
@@ -1436,32 +1430,28 @@ static const struct snd_soc_dapm_route wm8996_dapm_routes[] = {
|
|
{ "HPOUT2L PGA", NULL, "DAC2L" },
|
|
{ "HPOUT2L PGA", NULL, "DAC2L" },
|
|
{ "HPOUT2L_DLY", NULL, "HPOUT2L PGA" },
|
|
{ "HPOUT2L_DLY", NULL, "HPOUT2L PGA" },
|
|
{ "HPOUT2L_DCS", NULL, "HPOUT2L_DLY" },
|
|
{ "HPOUT2L_DCS", NULL, "HPOUT2L_DLY" },
|
|
- { "HPOUT2L_OUTP", NULL, "HPOUT2L_DCS" },
|
|
|
|
- { "HPOUT2L_RMV_SHORT", NULL, "HPOUT2L_OUTP" },
|
|
|
|
|
|
+ { "HPOUT2L_RMV_SHORT", NULL, "HPOUT2L_DCS" },
|
|
|
|
|
|
{ "HPOUT2R PGA", NULL, "Charge Pump" },
|
|
{ "HPOUT2R PGA", NULL, "Charge Pump" },
|
|
{ "HPOUT2R PGA", NULL, "Bandgap" },
|
|
{ "HPOUT2R PGA", NULL, "Bandgap" },
|
|
{ "HPOUT2R PGA", NULL, "DAC2R" },
|
|
{ "HPOUT2R PGA", NULL, "DAC2R" },
|
|
{ "HPOUT2R_DLY", NULL, "HPOUT2R PGA" },
|
|
{ "HPOUT2R_DLY", NULL, "HPOUT2R PGA" },
|
|
{ "HPOUT2R_DCS", NULL, "HPOUT2R_DLY" },
|
|
{ "HPOUT2R_DCS", NULL, "HPOUT2R_DLY" },
|
|
- { "HPOUT2R_OUTP", NULL, "HPOUT2R_DCS" },
|
|
|
|
- { "HPOUT2R_RMV_SHORT", NULL, "HPOUT2R_OUTP" },
|
|
|
|
|
|
+ { "HPOUT2R_RMV_SHORT", NULL, "HPOUT2R_DCS" },
|
|
|
|
|
|
{ "HPOUT1L PGA", NULL, "Charge Pump" },
|
|
{ "HPOUT1L PGA", NULL, "Charge Pump" },
|
|
{ "HPOUT1L PGA", NULL, "Bandgap" },
|
|
{ "HPOUT1L PGA", NULL, "Bandgap" },
|
|
{ "HPOUT1L PGA", NULL, "DAC1L" },
|
|
{ "HPOUT1L PGA", NULL, "DAC1L" },
|
|
{ "HPOUT1L_DLY", NULL, "HPOUT1L PGA" },
|
|
{ "HPOUT1L_DLY", NULL, "HPOUT1L PGA" },
|
|
{ "HPOUT1L_DCS", NULL, "HPOUT1L_DLY" },
|
|
{ "HPOUT1L_DCS", NULL, "HPOUT1L_DLY" },
|
|
- { "HPOUT1L_OUTP", NULL, "HPOUT1L_DCS" },
|
|
|
|
- { "HPOUT1L_RMV_SHORT", NULL, "HPOUT1L_OUTP" },
|
|
|
|
|
|
+ { "HPOUT1L_RMV_SHORT", NULL, "HPOUT1L_DCS" },
|
|
|
|
|
|
{ "HPOUT1R PGA", NULL, "Charge Pump" },
|
|
{ "HPOUT1R PGA", NULL, "Charge Pump" },
|
|
{ "HPOUT1R PGA", NULL, "Bandgap" },
|
|
{ "HPOUT1R PGA", NULL, "Bandgap" },
|
|
{ "HPOUT1R PGA", NULL, "DAC1R" },
|
|
{ "HPOUT1R PGA", NULL, "DAC1R" },
|
|
{ "HPOUT1R_DLY", NULL, "HPOUT1R PGA" },
|
|
{ "HPOUT1R_DLY", NULL, "HPOUT1R PGA" },
|
|
{ "HPOUT1R_DCS", NULL, "HPOUT1R_DLY" },
|
|
{ "HPOUT1R_DCS", NULL, "HPOUT1R_DLY" },
|
|
- { "HPOUT1R_OUTP", NULL, "HPOUT1R_DCS" },
|
|
|
|
- { "HPOUT1R_RMV_SHORT", NULL, "HPOUT1R_OUTP" },
|
|
|
|
|
|
+ { "HPOUT1R_RMV_SHORT", NULL, "HPOUT1R_DCS" },
|
|
|
|
|
|
{ "HPOUT2L", NULL, "HPOUT2L_RMV_SHORT" },
|
|
{ "HPOUT2L", NULL, "HPOUT2L_RMV_SHORT" },
|
|
{ "HPOUT2R", NULL, "HPOUT2R_RMV_SHORT" },
|
|
{ "HPOUT2R", NULL, "HPOUT2R_RMV_SHORT" },
|