|
@@ -644,16 +644,19 @@ static int sgtl5000_set_clock(struct snd_soc_codec *codec, int frame_rate)
|
|
|
snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_POWER,
|
|
|
SGTL5000_PLL_POWERUP | SGTL5000_VCOAMP_POWERUP,
|
|
|
SGTL5000_PLL_POWERUP | SGTL5000_VCOAMP_POWERUP);
|
|
|
+
|
|
|
+ /* if using pll, clk_ctrl must be set after pll power up */
|
|
|
+ snd_soc_write(codec, SGTL5000_CHIP_CLK_CTRL, clk_ctl);
|
|
|
} else {
|
|
|
+ /* otherwise, clk_ctrl must be set before pll power down */
|
|
|
+ snd_soc_write(codec, SGTL5000_CHIP_CLK_CTRL, clk_ctl);
|
|
|
+
|
|
|
/* power down pll */
|
|
|
snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_POWER,
|
|
|
SGTL5000_PLL_POWERUP | SGTL5000_VCOAMP_POWERUP,
|
|
|
0);
|
|
|
}
|
|
|
|
|
|
- /* if using pll, clk_ctrl must be set after pll power up */
|
|
|
- snd_soc_write(codec, SGTL5000_CHIP_CLK_CTRL, clk_ctl);
|
|
|
-
|
|
|
return 0;
|
|
|
}
|
|
|
|