[alsa-devel] Help with wm8731 support for the Utilite (imx6q)
Fabio Estevam
festevam at gmail.com
Mon Oct 20 18:29:01 CEST 2014
On Mon, Oct 20, 2014 at 10:06 AM, Fabio Estevam <festevam at gmail.com> wrote:
>> clocks = <&clks IMX6QDL_CLK_SSI2>;
>
> This 'clocks' entry does not seem correct.
>
> IMX6QDL_CLK_SSI2 is the clock from SSI2 module, which is turned on by
> the ssi driver.
>
> Who provides the MCLK for wm8731 on utilite board? Isn't it mx6 CLKO pin?
>
> Are you able to monitor this clock with a scope and make sure that it
> is actually being turned on?
>
> We use CLKO output to drive MCLK pins on mx6qdl-sabresd board with
> wm8762 codec. You can use it as a reference.
>
> Adding the Compulab's folks on Cc.
Do the changes below help? (using IMX6QDL_CLK_CKO)
codec: wm8731 at 1a {
#sound-dai-cells = <0>;
compatible = "wlf,wm8731";
reg = <0x1a>;
AVDD-supply = <®_3p3v>;
HPVDD-supply = <®_3p3v>;
DCVDD-supply = <®_3p3v>;
DBVDD-supply = <®_3p3v>;
clocks = <&clks IMX6QDL_CLK_CKO>;
with this one applied:
--- a/sound/soc/codecs/wm8731.c
+++ b/sound/soc/codecs/wm8731.c
@@ -13,6 +13,7 @@
* published by the Free Software Foundation.
*/
+#include <linux/clk.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/init.h>
@@ -46,6 +47,7 @@ struct wm8731_priv {
struct regmap *regmap;
struct regulator_bulk_data supplies[WM8731_NUM_SUPPLIES];
const struct snd_pcm_hw_constraint_list *constraints;
+ struct clk *mclk;
unsigned int sysclk;
int sysclk_type;
int playback_fs;
@@ -742,6 +744,21 @@ static int wm8731_i2c_probe(struct i2c_client *i2c,
return ret;
}
+ wm8731->mclk = devm_clk_get(&i2c->dev, NULL);
+ if (IS_ERR(wm8731->mclk)) {
+ ret = PTR_ERR(wm8731->mclk);
+ dev_err(&i2c->dev, "Failed to get mclock: %d\n", ret);
+ /* Defer the probe to see if the clk will be provided later */
+ if (ret == -ENOENT)
+ return -EPROBE_DEFER;
+ }
+
+ if (!IS_ERR(wm8731->mclk)) {
+ ret = clk_prepare_enable(wm8731->mclk);
+ if (ret)
+ return ret;
+ }
+
i2c_set_clientdata(i2c, wm8731);
ret = snd_soc_register_codec(&i2c->dev,
More information about the Alsa-devel
mailing list