ASoC: nau8825: Add the management of headset detection for power saving
[sfrench/cifs-2.6.git] / sound / soc / codecs / nau8825.c
index cc3e18207c424ff0c0ad21d992d09df098422ee0..f6dd84b32e0bee0c5ced3f56ce0fafab3ccb911d 100644 (file)
@@ -1704,6 +1704,10 @@ static void nau8825_setup_auto_irq(struct nau8825 *nau8825)
 {
        struct regmap *regmap = nau8825->regmap;
 
+       /* Enable HSD function */
+       regmap_update_bits(regmap, NAU8825_REG_HSD_CTRL,
+                          NAU8825_HSD_AUTO_MODE, NAU8825_HSD_AUTO_MODE);
+
        /* Enable headset jack type detection complete interruption and
         * jack ejection interruption.
         */
@@ -1955,6 +1959,9 @@ static int nau8825_jack_insert(struct nau8825 *nau8825)
        regmap_update_bits(regmap, NAU8825_REG_CLK_DIVIDER,
                           NAU8825_CLK_MCLK_SRC_MASK, 0xf);
 
+       /* Disable HSD function */
+       regmap_update_bits(regmap, NAU8825_REG_HSD_CTRL, NAU8825_HSD_AUTO_MODE, 0);
+
        /* Leaving HPOL/R grounded after jack insert by default. They will be
         * ungrounded as part of the widget power up sequence at the beginning
         * of playback to reduce pop.