Hi Charles
Thanks very much, the pointers you gave me have helped a lot. I have changed the reference to .codec_dai_name to "wm8753-hifi" in the mxs-wm8753.c program which has made my CPU recognise the WM8753 as a valid ALSA device! This makes me very happy as I have been trying to get this to happen for several weeks now!
I still don't seem to be able to send sound to the device though. I am now receiving this message:
mxs-i2c 80058000.i2c: PIO: Failed to finish WRITE cmd!
This happens a dozen times or so on bootup and any time that I try to write to one of the PCM devices .... I wonder if you could give me any more pointers?
Many Thanks Kevin
Kevin Startup A.W. Communication Systems Ltd. email: kevin@awcsl.com Tel: +44(0)1697 748717 Fax: +44(0)1697 748778
A.W. Communication Systems Ltd VAT No. GB 827 4389 00 Registered No. 4891652 Registered Office Crook Barn, The Crook, Roweltown, Carlisle, UK
-----Original Message----- From: Charles Keepax [mailto:ckeepax@opensource.wolfsonmicro.com] Sent: 18 July 2014 11:53 To: Kevin Startup Cc: alsa-devel@alsa-project.org Subject: Re: [alsa-devel] ALSA SOC Driver (mxs-wm8753)
On Fri, Jul 18, 2014 at 10:14:16AM +0000, Kevin Startup wrote:
That's great info, thanks very much. My DT looks like this, inside sound{} I have:
compatible = "fs,imx28-tx28-wm8753", "fsl,mxs-audio-wm8753"; model = "wm8753"; saif-controllers = <&saif0 &saif1>; audio-controllers = <&i2c0>; audio-code = <&wm8753>;
Inside i2c0{} I have:
wm8753: wm8753@1a { Compatible = "wlf,wm8753"; reg = <0x1a>;
I have tried changing model to "wm8753-voice" but still get the same error.
Am I changing it in the wrong place? Or do I need another setting?
I'm very much a beginner at this DT stiff and also configuring and using sound devices so any info you can supply will be of great help.
How exactly the DT needs to be specified depends on the machine driver, as it will be what parses the sound node. I would assume that you are writing this as well? Whatever in there is setting the codec_dai_name on the dai_link seems to be setting the wrong value.
Thanks, Charles