ASoC: rt5663: Update the HW default values based on the shipping version
[sfrench/cifs-2.6.git] / sound / soc / codecs / rt5663.c
index a32508d7dcfd8a78e6510dc3db0ef546923a407b..fa550e3c1332bdc7071b77b712eb47dc388ee00e 100644 (file)
@@ -466,7 +466,7 @@ static const struct reg_default rt5663_reg[] = {
        { 0x0006, 0x1000 },
        { 0x000a, 0x0000 },
        { 0x0010, 0x000f },
-       { 0x0015, 0x42c1 },
+       { 0x0015, 0x42f1 },
        { 0x0016, 0x0000 },
        { 0x0018, 0x000b },
        { 0x0019, 0xafaf },
@@ -509,7 +509,7 @@ static const struct reg_default rt5663_reg[] = {
        { 0x008a, 0x0000 },
        { 0x008b, 0x0000 },
        { 0x008c, 0x0003 },
-       { 0x008e, 0x0004 },
+       { 0x008e, 0x0008 },
        { 0x008f, 0x1000 },
        { 0x0090, 0x0646 },
        { 0x0091, 0x0e3e },
@@ -520,7 +520,7 @@ static const struct reg_default rt5663_reg[] = {
        { 0x0098, 0x0000 },
        { 0x009a, 0x0000 },
        { 0x009f, 0x0000 },
-       { 0x00ae, 0x2000 },
+       { 0x00ae, 0x6000 },
        { 0x00af, 0x0000 },
        { 0x00b6, 0x0000 },
        { 0x00b7, 0x0000 },
@@ -538,7 +538,7 @@ static const struct reg_default rt5663_reg[] = {
        { 0x00d9, 0x08f9 },
        { 0x00db, 0x0008 },
        { 0x00dc, 0x00c0 },
-       { 0x00dd, 0x6724 },
+       { 0x00dd, 0x6729 },
        { 0x00de, 0x3131 },
        { 0x00df, 0x0008 },
        { 0x00e0, 0x4000 },
@@ -578,7 +578,7 @@ static const struct reg_default rt5663_reg[] = {
        { 0x0116, 0x0000 },
        { 0x0117, 0x0f00 },
        { 0x0118, 0x0006 },
-       { 0x0125, 0x2224 },
+       { 0x0125, 0x2424 },
        { 0x0126, 0x5550 },
        { 0x0127, 0x0400 },
        { 0x0128, 0x7711 },
@@ -596,8 +596,8 @@ static const struct reg_default rt5663_reg[] = {
        { 0x0145, 0x0002 },
        { 0x0146, 0x0000 },
        { 0x0160, 0x0e80 },
-       { 0x0161, 0x0020 },
-       { 0x0162, 0x0080 },
+       { 0x0161, 0x0080 },
+       { 0x0162, 0x0200 },
        { 0x0163, 0x0800 },
        { 0x0164, 0x0000 },
        { 0x0165, 0x0000 },
@@ -676,8 +676,8 @@ static const struct reg_default rt5663_reg[] = {
        { 0x0251, 0x0000 },
        { 0x0252, 0x028a },
        { 0x02fa, 0x0000 },
-       { 0x02fb, 0x0000 },
-       { 0x02fc, 0x0000 },
+       { 0x02fb, 0x00a4 },
+       { 0x02fc, 0x0300 },
        { 0x0300, 0x0000 },
        { 0x03d0, 0x0000 },
        { 0x03d1, 0x0000 },
@@ -2847,6 +2847,8 @@ static int rt5663_resume(struct snd_soc_codec *codec)
        regcache_cache_only(rt5663->regmap, false);
        regcache_sync(rt5663->regmap);
 
+       rt5663_irq(0, rt5663);
+
        return 0;
 }
 #else
@@ -3141,7 +3143,7 @@ static int rt5663_i2c_probe(struct i2c_client *i2c,
                regmap_update_bits(rt5663->regmap, RT5663_DIG_MISC,
                        RT5663_DIG_GATE_CTRL_MASK, RT5663_DIG_GATE_CTRL_EN);
                regmap_update_bits(rt5663->regmap, RT5663_AUTO_1MRC_CLK,
-                       RT5663_IRQ_POW_SAV_MASK, RT5663_IRQ_POW_SAV_EN);
+                       RT5663_IRQ_MANUAL_MASK, RT5663_IRQ_MANUAL_EN);
                regmap_update_bits(rt5663->regmap, RT5663_IRQ_1,
                        RT5663_EN_IRQ_JD1_MASK, RT5663_EN_IRQ_JD1_EN);
                regmap_update_bits(rt5663->regmap, RT5663_GPIO_1,