diff options
author | Bard Liao <bardliao@realtek.com> | 2016-02-24 02:51:26 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2016-02-24 03:24:34 -0500 |
commit | 4b2fe3822ae16436ed0aba379c500558f7846ce1 (patch) | |
tree | 217e87fc8eb2c405052f2f571ccf0e079ff7731e | |
parent | 92e963f50fc74041b5e9e744c330dca48e04f08d (diff) |
ASoC: rt298: enable IRQ for jack detection
There are some registers needed for enabling rt298 IRQ missed on
current driver.
Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r-- | sound/soc/codecs/rt298.c | 6 | ||||
-rw-r--r-- | sound/soc/codecs/rt298.h | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/sound/soc/codecs/rt298.c b/sound/soc/codecs/rt298.c index 30c6de62ae6c..e67ef5f8d4f3 100644 --- a/sound/soc/codecs/rt298.c +++ b/sound/soc/codecs/rt298.c | |||
@@ -1225,6 +1225,12 @@ static int rt298_i2c_probe(struct i2c_client *i2c, | |||
1225 | regmap_update_bits(rt298->regmap, | 1225 | regmap_update_bits(rt298->regmap, |
1226 | RT298_WIND_FILTER_CTRL, 0x0082, 0x0082); | 1226 | RT298_WIND_FILTER_CTRL, 0x0082, 0x0082); |
1227 | regmap_update_bits(rt298->regmap, RT298_IRQ_CTRL, 0x2, 0x2); | 1227 | regmap_update_bits(rt298->regmap, RT298_IRQ_CTRL, 0x2, 0x2); |
1228 | |||
1229 | regmap_write(rt298->regmap, RT298_UNSOLICITED_INLINE_CMD, 0x81); | ||
1230 | regmap_write(rt298->regmap, RT298_UNSOLICITED_HP_OUT, 0x82); | ||
1231 | regmap_write(rt298->regmap, RT298_UNSOLICITED_MIC1, 0x84); | ||
1232 | regmap_update_bits(rt298->regmap, RT298_IRQ_FLAG_CTRL, 0x2, 0x2); | ||
1233 | |||
1228 | rt298->is_hp_in = -1; | 1234 | rt298->is_hp_in = -1; |
1229 | 1235 | ||
1230 | if (rt298->i2c->irq) { | 1236 | if (rt298->i2c->irq) { |
diff --git a/sound/soc/codecs/rt298.h b/sound/soc/codecs/rt298.h index 31da16265f2b..d66f8847b676 100644 --- a/sound/soc/codecs/rt298.h +++ b/sound/soc/codecs/rt298.h | |||
@@ -34,6 +34,7 @@ | |||
34 | #define RT298_HP_OUT 0x21 | 34 | #define RT298_HP_OUT 0x21 |
35 | #define RT298_MIXER_IN1 0x22 | 35 | #define RT298_MIXER_IN1 0x22 |
36 | #define RT298_MIXER_IN2 0x23 | 36 | #define RT298_MIXER_IN2 0x23 |
37 | #define RT298_INLINE_CMD 0x55 | ||
37 | 38 | ||
38 | #define RT298_SET_PIN_SFT 6 | 39 | #define RT298_SET_PIN_SFT 6 |
39 | #define RT298_SET_PIN_ENABLE 0x40 | 40 | #define RT298_SET_PIN_ENABLE 0x40 |
@@ -124,6 +125,12 @@ | |||
124 | VERB_CMD(AC_VERB_SET_COEF_INDEX, RT298_VENDOR_REGISTERS, 0) | 125 | VERB_CMD(AC_VERB_SET_COEF_INDEX, RT298_VENDOR_REGISTERS, 0) |
125 | #define RT298_PROC_COEF\ | 126 | #define RT298_PROC_COEF\ |
126 | VERB_CMD(AC_VERB_SET_PROC_COEF, RT298_VENDOR_REGISTERS, 0) | 127 | VERB_CMD(AC_VERB_SET_PROC_COEF, RT298_VENDOR_REGISTERS, 0) |
128 | #define RT298_UNSOLICITED_INLINE_CMD\ | ||
129 | VERB_CMD(AC_VERB_SET_UNSOLICITED_ENABLE, RT298_INLINE_CMD, 0) | ||
130 | #define RT298_UNSOLICITED_HP_OUT\ | ||
131 | VERB_CMD(AC_VERB_SET_UNSOLICITED_ENABLE, RT298_HP_OUT, 0) | ||
132 | #define RT298_UNSOLICITED_MIC1\ | ||
133 | VERB_CMD(AC_VERB_SET_UNSOLICITED_ENABLE, RT298_MIC1, 0) | ||
127 | 134 | ||
128 | /* Index registers */ | 135 | /* Index registers */ |
129 | #define RT298_A_BIAS_CTRL1 0x01 | 136 | #define RT298_A_BIAS_CTRL1 0x01 |
@@ -148,6 +155,7 @@ | |||
148 | #define RT298_DEPOP_CTRL2 0x67 | 155 | #define RT298_DEPOP_CTRL2 0x67 |
149 | #define RT298_DEPOP_CTRL3 0x68 | 156 | #define RT298_DEPOP_CTRL3 0x68 |
150 | #define RT298_DEPOP_CTRL4 0x69 | 157 | #define RT298_DEPOP_CTRL4 0x69 |
158 | #define RT298_IRQ_FLAG_CTRL 0x7c | ||
151 | 159 | ||
152 | /* SPDIF (0x06) */ | 160 | /* SPDIF (0x06) */ |
153 | #define RT298_SPDIF_SEL_SFT 0 | 161 | #define RT298_SPDIF_SEL_SFT 0 |