ASoC: nau8825: assign DAC Ch to match headset L/R
authorJohn Hsu <KCHSU0@nuvoton.com>
Wed, 30 Mar 2016 06:57:11 +0000 (14:57 +0800)
committerMark Brown <broonie@kernel.org>
Mon, 30 May 2016 15:17:44 +0000 (16:17 +0100)
The default value of DAC channel select is reverse in codec.
For normal usage, switch the channel select when codec bootup.

Signed-off-by: John Hsu <KCHSU0@nuvoton.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/nau8825.c
sound/soc/codecs/nau8825.h

index 3eb76c5..81fc97b 100644 (file)
@@ -946,6 +946,11 @@ static void nau8825_init_regs(struct nau8825 *nau8825)
                NAU8825_RDAC_CLK_DELAY_MASK | NAU8825_RDAC_VREF_MASK,
                (0x2 << NAU8825_RDAC_CLK_DELAY_SFT) |
                (0x3 << NAU8825_RDAC_VREF_SFT));
+       /* Config L/R channel */
+       regmap_update_bits(nau8825->regmap, NAU8825_REG_DACL_CTRL,
+               NAU8825_DACL_CH_SEL_MASK, NAU8825_DACL_CH_SEL_L);
+       regmap_update_bits(nau8825->regmap, NAU8825_REG_DACR_CTRL,
+               NAU8825_DACL_CH_SEL_MASK, NAU8825_DACL_CH_SEL_R);
 }
 
 static const struct regmap_config nau8825_regmap_config = {
index 4427df9..9e6cb62 100644 (file)
 
 /* DACL_CTRL (0x33) */
 #define NAU8825_DACL_CH_SEL_SFT        9
+#define NAU8825_DACL_CH_SEL_MASK (0x1 << NAU8825_DACL_CH_SEL_SFT)
+#define NAU8825_DACL_CH_SEL_L    (0x0 << NAU8825_DACL_CH_SEL_SFT)
+#define NAU8825_DACL_CH_SEL_R    (0x1 << NAU8825_DACL_CH_SEL_SFT)
 
 /* DACR_CTRL (0x34) */
 #define NAU8825_DACR_CH_SEL_SFT        9
+#define NAU8825_DACR_CH_SEL_MASK (0x1 << NAU8825_DACR_CH_SEL_SFT)
+#define NAU8825_DACR_CH_SEL_L    (0x0 << NAU8825_DACR_CH_SEL_SFT)
+#define NAU8825_DACR_CH_SEL_R    (0x1 << NAU8825_DACR_CH_SEL_SFT)
 
 /* CLASSG_CTRL (0x50) */
 #define NAU8825_CLASSG_TIMER_SFT       8